Please rview simple clean up of the modules build for javac
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon Apr 5 21:41:11 PDT 2010
Mandy Chung wrote:
> Jonathan Gibbons wrote:
>> Mandy,
>>
>> The comment about rmic was not directed at your work on providing
>> modules for rmic, but just a general comment on the implementation
>> technique for new rmic. JSR 269 provides a much better tool-time
>> API for class introspection than does javadoc.
>
> I understand. I want to keep track of what dependency can be
> eliminated (file a CR) so that we won't forget. Am I right that
> switching to use the JSR 269 API will eliminate the rmic -> javadoc
> dependency?
Yes, but that's another new version of rmic we're wishing for (rmic
-Xreallynew?)
>>
>> As for module names, we're making up the conventions as we go along
>> here. I'd suggest using any name that is easy to change if we don't
>> like it. Any non-empty qualifying name is better than no
>> qualification. One suggestion would be to use "jre." for anything
>> previously in rt.jar, and "jdk." for anything previously in
>> tools.jar, because the tools are precisely what defines the
>> difference between the jre and jdk products.
>
> Yes, we need to define the difference between jre and jdk modules.
> "jre." and "jdk." are a good start.
>
> Mandy
>>
>> -- Jon
>>
>>
>>
>> Mandy Chung wrote:
>>> Jonathan Gibbons wrote:
>>>> Mandy,
>>>>
>>>> make/modules/Makefile
>>>>
>>>> 185 $(HOST_JMOD_CMD) create -N -L $(JIGSAW_MODULE_LIB) ; \
>>>>
>>>> Can this line be deleted -- the library should have been created by
>>>> the prep-module-lib target
>>>>
>>>
>>> Thanks for catching it. Deleted now.
>>>> make/modules/modules.config
>>>> com.sun.tools.javac.Launcher should be ignored. Please exclude it
>>>> from the javac module and do not include it in any other module.
>>>>
>>> Ok.
>>>> I find it somewhat non-intuitive that the various individual
>>>> langtools tools (javac, javadoc, etc) depend on something called
>>>> "jdk.langtools". To me, "jdk.langtools" sounds more like a module
>>>> that provides all the individual tools.
>>>
>>> It contains the runtime support for the tools. Any suggestion on
>>> the module name?
>>>
>>>>
>>>> I am not surprised to see a dependency on apt, although I did not
>>>> previously know that such a dependency existed.
>>>>
>>>> It is "disappointing" to see "new rmic" being based on javadoc API
>>>> and not on JSR 269.
>>>>
>>> In other words, such dependency is not desirable and should be
>>> eliminated by replacing the static reference to use JSR 269, right?
>>>
>>>> I am surprised to see so many unqualified module names. Do we not
>>>> expect folk to use qualified module names, and should we not lead
>>>> the way by prefixing module names with some suitable "j" word?
>>>>
>>>
>>> The names of the jdk modules are yet to be finalized. For the
>>> runtime modules (i.e. classes from rt.jar), their names are
>>> qualified names (currently they are prefixed by either "jdk." or
>>> "sun."). The modules with unqualified module names are the
>>> non-runtime modules (such as javac, apt, and other jdk tools). Is
>>> there a guideline or convention for the module names?
>>>
>>> Mandy
>>>
>>>> -- Jon
>>>>
>>>>
>>>> Mandy Chung wrote:
>>>>> Hi Jon,
>>>>>
>>>>> I made some minor fixes to the modules build per our discussion
>>>>> of the new javac change to interface with the jigsaw resolver.
>>>>>
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~mchung/jigsaw/misc-cleanup/
>>>>>
>>>>> 1. make/modules/tools/Makefile to use JAVAC_CMD instead of
>>>>> HOST_JAVAC_CMD. - JAVAC_CMD is the hybrid javac building jdk and
>>>>> we should
>>>>> not need to use HOST_JAVAC_CMD.
>>>>>
>>>>> 2. make/modules/Makefile
>>>>>
>>>>> - refactor the system module library creation as a new target
>>>>> - when HOST_JAVAC_CMD is called to compile module-info.java,
>>>>> the default system module library is already created
>>>>>
>>>>> 3. modules.config and modules.group change
>>>>>
>>>>> - this is a follow-up to the email thread about tools in
>>>>> modules.config [1]
>>>>> - javac, javap, javah, javadoc, and apt classes now live
>>>>> in its own module (each tool is a single module).
>>>>> Also, com.sun.tools.javac.Launcher class is moved to the
>>>>> deprecated.tools module.
>>>>>
>>>>> Here are the dependencies among these langtools modules:
>>>>>
>>>>> apt -> javac
>>>>> apt -> jdk.langtools
>>>>> javac -> jdk.langtools
>>>>> javac -> jdk.logging
>>>>> javadoc -> javac
>>>>> javadoc -> jdk.langtools
>>>>> javadoc -> jdk.xml
>>>>> javah -> javac
>>>>> javah -> jdk.langtools
>>>>> javap -> javac
>>>>> javap -> jdk.langtools
>>>>>
>>>>> There is a dependency from JAXWS to apt:
>>>>> jaxws.tools -> apt
>>>>>
>>>>> com.sun.tools.internal.ws.wscompile.WsgenTool ->
>>>>> com.sun.tools.apt.Main (apt)
>>>>>
>>>>> Do you expect such dependency to apt?
>>>>>
>>>>> - rmi.tools module is merged with the rmic module.
>>>>>
>>>>>
>>>>> There exists a new rmic (sun.rmi.rmic.newrmic package) that
>>>>> depends on javac and javadoc. The new rmic is launched from rmic
>>>>> -Xnew option.
>>>>>
>>>>> rmic -> javac
>>>>> rmic -> javadoc
>>>>>
>>>>> For your reference, the dependencies are:
>>>>> sun.rmi.rmic.newrmic.BatchEnvironment ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.BatchEnvironment ->
>>>>> com.sun.javadoc.RootDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.Generator ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.Main ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.Main ->
>>>>> com.sun.javadoc.RootDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.Main ->
>>>>> com.sun.tools.javac.Main (javac)
>>>>> sun.rmi.rmic.newrmic.Main ->
>>>>> com.sun.tools.javadoc.Main (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.JrmpGenerator ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.RemoteClass ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.RemoteClass ->
>>>>> com.sun.javadoc.MethodDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.RemoteClass$ClassDocComparator ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.RemoteClass$Method ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.RemoteClass$Method ->
>>>>> com.sun.javadoc.MethodDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.RemoteClass$Method ->
>>>>> com.sun.javadoc.Parameter (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.RemoteClass$Method ->
>>>>> com.sun.javadoc.Type (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.StubSkeletonWriter ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.StubSkeletonWriter ->
>>>>> com.sun.javadoc.MethodDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.StubSkeletonWriter ->
>>>>> com.sun.javadoc.Type (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.Util ->
>>>>> com.sun.javadoc.ClassDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.Util ->
>>>>> com.sun.javadoc.MethodDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.Util ->
>>>>> com.sun.javadoc.PackageDoc (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.Util ->
>>>>> com.sun.javadoc.Parameter (javadoc)
>>>>> sun.rmi.rmic.newrmic.jrmp.Util -> com.sun.javadoc.Type
>>>>> (javadoc)
>>>>>
>>>>> Thanks
>>>>> Mandy
>>>>>
>>>>>
>>>>> [1]
>>>>> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-March/000664.html
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the jigsaw-dev
mailing list