RFR: 8156499 Update jlink to support creating images with modules that are packaged as multi-release JARs
Steve Drach
steve.drach at oracle.com
Mon Aug 22 18:24:42 UTC 2016
>> If there is a class in a versioned directory that is not in the base directory, then that class must not be public or protected. It’s not part of the public interface of the multi-release jar.
> It's also a modular JAR and so if the class is not in an exported package then it's okay for it to be public.
So, if a class is not in an exported package, it’s in a concealed package, is that right? So, should any classes in a concealed package, public or not, be included in the versionedStream used in jlink?
>
>
>> It exists purely because another class in the same versioned directory depends on it. If we are creating a versionedStream for the version that the non-public class is in, it will be in finalNames, otherwise it won’t be. I believe the code is correct here.
>>
>> New concealed packages can be added in a versioned section of the jar file created by jar tool. Should classes in concealed packages be added to finalNames or not? Or stated differently, for jlink, should a versionedStream contain entries in concealed packages?
>>
> Er, I thought the plan was for the set of concealed packages to be the same. It's okay for the ConcealedPackages in the base section to include "empty" packages.
I wasn’t involved with that decision. Chris wrote that code, perhaps he can comment.
More information about the jigsaw-dev
mailing list