Modules merging support in ClassAnalyzer

Mandy Chung Mandy.Chung at Sun.COM
Wed Oct 28 11:06:46 PDT 2009


Hi Alex,

With Mark's suggested syntax, I'll remove the two-level naming scheme.   
The syntax would allow a module to include both modules and classes and 
it should not be difficult for the tool to support that.

Mandy

Alex Buckley wrote:
> Hi Mandy,
>
> Is a group module expected to have only modules as its members, or 
> both classes and modules?
>
> Are the modules in a group module expected ever to be group modules 
> themselves? Or is it strictly a two-level (group name:module name) 
> scheme?
>
> Alex
>
> Mandy Chung wrote:
>> Mark, Alan,
>>
>> I have implemented the modules merging support in ClassAnalyzer.  The 
>> syntax to specify the group module (i.e. enclosing module) for a 
>> module is to prepend the group name to the module name separated by 
>> ":" (i.e. <group name>:<module name>.  The group name is optional.  
>> For example, "jdbc" is a group module containing jdbc-base and 
>> jdbc-enterprise whereas httpserver module itself is considered as a 
>> single group.  The group name and the module name have to be unique.
>>
>> module = jdbc:jdbc-base
>> include = java.sql.*
>>
>> module = jdbc:jdbc-enterprise
>> include = javax.sql.XA* javax.sql.rowset.**
>>
>> module = httpserver
>> include = com.sun.net.httpserver.** sun.net.httpserver.**
>>
>> Classes in jdbc-base and jdbc-enterprise will be merged to form the 
>> classlist of the jdbc group module.  The class analyzer will generate 
>> <group>.summary and <group>.dependencies files.  It can generate 
>> <group>.classlist file but it currently doesn't.  We will use the 
>> fine-grained module classlist for the build and so <group>.classlist 
>> may not be needed.
>>
>> It also generates groups.summary and groups.dot (like modules.summary 
>> and modules.dot) and they show the module dependencies in the group 
>> level (or the module itself if group is not specified).  e.g.
>>
>> jdbc -> enterprise-base
>> jdbc -> jaxp-parsers
>> jdbc -> jndi
>> jdbc -> logging
>> httpserver -> logging
>> httpserver -> security-jsse
>>
>> Any comment/opinion on this syntax?
>> Alan suggests to remove the "module" key and instead have the module 
>> name quoted in a square bracket like this:
>>
>> [base]
>>
>> [jdbc:jdbc-base]
>> include = java.sql.*
>>
>> I don't have any objection to this syntax change.  I can make the 
>> change along with the modules merging support.
>>
>> Mandy




More information about the jigsaw-dev mailing list