tools in modules.config
Jonathan Gibbons
Jonathan.Gibbons at Sun.COM
Mon Mar 15 16:56:48 PDT 2010
I would certainly be interested to hear of anything that causes circular
dependencies between javac, apt and javadoc.
-- Jon
Mandy Chung wrote:
> On 03/15/10 14:49, Jonathan Gibbons wrote:
>> I'm mildly surprised by the layout of the tools and related modules.
>> I'm curious if the current layout is by necessity or choice.
>
> There will be one module per tool since each tool has its own entry
> point. In my first attempt, I grouped the langtools classes like what
> you expected (e.g. apt classes in apt module). I recalled that there
> is some sort of circular dependencies that I took the quick-and-dirty
> solution to group the apt, javadoc, doclets and javac in the tools
> module and plan to revisit later.
>
> Since the decision whether the jdk modules would be coarse-grained
> modules or fine-grained is yet to be made, I didn't pursue further
> modularize the tools' classes (at one point in time - it was inclined
> to have coarse-grained modules).
>
> In any case, it would be good to clean up the dependencies. I will do
> some experiment, find out the dependencies and let you know.
>
> Mandy
>
>> FWIW, apt and javadoc (and javah) depend on javac, but not the other
>> way around.
>>
>> By analogy with javah and javap, I would have expected the apt
>> classes to live in the apt module, and likewise the javadoc and
>> doclets classes to live in the doclets module.
>>
>> Are there any dependencies you discovered that makes it necessary to
>> have the classes as they are?
>>
>> -- Jon
>>
>>>
>>>
>>> module tools {
>>> include com.sun.tools.apt.**;
>>> include com.sun.tools.javac.**,
>>> com.sun.source.**;
>>> include com.sun.tools.doclets.**;
>>> include com.sun.tools.javadoc.**,
>>> com.sun.javadoc.**;
>>> exclude com.sun.tools.javac.Launcher;
>>> }
>>>
>>> module javac {
>>> class com.sun.tools.javac.Main;
>>> }
>>>
>>> module apt {
>>> class com.sun.tools.apt.Main;
>>> }
>>>
>>> module javadoc {
>>> class com.sun.tools.javadoc.Main;
>>> }
>>>
>>> module javah {
>>> include com.sun.tools.javah.**;
>>> class com.sun.tools.javah.Main;
>>> }
>>>
>>> module javap {
>>> include com.sun.tools.javap.**,
>>> com.sun.tools.classfile.**;
>>> class com.sun.tools.javap.Main;
>>> }
>>
More information about the jigsaw-dev
mailing list