Dump services webrev

Mandy Chung mandy.chung at oracle.com
Fri May 25 10:09:01 PDT 2012


iOn 5/25/2012 1:45 AM, Paul Sandoz wrote:
> Hi,
>
> See the following for a webrev to dump the services configuration:
>
>    http://cr.openjdk.java.net/~psandoz/jigsaw/dump-services/webrev/

Configuration.java - looks good.  this is useful to list the service 
providers in dump-config.  L148: formatting nit: the argument to be 
aligned with the argument in L147 and '{' begins in next line.

jdk.depconfig, JConsole.java: as we suggest, best would be to keep the 
-pluginpath as an option to run in classpath mode and output an error 
when -pluginpath is used.  For now, the error message should suggest to 
run jconsole with -Xmode:classpath option (we should rename the current 
-Xmode:legacy launcher flag).

Charset.java - this change seems to be a leftover from the previous 
webrev - do you mean to revert it?

RenderingEngine.java - I suspect the system property was for testing and 
Phil will confirm.

FYI.  W.r.t. using a system property to override an implementation 
class, this property mechanism is also used place that does not call 
ServiceLoader (probably was added predated the service loader 
mechanism).  A while back, I annotated the jdk source to record the 
non-static dependencies (the webrev was based on jdk7-b72 and need update):
    http://cr.openjdk.java.net/~mchung/jigsaw/annotated_jdk_webrev/

It included the system property if it supports this property mechanism 
(some examples):
    @ClassForName(value={""}, 
property="com.sun.net.httpserver.HttpServerProvider")
    @ClassForName(value={"sun.net.www.protocol.*.Handler"}, 
property="java.protocol.handler.pkgs")
    @ClassForName(value={"sun.net.www.content.*"}, 
property="java.content.handler.pkgs")
    @ClassForName(value={""}, 
property="java.nio.channels.spi.AsynchronousChannelProvider")
    @ClassForName(value={"sun.nio.ch.DefaultSelectorProvider"}, 
property="java.nio.channels.spi.SelectorProvider")
    @ClassForName(value={""}, property="java.rmi.server.RMIClassLoaderSpi")
    @ClassForName(value={"sun.security.provider.IdentityDatabase"}, 
property="system.scope", required=false)
    @ClassForName(value={"sun.security.provider.PolicyFile"}, 
property="policy.provider")
    @ClassForName(value={"java.security.*Spi"}, property="", required=false)
    @ClassForName(value={""}, property="jdbc.drivers")
    @ClassForName(value={}, property="java.util.jar.Pack200.*")
    @ClassForName(value={""}, property="ssl.ServerSocketFactory.provider")
    @ClassForName(value={""}, property="ssl.SocketFactory.provider")

Some are supported and some are private jdk implementation.  Anyway, we 
will have to go through them case by case.

Mandy



More information about the jigsaw-dev mailing list