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