[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