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