jigsaw vs. jsr166 CVS
Martin Buchholz
martinrb at google.com
Sun Sep 13 18:54:43 UTC 2015
Alan, thanks for that pointer. I succeeded at building jsr166 and running
tests with it after beating ant into submission.
People *will* write code to distinguish between a pre-module and
post-module JDK by inspecting the filesystem.
Here's one implementation in ant:
<local name="modules"/>
<condition property="modules">
<available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
</condition>
Then we can have conditional ant code like this:
<compilerarg value="-Xbootclasspath/p:@{classes}"
unless:set="modules"/>
<compilerarg value="-Xoverride:${build.classes.dir}"
if:set="modules"/>
It's not just a matter of "porting to jigsaw". There seems to be no way of
deploying jsr166 CVS as a directly deployable software artifact as we have
been doing with -Xbootclasspath/p. To use -Xoverride, there must be an
exploded directory. It would be convenient if -Xoverride was usable with
an equivalent jar file (jsr166.jar). But y'all are trying to make module
overriding possible, not convenient?!
javadoc does not seem to have any support for -Xmodule, so I don't know how
to fix the "docs" target.
The fundamental disconnect is that from a developer point of view, jsr166
CVS contains an independently developed "module" with binary deployable
artifacts, but jigsaw disagrees about its module-ness, and that can
probably not be fixed because of circular dependencies between
java.util.concurrent and the rest of java.base?
On Fri, Sep 11, 2015 at 9:47 PM, Alan Bateman <Alan.Bateman at oracle.com>
wrote:
>
> On 12/09/2015 00:30, Martin Buchholz wrote:
>
>> I tried adding -Xoverride, but it didn't help.
>>
>> You'll need to use javac -Xmodule:java.base to compile the classes, then
> use -Xoverride at run-time. As it happens, there is an example that
> compiles and uses an development version of CHM here:
>
> http://openjdk.java.net/projects/jigsaw/quick-start#xoverride
>
> Hopefully it won't too much to get the build.xml to do this.
>
> -Alan
>
More information about the jigsaw-dev
mailing list