jmx-dev Call for review, Bug ID 6514985
jfdenise
Jean-Francois.Denise at Sun.COM
Tue May 22 12:14:18 PDT 2007
Hope not to be the last :-))))
Le 22 mai 07 à 17:59, Daniel Fuchs a écrit :
> Hi Jean-Francois,
>
> Your changes look good to me. Thanks for being the first JMX team
> member to use the jmx-dev list!
>
> -- daniel
> http://blogs.sun.com/jmxetc
>
> Jean-Francois Denise - Sun Microsystems wrote:
>> Proposal to fix 6514985 : JMX should use java.util.ServiceLoader
>> to lookup service providers
>> Swan access webrev
>> ==================
>> http://amos.france.sun.com/jmgt/user/jfdenise/workspaces/
>> jdk7_jmx_master.ws/webrev/index.html Diff
>> ====
>> diff javax/management/remote/JMXConnectorFactory.java
>> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/
>> management/remote//JMXConnectorFactory.java 34d33
>> < import java.util.ServiceLoader;
>> 40a40
>>> import com.sun.jmx.remote.util.Service;
>> 42d41
>> <
>> 422,429c421,428
>> < static <T> Iterator<T> getProviderIterator(final
>> ServiceLoader<T>
>> loader) {
>> < PrivilegedAction<Iterator<T>>
>> < action = new PrivilegedAction<Iterator<T>>() {
>> < public Iterator<T> run() {
>> < return loader.iterator();
>> < }
>> < };
>> < return AccessController.doPrivileged(action);
>> ---
>>> static Iterator getProviderIterator(final Class providerClass,
>>> final ClassLoader loader) {
>>> PrivilegedAction action = new PrivilegedAction() {
>>> public Object run() {
>>> return Service.providers(providerClass, loader);
>>> }
>>> };
>>> return (Iterator) AccessController.doPrivileged(action);
>> 436,441c435,438
>> <
>> < ServiceLoader<JMXConnectorProvider> serviceLoader =
>> < ServiceLoader.load(JMXConnectorProvider.class,
>> < loader);
>> < Iterator<JMXConnectorProvider> providers =
>> < getProviderIterator(serviceLoader);
>> ---
>>>
>>> Iterator providers =
>> getProviderIterator(JMXConnectorProvider.class,
>>> loader);
>>> JMXConnectorProvider provider = null;
>> 444c441,442
>> < while(providers.hasNext()) {
>> ---
>>> while (providers.hasNext()) {
>>> provider = (JMXConnectorProvider) providers.next();
>> 446c444
>> < connection = providers.next().newJMXConnector
>> (url, map);
>> ---
>>> connection = provider.newJMXConnector(url, map);
>> diff javax/management/remote/JMXConnectorServerFactory.java
>> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/
>> management/remote//JMXConnectorServerFactory.java 38d37
>> < import java.util.ServiceLoader;
>> 214,219c213,215
>> < ServiceLoader<JMXConnectorServerProvider> serviceLoader =
>> < ServiceLoader.load
>> (JMXConnectorServerProvider.class,
>> < loader);
>> < Iterator<JMXConnectorServerProvider> providers =
>> < JMXConnectorFactory.getProviderIterator
>> (serviceLoader);
>> <
>> ---
>>> Iterator providers =
>>> JMXConnectorFactory.getProviderIterator(
>>> JMXConnectorServerProvider.class, loader);
>>> JMXConnectorServerProvider provider = null;
>> 222a219
>>> provider = (JMXConnectorServerProvider) providers.next
>>> ();
>> 224c221
>> < connection =
>> providers.next().newJMXConnectorServer(url, map, mbs);
>> ---
>>> connection = provider.newJMXConnectorServer(url,
>>> map,
>> mbs);
>> Only in
>> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/com/sun/jmx/
>> remote/util/: Service.java
>> Only in deleted_files//src/share: classes
>
More information about the jmx-dev
mailing list