Author: thomas.diesler(a)jboss.com
Date: 2010-04-08 02:23:55 -0400 (Thu, 08 Apr 2010)
New Revision: 103675
Removed:
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptor.java
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptorFactory.java
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXConstantsExt.java
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXServiceURLFactory.java
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/JSR160TestCase.java
projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java
Log:
[JBOSGI-307] - JSR160 compliant JMXConnector
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXConstantsExt.java
===================================================================
---
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXConstantsExt.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXConstantsExt.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -37,8 +37,6 @@
String REMOTE_JMX_RMI_PORT = "org.jboss.osgi.jmx.rmi.port";
/** The property that sets the port that the RMI Registry binds to:
org.jboss.osgi.jmx.rmi.registry.port */
String REMOTE_JMX_RMI_REGISTRY_PORT =
"org.jboss.osgi.jmx.rmi.registry.port";
- /** The property that sets the JNDI name the RMIAdaptor binds to:
org.jboss.osgi.jmx.rmi.adaptor */
- String REMOTE_JMX_RMI_ADAPTOR = "org.jboss.osgi.jmx.rmi.adaptor";
/** The default host that the RMIAdaptor binds to: localhost */
String DEFAULT_REMOTE_JMX_HOST = "localhost";
@@ -46,6 +44,4 @@
String DEFAULT_REMOTE_JMX_RMI_PORT = "1198";
/** The default port that the RMI Registry binds to: 1090 */
String DEFAULT_REMOTE_JMX_RMI_REGISTRY_PORT = "1090";
- /** The default JNDI name the RMIAdaptor binds to: osgi/jmx/RMIAdaptor */
- String DEFAULT_JMX_RMI_ADAPTOR = "osgi/jmx/RMIAdaptor";
}
\ No newline at end of file
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXServiceURLFactory.java
===================================================================
---
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXServiceURLFactory.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/bundles/jmx/trunk/api/src/main/java/org/jboss/osgi/jmx/JMXServiceURLFactory.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -23,6 +23,13 @@
//$Id: JMXConnectorService.java 103656 2010-04-07 20:02:31Z thomas.diesler(a)jboss.com $
+import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_REMOTE_JMX_HOST;
+import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_REMOTE_JMX_RMI_PORT;
+import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_REMOTE_JMX_RMI_REGISTRY_PORT;
+import static org.jboss.osgi.jmx.JMXConstantsExt.REMOTE_JMX_HOST;
+import static org.jboss.osgi.jmx.JMXConstantsExt.REMOTE_JMX_RMI_PORT;
+import static org.jboss.osgi.jmx.JMXConstantsExt.REMOTE_JMX_RMI_REGISTRY_PORT;
+
import java.net.MalformedURLException;
import javax.management.remote.JMXServiceURL;
@@ -35,9 +42,23 @@
*/
public abstract class JMXServiceURLFactory
{
- public static JMXServiceURL getServiceURL(String host, int conPort, int regPort)
+ public static JMXServiceURL getServiceURL()
{
- String jmxConnectorURL = "service:jmx:rmi://" + host + ":" +
conPort + "/jndi/rmi://" + host + ":" + regPort +
"/osgi-jmx-connector";
+ return getServiceURL(null, null, null);
+ }
+
+ public static JMXServiceURL getServiceURL(String host, Integer jmxPort, Integer
rmiPort)
+ {
+ if (host == null)
+ host = System.getProperty(REMOTE_JMX_HOST, DEFAULT_REMOTE_JMX_HOST);
+
+ if (jmxPort == null)
+ jmxPort = Integer.parseInt(System.getProperty(REMOTE_JMX_RMI_PORT,
DEFAULT_REMOTE_JMX_RMI_PORT));
+
+ if (rmiPort == null)
+ rmiPort = Integer.parseInt(System.getProperty(REMOTE_JMX_RMI_REGISTRY_PORT,
DEFAULT_REMOTE_JMX_RMI_REGISTRY_PORT));
+
+ String jmxConnectorURL = "service:jmx:rmi://" + host + ":" +
jmxPort + "/jndi/rmi://" + host + ":" + rmiPort +
"/osgi-jmx-connector";
try
{
return new JMXServiceURL(jmxConnectorURL);
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java
===================================================================
---
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXConnectorService.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -39,7 +39,7 @@
import org.jboss.logging.Logger;
/**
- * A Service Activator that registers an MBeanServer
+ * A RMI/JRMP connector service.
*
* @author thomas.diesler(a)jboss.com
* @since 24-Apr-2009
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java
===================================================================
---
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -23,25 +23,18 @@
//$Id$
-import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_JMX_RMI_ADAPTOR;
import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_REMOTE_JMX_HOST;
import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_REMOTE_JMX_RMI_PORT;
import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_REMOTE_JMX_RMI_REGISTRY_PORT;
import static org.jboss.osgi.jmx.JMXConstantsExt.REMOTE_JMX_HOST;
-import static org.jboss.osgi.jmx.JMXConstantsExt.REMOTE_JMX_RMI_ADAPTOR;
import static org.jboss.osgi.jmx.JMXConstantsExt.REMOTE_JMX_RMI_PORT;
import static org.jboss.osgi.jmx.JMXConstantsExt.REMOTE_JMX_RMI_REGISTRY_PORT;
import java.io.IOException;
import javax.management.MBeanServer;
-import javax.management.MBeanServerConnection;
import javax.management.remote.JMXServiceURL;
-import javax.naming.Context;
import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.naming.Reference;
-import javax.naming.StringRefAddr;
import org.jboss.logging.Logger;
import org.jboss.osgi.jmx.JMXServiceURLFactory;
@@ -63,9 +56,8 @@
private JMXConnectorService jmxConnector;
private String jmxHost;
- private String jmxRmiPort;
- private String rmiRegistryPort;
- private String rmiAdaptorName;
+ private String jmxPortStr;
+ private String rmiPortStr;
private MBeanServer mbeanServer;
private FrameworkStateExt frameworkState;
private ServiceStateExt serviceState;
@@ -101,18 +93,14 @@
if (jmxHost == null)
jmxHost = DEFAULT_REMOTE_JMX_HOST;
- jmxRmiPort = context.getProperty(REMOTE_JMX_RMI_PORT);
- if (jmxRmiPort == null)
- jmxRmiPort = DEFAULT_REMOTE_JMX_RMI_PORT;
+ jmxPortStr = context.getProperty(REMOTE_JMX_RMI_PORT);
+ if (jmxPortStr == null)
+ jmxPortStr = DEFAULT_REMOTE_JMX_RMI_PORT;
- rmiRegistryPort = context.getProperty(REMOTE_JMX_RMI_REGISTRY_PORT);
- if (rmiRegistryPort == null)
- rmiRegistryPort = DEFAULT_REMOTE_JMX_RMI_REGISTRY_PORT;
+ rmiPortStr = context.getProperty(REMOTE_JMX_RMI_REGISTRY_PORT);
+ if (rmiPortStr == null)
+ rmiPortStr = DEFAULT_REMOTE_JMX_RMI_REGISTRY_PORT;
- rmiAdaptorName = context.getProperty(REMOTE_JMX_RMI_ADAPTOR);
- if (rmiAdaptorName == null)
- rmiAdaptorName = DEFAULT_JMX_RMI_ADAPTOR;
-
// Start tracking the NamingService
InitialContextTracker tracker = new InitialContextTracker(context);
tracker.open();
@@ -141,8 +129,6 @@
class InitialContextTracker extends ServiceTracker
{
- private boolean rmiAdaptorBound;
-
public InitialContextTracker(BundleContext context)
{
super(context, InitialContext.class.getName(), null);
@@ -153,12 +139,12 @@
{
InitialContext iniCtx = (InitialContext)super.addingService(reference);
- int conPort = Integer.parseInt(jmxRmiPort);
- int regPort = Integer.parseInt(rmiRegistryPort);
- JMXServiceURL serviceURL = JMXServiceURLFactory.getServiceURL(jmxHost, conPort,
regPort);
+ int jmxPort = Integer.parseInt(jmxPortStr);
+ int rmiPort = Integer.parseInt(rmiPortStr);
+ JMXServiceURL serviceURL = JMXServiceURLFactory.getServiceURL(jmxHost, jmxPort,
rmiPort);
try
{
- jmxConnector = new JMXConnectorService(serviceURL, regPort);
+ jmxConnector = new JMXConnectorService(serviceURL, rmiPort);
jmxConnector.start(mbeanServer);
}
catch (IOException ex)
@@ -167,37 +153,12 @@
return iniCtx;
}
- // Bind the RMIAdaptor
- try
- {
- String[] tokens = rmiAdaptorName.split("/");
- Context ctx = iniCtx;
- for (int i = 0; i < tokens.length - 1; i++)
- {
- String token = tokens[i];
- ctx = ctx.createSubcontext(token);
- }
- StringRefAddr addr = new StringRefAddr(JMXServiceURL.class.getName(),
serviceURL.toString());
- Reference ref = new Reference(MBeanServerConnection.class.getName(), addr,
RMIAdaptorFactory.class.getName(), null);
- iniCtx.bind(rmiAdaptorName, ref);
- rmiAdaptorBound = true;
-
- log.debug("MBeanServerConnection bound to: " + rmiAdaptorName);
- }
- catch (NamingException ex)
- {
- log.error("Cannot bind RMIAdaptor", ex);
- return iniCtx;
- }
-
return iniCtx;
}
@Override
public void removedService(ServiceReference reference, Object service)
{
- InitialContext iniCtx = (InitialContext)service;
-
// Stop JMXConnectorService
if (jmxConnector != null)
{
@@ -205,20 +166,6 @@
jmxConnector = null;
}
- // Unbind the RMIAdaptor
- if (rmiAdaptorBound == true)
- {
- try
- {
- iniCtx.unbind(rmiAdaptorName);
- log.info("MBeanServerConnection unbound from: " +
rmiAdaptorName);
- }
- catch (NamingException ex)
- {
- log.error("Cannot unbind RMIAdaptor", ex);
- }
- }
-
super.removedService(reference, service);
}
}
Deleted:
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptor.java
===================================================================
---
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptor.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptor.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -1,189 +0,0 @@
-/**
- *
- */
-package org.jboss.osgi.jmx.internal;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.Set;
-
-import javax.management.Attribute;
-import javax.management.AttributeList;
-import javax.management.AttributeNotFoundException;
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.IntrospectionException;
-import javax.management.InvalidAttributeValueException;
-import javax.management.ListenerNotFoundException;
-import javax.management.MBeanException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServerConnection;
-import javax.management.NotCompliantMBeanException;
-import javax.management.NotificationFilter;
-import javax.management.NotificationListener;
-import javax.management.ObjectInstance;
-import javax.management.ObjectName;
-import javax.management.QueryExp;
-import javax.management.ReflectionException;
-import javax.management.remote.JMXConnector;
-import javax.management.remote.JMXConnectorFactory;
-import javax.management.remote.JMXServiceURL;
-
-import org.jboss.logging.Logger;
-
-public class RMIAdaptor implements MBeanServerConnection, Serializable
-{
- private static final long serialVersionUID = -360532663805790477L;
-
- // Provide logging
- private transient final Logger log = Logger.getLogger(RMIAdaptor.class);
-
- private transient MBeanServerConnection delegate;
-
- public RMIAdaptor(JMXServiceURL url) throws IOException
- {
- log.debug("Connect JMXConnector to: " + url);
- JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
- delegate = jmxc.getMBeanServerConnection();
- }
-
- public void addNotificationListener(ObjectName name, NotificationListener listener,
NotificationFilter filter, Object handback)
- throws InstanceNotFoundException, IOException
- {
- delegate.addNotificationListener(name, listener, filter, handback);
- }
-
- public void addNotificationListener(ObjectName name, ObjectName listener,
NotificationFilter filter, Object handback) throws InstanceNotFoundException,
- IOException
- {
- delegate.addNotificationListener(name, listener, filter, handback);
- }
-
- public ObjectInstance createMBean(String className, ObjectName name, Object[] params,
String[] signature) throws ReflectionException,
- InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException,
NotCompliantMBeanException, IOException
- {
- return delegate.createMBean(className, name, params, signature);
- }
-
- public ObjectInstance createMBean(String className, ObjectName name, ObjectName
loaderName, Object[] params, String[] signature) throws ReflectionException,
- InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException,
NotCompliantMBeanException, InstanceNotFoundException, IOException
- {
- return delegate.createMBean(className, name, loaderName, params, signature);
- }
-
- public ObjectInstance createMBean(String className, ObjectName name, ObjectName
loaderName) throws ReflectionException, InstanceAlreadyExistsException,
- MBeanRegistrationException, MBeanException, NotCompliantMBeanException,
InstanceNotFoundException, IOException
- {
- return delegate.createMBean(className, name, loaderName);
- }
-
- public ObjectInstance createMBean(String className, ObjectName name) throws
ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException,
- MBeanException, NotCompliantMBeanException, IOException
- {
- return delegate.createMBean(className, name);
- }
-
- public Object getAttribute(ObjectName name, String attribute) throws MBeanException,
AttributeNotFoundException, InstanceNotFoundException,
- ReflectionException, IOException
- {
- return delegate.getAttribute(name, attribute);
- }
-
- public AttributeList getAttributes(ObjectName name, String[] attributes) throws
InstanceNotFoundException, ReflectionException, IOException
- {
- return delegate.getAttributes(name, attributes);
- }
-
- public String getDefaultDomain() throws IOException
- {
- return delegate.getDefaultDomain();
- }
-
- public String[] getDomains() throws IOException
- {
- return delegate.getDomains();
- }
-
- public Integer getMBeanCount() throws IOException
- {
- return delegate.getMBeanCount();
- }
-
- public MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException,
IntrospectionException, ReflectionException, IOException
- {
- return delegate.getMBeanInfo(name);
- }
-
- public ObjectInstance getObjectInstance(ObjectName name) throws
InstanceNotFoundException, IOException
- {
- return delegate.getObjectInstance(name);
- }
-
- public Object invoke(ObjectName name, String operationName, Object[] params, String[]
signature) throws InstanceNotFoundException, MBeanException,
- ReflectionException, IOException
- {
- return delegate.invoke(name, operationName, params, signature);
- }
-
- public boolean isInstanceOf(ObjectName name, String className) throws
InstanceNotFoundException, IOException
- {
- return delegate.isInstanceOf(name, className);
- }
-
- public boolean isRegistered(ObjectName name) throws IOException
- {
- return delegate.isRegistered(name);
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public Set queryMBeans(ObjectName name, QueryExp query) throws IOException
- {
- return delegate.queryMBeans(name, query);
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public Set queryNames(ObjectName name, QueryExp query) throws IOException
- {
- return delegate.queryNames(name, query);
- }
-
- public void removeNotificationListener(ObjectName name, NotificationListener listener,
NotificationFilter filter, Object handback)
- throws InstanceNotFoundException, ListenerNotFoundException, IOException
- {
- delegate.removeNotificationListener(name, listener, filter, handback);
- }
-
- public void removeNotificationListener(ObjectName name, NotificationListener listener)
throws InstanceNotFoundException, ListenerNotFoundException,
- IOException
- {
- delegate.removeNotificationListener(name, listener);
- }
-
- public void removeNotificationListener(ObjectName name, ObjectName listener,
NotificationFilter filter, Object handback) throws InstanceNotFoundException,
- ListenerNotFoundException, IOException
- {
- delegate.removeNotificationListener(name, listener, filter, handback);
- }
-
- public void removeNotificationListener(ObjectName name, ObjectName listener) throws
InstanceNotFoundException, ListenerNotFoundException, IOException
- {
- delegate.removeNotificationListener(name, listener);
- }
-
- public void setAttribute(ObjectName name, Attribute attribute) throws
InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException,
- MBeanException, ReflectionException, IOException
- {
- delegate.setAttribute(name, attribute);
- }
-
- public AttributeList setAttributes(ObjectName name, AttributeList attributes) throws
InstanceNotFoundException, ReflectionException, IOException
- {
- return delegate.setAttributes(name, attributes);
- }
-
- public void unregisterMBean(ObjectName name) throws InstanceNotFoundException,
MBeanRegistrationException, IOException
- {
- delegate.unregisterMBean(name);
- }
-}
\ No newline at end of file
Deleted:
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptorFactory.java
===================================================================
---
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptorFactory.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/RMIAdaptorFactory.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -1,30 +0,0 @@
-/**
- *
- */
-package org.jboss.osgi.jmx.internal;
-
-// $Id$
-
-import java.io.Serializable;
-import java.util.Hashtable;
-
-import javax.management.remote.JMXServiceURL;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.spi.ObjectFactory;
-
-public class RMIAdaptorFactory implements ObjectFactory, Serializable
-{
- private static final long serialVersionUID = 2560477127430087074L;
-
- public Object getObjectInstance(Object obj, Name name, Context nameCtx,
Hashtable<?, ?> environment) throws Exception
- {
- Reference ref = (Reference)obj;
- RefAddr refAddr = ref.get(JMXServiceURL.class.getName());
- String serviceURL = (String)refAddr.getContent();
- JMXServiceURL url = new JMXServiceURL(serviceURL);
- return new RMIAdaptor(url);
- }
-}
\ No newline at end of file
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/JSR160TestCase.java
===================================================================
---
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/JSR160TestCase.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/JSR160TestCase.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -23,7 +23,6 @@
//$Id: ServiceStateTestCase.java 103562 2010-04-06 10:25:15Z thomas.diesler(a)jboss.com $
-import static org.jboss.osgi.jmx.JMXConstantsExt.DEFAULT_JMX_RMI_ADAPTOR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -34,8 +33,8 @@
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
-import javax.naming.InitialContext;
+import org.jboss.osgi.jmx.JMXServiceURLFactory;
import org.jboss.osgi.jmx.ObjectNameFactory;
import org.junit.Test;
import org.osgi.jmx.framework.BundleStateMBean;
@@ -54,13 +53,13 @@
public void testJMXConnector() throws Exception
{
// The address of the connector server
- JMXServiceURL address = new
JMXServiceURL("service:jmx:rmi://localhost:1198/jndi/rmi://localhost:1090/osgi-jmx-connector");
+ JMXServiceURL serviceURL = JMXServiceURLFactory.getServiceURL(getServerHost(),
null, null);
// The environment map, null in this case
Map<String, ?> environment = null;
// Create the JMXCconnectorServer
- JMXConnector cntor = JMXConnectorFactory.connect(address, environment);
+ JMXConnector cntor = JMXConnectorFactory.connect(serviceURL, environment);
// Obtain a "stub" for the remote MBeanServer
MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
@@ -77,23 +76,4 @@
assertTrue(isMBeanRegistered(mbsc, bndName, true));
assertTrue(isMBeanRegistered(mbsc, srvName, true));
}
-
- @Test
- public void testRMIAdaptor() throws Exception
- {
- InitialContext iniCtx = getInitialContext();
- MBeanServerConnection mbsc =
(MBeanServerConnection)iniCtx.lookup(DEFAULT_JMX_RMI_ADAPTOR);
-
- // Call the remote MBeanServer
- String domain = mbsc.getDefaultDomain();
- assertEquals("DefaultDomain", domain);
-
- ObjectName fwkName = ObjectNameFactory.create(FrameworkMBean.OBJECTNAME);
- ObjectName bndName = ObjectNameFactory.create(BundleStateMBean.OBJECTNAME);
- ObjectName srvName = ObjectNameFactory.create(ServiceStateMBean.OBJECTNAME);
-
- assertTrue(isMBeanRegistered(mbsc, fwkName, true));
- assertTrue(isMBeanRegistered(mbsc, bndName, true));
- assertTrue(isMBeanRegistered(mbsc, srvName, true));
- }
}
\ No newline at end of file
Modified:
projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java
===================================================================
---
projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java 2010-04-08
06:06:55 UTC (rev 103674)
+++
projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java 2010-04-08
06:23:55 UTC (rev 103675)
@@ -37,10 +37,11 @@
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.TabularData;
import javax.management.remote.JMXConnector;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
import org.jboss.logging.Logger;
+import org.jboss.osgi.jmx.JMXServiceURLFactory;
import org.jboss.osgi.jmx.MBeanProxy;
import org.jboss.osgi.jmx.ObjectNameFactory;
import org.jboss.osgi.jmx.ServiceStateMBeanExt;
@@ -63,7 +64,7 @@
{
// Provide logging
private static final Logger log = Logger.getLogger(RemoteRuntime.class);
-
+
private MBeanServerConnection mbeanServer;
private JMXConnector jmxConnector;
@@ -77,7 +78,7 @@
{
return true;
}
-
+
@Override
OSGiBundle installBundleInternal(BundleInfo info) throws BundleException
{
@@ -217,15 +218,16 @@
@Override
public MBeanServerConnection getMBeanServer()
{
- // Get the MBeanServerConnection through the RMIAdaptor
+ // Get the MBeanServerConnection through the JMXConnector
if (mbeanServer == null)
{
try
{
- InitialContext iniCtx = getInitialContext();
- mbeanServer =
(MBeanServerConnection)iniCtx.lookup("osgi/jmx/RMIAdaptor");
+ JMXServiceURL serviceURL =
JMXServiceURLFactory.getServiceURL(getServerHost(), null, null);
+ jmxConnector = JMXConnectorFactory.connect(serviceURL, null);
+ mbeanServer = jmxConnector.getMBeanServerConnection();
}
- catch (NamingException ex)
+ catch (IOException ex)
{
throw new IllegalStateException("Cannot obtain
MBeanServerConnection");
}
@@ -237,7 +239,7 @@
public void shutdown()
{
super.shutdown();
-
+
// Close the JMXConnector
if (jmxConnector != null)
{