[jboss-cvs] JBossAS SVN: r103570 - in projects/jboss-osgi/projects/bundles/jmx/trunk: api and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 6 09:51:43 EDT 2010
Author: thomas.diesler at jboss.com
Date: 2010-04-06 09:51:42 -0400 (Tue, 06 Apr 2010)
New Revision: 103570
Added:
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/JSR160TestCase.java
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/api/pom.xml
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/pom.xml
projects/jboss-osgi/projects/bundles/jmx/trunk/impl/scripts/assembly-bundles.xml
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/AbstractJMXTestCase.java
projects/jboss-osgi/projects/bundles/jmx/trunk/pom.xml
Log:
Add JSR160 test coverage. Deprecate jmx/invoker/RMIAdaptor JNDI binding.
Modified: projects/jboss-osgi/projects/bundles/jmx/trunk/api/pom.xml
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/api/pom.xml 2010-04-06 13:11:35 UTC (rev 103569)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/api/pom.xml 2010-04-06 13:51:42 UTC (rev 103570)
@@ -19,14 +19,13 @@
<groupId>org.jboss.osgi.jmx</groupId>
<artifactId>jboss-osgi-jmx-api</artifactId>
- <version>1.0.5-SNAPSHOT</version>
<packaging>jar</packaging>
<!-- Parent -->
<parent>
<groupId>org.jboss.osgi.jmx</groupId>
<artifactId>jboss-osgi-jmx-parent</artifactId>
- <version>1.0.4</version>
+ <version>1.0.5-SNAPSHOT</version>
</parent>
<!-- Dependencies -->
Modified: projects/jboss-osgi/projects/bundles/jmx/trunk/impl/pom.xml
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/impl/pom.xml 2010-04-06 13:11:35 UTC (rev 103569)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/impl/pom.xml 2010-04-06 13:51:42 UTC (rev 103570)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.jboss.osgi.jmx</groupId>
<artifactId>jboss-osgi-jmx-parent</artifactId>
- <version>1.0.4-SNAPSHOT</version>
+ <version>1.0.5-SNAPSHOT</version>
</parent>
<!-- Dependencies -->
@@ -66,6 +66,16 @@
<artifactId>jboss-osgi-common</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jndi</groupId>
+ <artifactId>jboss-osgi-jndi</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!-- OSGi Dependencies -->
<dependency>
Modified: projects/jboss-osgi/projects/bundles/jmx/trunk/impl/scripts/assembly-bundles.xml
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/impl/scripts/assembly-bundles.xml 2010-04-06 13:11:35 UTC (rev 103569)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/impl/scripts/assembly-bundles.xml 2010-04-06 13:51:42 UTC (rev 103570)
@@ -16,6 +16,8 @@
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<includes>
<include>*:jboss-osgi-common:jar</include>
+ <include>*:jboss-osgi-common-core:jar</include>
+ <include>*:jboss-osgi-jndi:jar</include>
<include>*:org.apache.aries.jmx:jar</include>
<include>*:org.apache.felix.log:jar</include>
<include>*:org.osgi.compendium:jar</include>
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-06 13:11:35 UTC (rev 103569)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/main/java/org/jboss/osgi/jmx/internal/JMXServiceActivator.java 2010-04-06 13:51:42 UTC (rev 103570)
@@ -26,12 +26,8 @@
import java.io.IOException;
import javax.management.MBeanServer;
-import javax.management.MBeanServerConnection;
import javax.management.remote.JMXServiceURL;
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.JMXConstantsExt;
@@ -54,7 +50,6 @@
private JMXConnectorService jmxConnector;
private String jmxHost;
private String jmxRmiPort;
- private String rmiAdaptorPath;
private MBeanServer mbeanServer;
private FrameworkStateExt frameworkState;
private ServiceStateExt serviceState;
@@ -94,12 +89,8 @@
if (jmxRmiPort == null)
jmxRmiPort = "1098";
- rmiAdaptorPath = context.getProperty(JMXConstantsExt.REMOTE_JMX_RMI_ADAPTOR);
- if (rmiAdaptorPath == null)
- rmiAdaptorPath = "jmx/invoker/RMIAdaptor";
-
// Start tracking the NamingService
- InitialContextTracker tracker = new InitialContextTracker(context, rmiAdaptorPath);
+ InitialContextTracker tracker = new InitialContextTracker(context);
tracker.open();
}
@@ -126,13 +117,9 @@
class InitialContextTracker extends ServiceTracker
{
- private String rmiAdaptorPath;
- private boolean rmiAdaptorBound;
-
- public InitialContextTracker(BundleContext context, String rmiAdaptorPath)
+ public InitialContextTracker(BundleContext context)
{
super(context, InitialContext.class.getName(), null);
- this.rmiAdaptorPath = rmiAdaptorPath;
}
@Override
@@ -153,59 +140,18 @@
// Assume that the JMXConnector is already running if we cannot start it
log.debug("Assume JMXConnectorServer already running on: " + serviceURL);
}
-
- try
- {
- // Check if the RMIAdaptor is already bound
- iniCtx.lookup(rmiAdaptorPath);
- }
- catch (NamingException lookupEx)
- {
- // Bind the RMIAdaptor
- try
- {
- iniCtx.createSubcontext("jmx").createSubcontext("invoker");
- 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;
-
- log.info("MBeanServerConnection bound to: " + rmiAdaptorPath);
- }
- catch (NamingException ex)
- {
- log.error("Cannot bind RMIAdaptor", ex);
- }
- }
return iniCtx;
}
@Override
public void removedService(ServiceReference reference, Object service)
{
- InitialContext iniCtx = (InitialContext)service;
-
// Stop JMXConnectorService
if (jmxConnector != null)
{
jmxConnector.stop();
jmxConnector = null;
}
-
- // Unbind the RMIAdaptor
- if (rmiAdaptorBound == true)
- {
- try
- {
- iniCtx.unbind(rmiAdaptorPath);
- log.info("MBeanServerConnection unbound from: " + rmiAdaptorPath);
- }
- catch (NamingException ex)
- {
- log.error("Cannot unbind RMIAdaptor", ex);
- }
- }
-
super.removedService(reference, service);
}
}
Modified: projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/AbstractJMXTestCase.java
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/AbstractJMXTestCase.java 2010-04-06 13:11:35 UTC (rev 103569)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/AbstractJMXTestCase.java 2010-04-06 13:51:42 UTC (rev 103570)
@@ -24,10 +24,12 @@
//$Id$
import java.io.File;
+import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import javax.management.MBeanServer;
+import javax.management.MBeanServerConnection;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
@@ -109,7 +111,7 @@
return server;
}
- private void assertMBeanRegistration(boolean state)
+ private void assertMBeanRegistration(boolean state) throws IOException
{
log.debug("assertMBeanRegistration: " + state);
@@ -121,9 +123,9 @@
int timeout = 5000;
while (0 < (timeout -= 200))
{
- boolean fwkCheck = checkMBean(server, fwkName, state);
- boolean bndCheck = checkMBean(server, bndName, state);
- boolean srvCheck = checkMBean(server, srvName, state);
+ boolean fwkCheck = isMBeanRegistered(server, fwkName, state);
+ boolean bndCheck = isMBeanRegistered(server, bndName, state);
+ boolean srvCheck = isMBeanRegistered(server, srvName, state);
if (fwkCheck == true && bndCheck == true && srvCheck == true)
break;
@@ -137,15 +139,15 @@
}
}
- if (checkMBean(server, fwkName, state) == false)
+ if (isMBeanRegistered(server, fwkName, state) == false)
log.warn("FrameworkMBean " + (state ? "not" : "still") + " registered");
- if (checkMBean(server, bndName, state) == false)
+ if (isMBeanRegistered(server, bndName, state) == false)
log.warn("BundleStateMBean " + (state ? "not" : "still") + " registered");
- if (checkMBean(server, srvName, state) == false)
+ if (isMBeanRegistered(server, srvName, state) == false)
log.warn("ServiceStateMBean " + (state ? "not" : "still") + " registered");
}
- private boolean checkMBean(MBeanServer server, ObjectName oname, boolean state)
+ protected boolean isMBeanRegistered(MBeanServerConnection server, ObjectName oname, boolean state) throws IOException
{
boolean registered = server.isRegistered(oname);
log.debug(oname + " registered: " + registered);
Added: 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 (rev 0)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/impl/src/test/java/org/jboss/test/osgi/jmx/JSR160TestCase.java 2010-04-06 13:51:42 UTC (rev 103570)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.osgi.jmx;
+
+//$Id: ServiceStateTestCase.java 103562 2010-04-06 10:25:15Z thomas.diesler at jboss.com $
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URL;
+import java.util.Map;
+
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+
+import org.jboss.osgi.jmx.ObjectNameFactory;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.jmx.framework.BundleStateMBean;
+import org.osgi.jmx.framework.FrameworkMBean;
+import org.osgi.jmx.framework.ServiceStateMBean;
+
+/**
+ * Test JSR160 remote connectivity.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 06-Apr-2010
+ */
+public class JSR160TestCase extends AbstractJMXTestCase
+{
+ @Test
+ public void testJMXConnector() throws Exception
+ {
+ URL url = getTestArchiveURL("bundles/jboss-osgi-common-core.jar");
+ Bundle bundle = systemContext.installBundle(url.toExternalForm());
+ bundle.start();
+
+ url = getTestArchiveURL("bundles/jboss-osgi-jndi.jar");
+ bundle = systemContext.installBundle(url.toExternalForm());
+ bundle.start();
+
+ // The address of the connector server
+ JMXServiceURL address = new JMXServiceURL("service:jmx:rmi://localhost/jndi/rmi://localhost:1098/jmxconnector");
+
+ // The environment map, null in this case
+ Map<String, ?> environment = null;
+
+ // Create the JMXCconnectorServer
+ JMXConnector cntor = JMXConnectorFactory.connect(address, environment);
+
+ // Obtain a "stub" for the remote MBeanServer
+ MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+
+ // 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/bundles/jmx/trunk/pom.xml
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/pom.xml 2010-04-06 13:11:35 UTC (rev 103569)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/pom.xml 2010-04-06 13:51:42 UTC (rev 103570)
@@ -21,7 +21,7 @@
<artifactId>jboss-osgi-jmx-parent</artifactId>
<packaging>pom</packaging>
- <version>1.0.4-SNAPSHOT</version>
+ <version>1.0.5-SNAPSHOT</version>
<!-- Parent -->
<parent>
@@ -41,9 +41,11 @@
<properties>
<version.apache.aries.jmx>0.1-incubating-SNAPSHOT</version.apache.aries.jmx>
<version.apache.felix.log>1.0.0</version.apache.felix.log>
- <version.jboss.osgi.common>1.0.4-SNAPSHOT</version.jboss.osgi.common>
- <version.jboss.osgi.spi>1.0.5-SNAPSHOT</version.jboss.osgi.spi>
- <version.jboss.osgi.felix>2.0.2.SP1-SNAPSHOT</version.jboss.osgi.felix>
+ <version.jboss.osgi.common>1.0.4</version.jboss.osgi.common>
+ <version.jboss.osgi.common.core>2.2.13.GA</version.jboss.osgi.common.core>
+ <version.jboss.osgi.jndi>1.0.3</version.jboss.osgi.jndi>
+ <version.jboss.osgi.spi>1.0.5</version.jboss.osgi.spi>
+ <version.jboss.osgi.felix>2.0.4</version.jboss.osgi.felix>
<version.osgi>4.2.0</version.osgi>
</properties>
@@ -56,11 +58,6 @@
<dependencyManagement>
<dependencies>
<dependency>
- <groupId>org.jboss.osgi</groupId>
- <artifactId>jboss-osgi-spi</artifactId>
- <version>${version.jboss.osgi.spi}</version>
- </dependency>
- <dependency>
<groupId>org.apache.aries.jmx</groupId>
<artifactId>org.apache.aries.jmx</artifactId>
<version>${version.apache.aries.jmx}</version>
@@ -76,11 +73,26 @@
<version>${version.apache.felix.log}</version>
</dependency>
<dependency>
+ <groupId>org.jboss.osgi</groupId>
+ <artifactId>jboss-osgi-spi</artifactId>
+ <version>${version.jboss.osgi.spi}</version>
+ </dependency>
+ <dependency>
<groupId>org.jboss.osgi.bundles</groupId>
<artifactId>jboss-osgi-common</artifactId>
<version>${version.jboss.osgi.common}</version>
</dependency>
<dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-common-core</artifactId>
+ <version>${version.jboss.osgi.common.core}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jndi</groupId>
+ <artifactId>jboss-osgi-jndi</artifactId>
+ <version>${version.jboss.osgi.jndi}</version>
+ </dependency>
+ <dependency>
<groupId>org.jboss.osgi.felix</groupId>
<artifactId>jboss-osgi-felix</artifactId>
<version>${version.jboss.osgi.felix}</version>
More information about the jboss-cvs-commits
mailing list