Support for jrt-fs.jar in JDK 7 would be very helpful in allowing FindBugs to run under Java 9

Alan Bateman Alan.Bateman at oracle.com
Sun Nov 16 17:26:00 UTC 2014


On 16/11/2014 13:47, Remi Forax wrote:
> :
>
> I think it's not a good idea to try to embed jrt-fs.jar in older 
> releases. 

If you mean a jrt-fs.jar containing code that is tied to a non-stable 
and changing format then I agree (and I don't think there is any 
proposal to do that).

If you mean the suggestion in the end of my mail then it was just 
pointing out that it wouldn't be hard to create a jrt:/ provider that 
provides the same interface for runtime images that internally have 
rt.jar, resources.jar, jsse.jar etc. This has the potential to allow the 
same API be used over a wider range of major releases than is currently 
proposed in the JEP. I could imagine this needing to be well bedded down 
and be in shipping 7u and 8u releases for a significant period before 
tools would be confident to remove older code that directly accesses 
rt.jar etc.


> Instead, we can provide
> a backport of jrt-fs.jar lets name it jrt-fs-backport.jar, publish it 
> on maven central
> (with the same licence as the OpenJDK) and lets tools that need it to 
> use it.
My point about a one off backport to JDK 7 is that it will be stale 
almost immediately. In order to access the modules, classes and 
resources in a JDK 9 runtime image then it requires code that 
understands the specific build. I think it would be reasonable to assume 
that the container format will change quite a bit during the development 
of JDK 9 and therefore the code that knows about this format will change 
too.

If jrt-fs.jar is published separately to the promoted builds then it 
would require a tool that wants to examine the contents of a target 
image to first inspect the target image (maybe the top-level "release" 
file) and then locate the jrt-fs that corresponds exactly to that build. 
One could hide that behind a JDK-specific API of course but the proposal 
is to keep things simple and just include it in the target image to 
avoid a separate download.

>
> I have taken a look to the source code of jdk.internal.jimagefs and 
> jdk.internal.jimage
I suspect you mean jrtfs rather than jimagefs here but one thing to 
mention is that the jimagefs code will go away very soon as it was 
temporary. That should happen soon after javac, rmic, and jdeps are 
switched from jimagefs to jrtfs.

-Alan


More information about the jigsaw-dev mailing list