On 13/10/2016 00:00, Steve Drach wrote:
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). Are directories the only case
where toEntry can return null, in which case would it simpler to filter
out directories here.
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 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