jmx-dev Call for review, Bug ID 6514985

Jean-Francois Denise - Sun Microsystems Jean-Francois.Denise at Sun.COM
Tue May 22 08:45:42 PDT 2007


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


-- 
Jean-Francois Denise  JMX team
Interested in netbeans ==> http://blogs.sun.com/roller/page/jmxnetbeans





More information about the jmx-dev mailing list