RFR: 8156499 Update jlink to support creating images with modules that are packaged as multi-release JARs

Steve Drach steve.drach at oracle.com
Wed Oct 19 19:15:22 UTC 2016


>> Hi,
>> 
>> Please review the latest webrev for this issue.
>> 
>> issue: https://bugs.openjdk.java.net/browse/JDK-8156499 <https://bugs.openjdk.java.net/browse/JDK-8156499>
>> webrev: http://cr.openjdk.java.net/~sdrach/8156499/webrev.03/ <http://cr.openjdk.java.net/~sdrach/8156499/webrev.03/>
>> 
>> I believe this changeset resolves all the issues Alan and Mandy had with the previous changesets.  They are:
>> 
>> 1. the test silently passes if java.base.jmod can not be found on the module-path
>> 2. the test assures that
>>     a. the correct module-info class is in the module image
>>     b. the correct resource file is in the module image
>>     c. the correct class file is in the module image
>> 3. As before, the image module created is for the Runtime.Version of jlink.  This demonstrates that MMR jar files
>>     are handled correctly, but will have to be updated to create an image based on the Runtime.Version of java.base
>>     when the appropriate code is migrated from jake.
>> 
> In JarArchive::entries then you filter out META-INF/MANIFEST.MF and I'm not sure that that is right (think modular JAR on the module path with a manifest, it's just a resource file).

I took that out and it still works as expected.

> Are directories the only case where toEntry can return null, in which case would it simpler to filter out directories here.

I’ve done that too.

> 
> There is quite a bit of clean-up needed in this area (pre-dates your patch of course). Not clear why Archive isn't a Closeable for example, or why covariant returns aren't used by the more specialized JarArchive/JarEntry/etc. I'm sure you don't want to get into that but maybe we could at least make the JarFile available via a protected method rather than a field.

I’ve made JarFile available via a protected method

> 
> I don't have time just now to go through the test in detail but having it pass silently when on exploded build (no packaged modules) looks right.
> 
> -Alan



More information about the jigsaw-dev mailing list