RFR (small): Modularizer should scan whole classpath for services
Chris Hegarty
chris.hegarty at oracle.com
Fri Jul 20 04:13:41 PDT 2012
There is a small issue in the Modularizer where some
META-INF/service/XXX files are not being correctly copied to the on disk
"exploded" modules ( these are used to create the jmod/deb packages )
during the build.
The issue is that service providers can be in multiple files/jars in the
classpath. For example, there are two
META-INF/service/com.sun.jdi.connect.Connector files, one in sa-jdi.jar
(for the serviceability agent) and one in tools.jar. It is important to
preserve these META-INF files in the jmod/installed modules as they are
still used to find services in classpath mode (they do not effect module
mode).
The above example, com.sun.jdi.connect.Connector, is the only instance
of this situation in the JDK that I can find, but I think it is a
general problem so I have changed the Modularizer to search the whole
classpath when looking for services rather exiting early once one is
found. The META-INF/service/XXX are files are then concatenated.
http://cr.openjdk.java.net/~chegar/jigsaw/sajdi_webrev.00/webrev/
Note:
This issue was noticed when running the com/sun/jdi tests and
manifests itself as follows:
"java.lang.IllegalArgumentException: No connector named:
com.sun.jdi.CommandLineLaunch"
Thanks,
-Chris.
More information about the jigsaw-dev
mailing list