native cmds and libs in the module library
Alan Bateman
Alan.Bateman at oracle.com
Tue Jan 24 06:15:56 PST 2012
On 20/01/2012 17:56, Chris Hegarty wrote:
> Thanks Mandy,
>
> You are correct. I was storing absolute paths.
>
> Updated webrev:
> http://cr.openjdk.java.net/~chegar/jigsaw/libbin_webrev.04/webrev/
>
> - Paths to 'jmod create -L lib -natlib <dir> ...' are resolved
> relative to the current working dir, as you would expect.
> - natlib, natcmd, config, paths are stored relative to the module
> library root, in the libraries metadata.
> - The per module 'files' contains paths relative to the modules
> install directory.
>
> - I made most of the specific code suggestions you said, with the
> exception that natlibs, natcmds, and configs can still be null
> in SimpleLibrary. I use this to differentiate between a passed
> path and a per module path.
>
> -Chris.
I think this quite good.
Can you briefly summarize how one would use this on Windows? I assume it
requires specifying the --natcmd and --natlib to be the same directory.
In the simple library layout I added a flags word some time ago and it
has many spare bits. Rather than storing 0 or 1 before each path then an
alternative would be to use some of the spare bits.
A minor nit but the code style with if-then-else is a bit inconsistent.
SimpleLibrary.storePath, SimpleLibrary.resolveAndEnsurePath,
Librarian.Create.go are just a couple of examples that jump out (there
are many more).
A general comment is that we'll need to go over this again once we get
to clean-up the implementation, improve performance, make library
operations atomic, etc. I mention this because what we have now is a bit
inefficient and there's also quite a bit of hopping between new and old
APIs. It will need a major clean-up at some point.
On the tests then I think an important test to include is a test that
attempts to install a library or binary outside of the bin and lib
trees. I think the validation code that you've added will catch this but
I think a test is important.
-Alan.
More information about the jigsaw-dev
mailing list