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