Modules merging support in ClassAnalyzer

Mandy Chung Mandy.Chung at Sun.COM
Tue Oct 27 22:26:44 PDT 2009


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