[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