Non Standadrd Module Attribute

Alan Bateman Alan.Bateman at oracle.com
Wed Jun 28 12:22:23 UTC 2017


On 28/06/2017 12:12, Remi Forax wrote:
> Hi Alan, hi all,
> i've implemented the non standard attributes ModuleTarget, ModuleHashes and ModuleResolution in ASM.
>
> First, given that i was not able to find a document that describe them, i've used the javadoc of the classes inside jdk.internal.module.ClassFileAttributes.
JEP 261 needs a big update and I think is the right place to document 
the JDK-specific class file attributes (except maybe ModuleResolution 
where they could be a case to document it in JEP 11 instead).

> I've discovered that the jdk modules have an attribute ModuleTarget that can have a null platform, why not removing the ModuleTarget attribute from the module-info instead ?
The ModuleTarget attribute is removed at link time from all modules 
except java.base (need to retain it in java.base to allow it be compared 
with any platform specific modules on the module path). The jlink system 
modules plugin has an option to retain the ModuleTarget attribute if you 
want.

As regards allowing the target_platform to be 0 (meaning not present) 
then it may be a left over from when the attribute had multiple values - 
it was possible for it to only have the OS name or architecture for example.

> And for the module jdk.incubator.httpclient, the value of the resolution is 9, so it means DO_NOT_RESOLVE_BY_DEFAULT | WARN_INCUBATING;
> What is the exact meaning of DO_NOT_RESOLVE_BY_DEFAULT ?
>
 From JEP 11 "incubator modules are not resolved by default for 
applications on the class path".

-Alan


More information about the jigsaw-dev mailing list