Hi,

I am quite new to the JDK 9+ module system but I think I found a bug in the
Netbeans module-info wizard (only tested with Netbeans 11). The problem is
the code generation for automatic modules, which seems too rigorous. In my
case, it is a maven project, but that does not matter, the Netbeans build
mechanism produces the same result.

Example: Using the jdom2-2.0.6.jar leads to this code

module mymodulename {
    requires jdom;
}

Netbeans is fine with this, no errors, code completion works, but compiling
the code gives a compilation error:
... module not found: jdom

Changing "requires jdom" to "requires jdom2", in module-info.java results in
lots of red error badges in module-info.java and other classes, code
completion does not work and import statement says, "package org.jdom2.input
is declared in module jdom, but module mymodulename does not read it."

 But this works! Compilation is ok and the the class using the jdom2 package
is working fine!

Calling "jar --describe-module --file=jdom2-2.0.6.jar" gives:

jdom2@2.0.6 automatic
requires java.base mandated
contains org.jdom2
contains org.jdom2.adapters
contains org.jdom2.filter
contains org.jdom2.input
contains org.jdom2.input.sax
contains org.jdom2.input.stax
contains org.jdom2.internal
contains org.jdom2.located
contains org.jdom2.output
contains org.jdom2.output.support
contains org.jdom2.transform
contains org.jdom2.util
contains org.jdom2.xpath
contains org.jdom2.xpath.jaxen
contains org.jdom2.xpath.util

I read some articles about the module mechanism of JDK 9+ especially about
automatic modules and know that name generation for automatic modules
truncates the version string part, in this case that would be "-2.0.6" but
not "2-2.0.6", "2" is a distinctive feature not a version string. I think
the Netbeans wizard is doing too much here. Would you confirm this?

I know about the workarounds, i.e. modifying META-INF/MANIFEST.MF in the jar
file and I know that this library should be updated for JDK 9+, but I think
Netbeans should behave like the --describe-module result.
Or did I misunderstand something fundamentally?

Kind regards,
Jessica



Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to