[jboss-osgi-commits] JBoss-OSGI SVN: r93461 - projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Mon Sep 14 05:30:39 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-09-14 05:30:39 -0400 (Mon, 14 Sep 2009)
New Revision: 93461

Modified:
   projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java
   projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java
Log:
Fix JMXConnector check

Modified: projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java	2009-09-14 08:56:27 UTC (rev 93460)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java	2009-09-14 09:30:39 UTC (rev 93461)
@@ -25,6 +25,7 @@
 
 import java.io.IOException;
 import java.net.InetAddress;
+import java.net.MalformedURLException;
 import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
@@ -58,8 +59,6 @@
    {
       log = new LogServiceTracker(context);
 
-      String jmxConnectorServerPath = "/jmxconnector";
-
       try
       {
          // check to see if registry already created
@@ -77,7 +76,7 @@
          }
 
          // create new connector server and start it
-         serviceURL = new JMXServiceURL("service:jmx:rmi://" + host + "/jndi/rmi://" + host + ":" + rmiPort + jmxConnectorServerPath);
+         serviceURL = getServiceURL(host, rmiPort);
          jmxConnectorServer = JMXConnectorServerFactory.newJMXConnectorServer(serviceURL, null, mbeanServer);
 
          log.log(LogService.LOG_DEBUG, "JMXConnectorServer created: " + serviceURL);
@@ -92,9 +91,17 @@
       }
    }
 
-   public JMXServiceURL getServiceURL()
+   static JMXServiceURL getServiceURL(String host, int rmiPort)
    {
-      return serviceURL;
+      String jmxConnectorURL = "service:jmx:rmi://" + host + "/jndi/rmi://" + host + ":" + rmiPort + "/jmxconnector";
+      try
+      {
+         return new JMXServiceURL(jmxConnectorURL);
+      }
+      catch (MalformedURLException e)
+      {
+         throw new IllegalArgumentException("Invalid connector URL: " + jmxConnectorURL);
+      }
    }
 
    public void start()

Modified: projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java	2009-09-14 08:56:27 UTC (rev 93460)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java	2009-09-14 09:30:39 UTC (rev 93461)
@@ -28,10 +28,11 @@
 import static org.jboss.osgi.jmx.Constants.REMOTE_JMX_RMI_PORT;
 
 import java.io.IOException;
-import java.net.Socket;
 
 import javax.management.MBeanServer;
 import javax.management.MBeanServerConnection;
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
@@ -142,11 +143,13 @@
       {
          InitialContext iniCtx = (InitialContext)super.addingService(reference);
          
+         JMXServiceURL serviceURL = JMXConnectorService.getServiceURL(jmxHost, Integer.parseInt(jmxRmiPort));
          try
          {
             // Assume that the JMXConnector is already running if we can connect to it 
-            Socket socket = new Socket(jmxHost, new Integer(jmxRmiPort));
-            socket.close();
+            JMXConnector connector = JMXConnectorFactory.connect(serviceURL);
+            connector.connect();
+            connector.close();
          }
          catch (IOException ex)
          {
@@ -166,7 +169,7 @@
             try
             {
                iniCtx.createSubcontext("jmx").createSubcontext("invoker");
-               StringRefAddr addr = new StringRefAddr(JMXServiceURL.class.getName(), jmxConnector.getServiceURL().toString());
+               StringRefAddr addr = new StringRefAddr(JMXServiceURL.class.getName(), serviceURL.toString());
                Reference ref = new Reference(MBeanServerConnection.class.getName(), addr, RMIAdaptorFactory.class.getName(), null);
                iniCtx.bind(rmiAdaptorPath, ref);
                rmiAdaptorBound = true;



More information about the jboss-osgi-commits mailing list