On 16/10/2017 19:53, Martin Buchholz wrote:
What's the canonical way to list all upgradeable modules?
There's a list in JEP 261, but naturally we can't consider it authoritative.
make/common/Modules.gmk has the list (look for UPGRADEABLE_MODULES and UPGRADEABLE_TOOL_MODULES).


I was surprised that even java --describe-module doesn't tell me whether a module is upgradeable.
All non-core modules (meaning modules not associated with the boot loader) are upgradable unless tied by hashes to java.base. So you need to look at java.base to find the list of modules that it has recorded hashes for. `javap -v -m java.base module-info` is one way to see this. Not very user friendly but upgradeable modules aren't broadly interesting to joe developer. If joe developer is interested then the javadoc for each of the upgradable modules has a statement in its javadoc to say this. The equivalent with Java SE 8 / JDK 8 and older was the table of APIs and JSR in the Endorsed Standards Override Mechanism document.


I was surprised to see JEP 261 say that java.compiler is upgradeable, but not jdk.compiler.
Perhaps thinking of the bootstrap use case?
I see Jon has replied to this point. Another part to that is that java.compiler exports the APIs maintained by JSR 199 and JSR 269 and these two JSR remain standalone technoloiges.

-Alan.

Reply via email to