jmx-dev Call for review, Bug ID 6514985

Daniel Fuchs Daniel.Fuchs at Sun.COM
Tue May 22 08:59:53 PDT 2007


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