You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by cf...@apache.org on 2004/08/26 07:06:10 UTC

svn commit: rev 37056 - in avalon/trunk/planet/facilities: . jmx/mx4j/src/main/org/apache/avalon/jmx/mx4j

Author: cfieber
Date: Wed Aug 25 22:06:10 2004
New Revision: 37056

Modified:
   avalon/trunk/planet/facilities/index.xml
   avalon/trunk/planet/facilities/jmx/mx4j/src/main/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java
Log:
upgrading JMX support to MX4J 2.0.1.  Currently builds, has some issues with method invokation through HTTP interface

Modified: avalon/trunk/planet/facilities/index.xml
==============================================================================
--- avalon/trunk/planet/facilities/index.xml	(original)
+++ avalon/trunk/planet/facilities/index.xml	Wed Aug 25 22:06:10 2004
@@ -104,7 +104,7 @@
     <info>
       <group>mx4j</group>
       <name>mx4j-jmx</name>
-      <version>1.1.1</version>
+      <version>2.0.1</version>
       <type>jar</type>
     </info>
     <gump>
@@ -116,8 +116,53 @@
   <resource>
     <info>
       <group>mx4j</group>
+      <name>mx4j-impl</name>
+      <version>2.0.1</version>
+      <type>jar</type>
+    </info>
+    <dependencies>
+      <include key="mx4j-jmx"/>
+    </dependencies>
+    <gump>
+      <alias>mx4j</alias>
+      <id>mx4j-impl</id>
+    </gump>
+  </resource>
+
+  <resource>
+    <info>
+      <group>mx4j</group>
+      <name>mx4j-rjmx</name>
+      <version>2.0.1</version>
+      <type>jar</type>
+    </info>
+    <gump>
+      <alias>mx4j</alias>
+      <id>mx4j-rjmx</id>
+    </gump>
+  </resource>
+
+  <resource>
+    <info>
+      <group>mx4j</group>
+      <name>mx4j-rimpl</name>
+      <version>2.0.1</version>
+      <type>jar</type>
+    </info>
+    <dependencies>
+      <include key="mx4j-rjmx"/>
+    </dependencies>
+    <gump>
+      <alias>mx4j</alias>
+      <id>mx4j-rimpl</id>
+    </gump>
+  </resource>
+
+  <resource>
+    <info>
+      <group>mx4j</group>
       <name>mx4j-tools</name>
-      <version>1.1.1</version>
+      <version>2.0.1</version>
       <type>jar</type>
     </info>
     <dependencies>
@@ -369,7 +414,7 @@
     <dependencies>
       <include key="avalon-framework-impl"/>
       <include key="avalon-util-i18n"/>
-      <include key="mx4j-tools"/>
+      <include key="mx4j-jmx"/>
     </dependencies>
   </project>
 
@@ -390,11 +435,15 @@
     <info>
       <group>avalon/jmx</group>
       <name>avalon-jmx-mx4j</name>
-      <version>1.0.0</version>
-      <status>SNAPSHOT</status> 
+      <version>2.0.1</version>
+      <status>SNAPSHOT</status>
     </info>
     <dependencies>
       <include key="avalon-jmx-spi"/>
+      <include key="mx4j-jmx"/>
+      <include key="mx4j-impl" build="false" runtime="true"/>
+      <include key="mx4j-rjmx"/>
+      <include key="mx4j-rimpl" build="false" runtime="true"/>
       <include key="mx4j-tools"/>
     </dependencies>
     <plugins>

Modified: avalon/trunk/planet/facilities/jmx/mx4j/src/main/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java
==============================================================================
--- avalon/trunk/planet/facilities/jmx/mx4j/src/main/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java	(original)
+++ avalon/trunk/planet/facilities/jmx/mx4j/src/main/org/apache/avalon/jmx/mx4j/MX4JComponentRegistrationManager.java	Wed Aug 25 22:06:10 2004
@@ -17,6 +17,8 @@
 package org.apache.avalon.jmx.mx4j;
 
 import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
 
 import javax.management.Attribute;
 import javax.management.AttributeNotFoundException;
@@ -27,6 +29,9 @@
 import javax.management.MBeanServerFactory;
 import javax.management.ObjectName;
 import javax.management.ReflectionException;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
 
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.avalon.framework.parameters.Parameters;
@@ -40,9 +45,7 @@
 import org.apache.avalon.util.i18n.ResourceManager;
 import org.apache.avalon.util.i18n.Resources;
 
-import mx4j.adaptor.rmi.jrmp.JRMPAdaptorMBean;
 import mx4j.log.Log;
-import mx4j.util.StandardMBeanProxy;
 
 /**
  * A component manager using the MX4J implementation of JMX.
@@ -72,6 +75,7 @@
     private String m_namingFactory;
     private String m_password;
     private String m_username;
+    private JMXConnectorServer m_connectorServer;
 
    /**
     * @avalon.entry key="urn:avalon:home" type="java.io.File"
@@ -104,6 +108,10 @@
         {
             startRMIAdaptor( mBeanServer );
         }
+        else
+        {
+            m_connectorServer = null;
+        }
     }
 
     public void dispose()
@@ -120,7 +128,7 @@
     private void startHttpAdaptor( final MBeanServer mBeanServer ) throws Exception
     {
         final ObjectName adaptorName = new ObjectName( "Http:name=HttpAdaptor" );
-        mBeanServer.createMBean( "mx4j.adaptor.http.HttpAdaptor", adaptorName, null );
+        mBeanServer.createMBean( "mx4j.tools.adaptor.http.HttpAdaptor", adaptorName, null );
         mBeanServer.setAttribute( adaptorName, new Attribute( "Host", m_host ) );
         mBeanServer.setAttribute( adaptorName, new Attribute( "Port", new Integer( m_port ) ) );
 
@@ -139,7 +147,7 @@
         Exception
     {
         final ObjectName processorName = new ObjectName( "Http:name=XSLTProcessor" );
-        mBeanServer.createMBean( "mx4j.adaptor.http.XSLTProcessor", processorName, null );
+        mBeanServer.createMBean( "mx4j.tools.adaptor.http.XSLTProcessor", processorName, null );
         mBeanServer.setAttribute( adaptorName, new Attribute( "ProcessorName", processorName ) );
 
         if ( null != m_stylesheetDir )
@@ -174,16 +182,13 @@
         server.createMBean( "mx4j.tools.naming.NamingService", naming, null );
         server.invoke( naming, "start", null, null );
 
-        // Create the JRMP adaptor
-        final ObjectName adaptor = new ObjectName( "Adaptor:protocol=JRMP" );
-        server.createMBean( "mx4j.adaptor.rmi.jrmp.JRMPAdaptor", adaptor, null );
-        JRMPAdaptorMBean mbean = ( JRMPAdaptorMBean ) StandardMBeanProxy.create( JRMPAdaptorMBean.class,
-            server, adaptor );
-        // Set the JNDI name with which will be registered
-        mbean.setJNDIName( "jrmp" );
-        mbean.putJNDIProperty( javax.naming.Context.INITIAL_CONTEXT_FACTORY, m_namingFactory );
-        // Register the JRMP adaptor in JNDI and start it
-        mbean.start();
+        // Create and start the JMXConnectorServer
+        JMXServiceURL address = new JMXServiceURL( "rmi", "localhost", 0, "/jndi/jrmp" );
+        Map environment = new HashMap();
+        environment.put( javax.naming.Context.INITIAL_CONTEXT_FACTORY, m_namingFactory );
+        environment.put( javax.naming.Context.PROVIDER_URL, "rmi://localhost:1099" );
+        m_connectorServer = JMXConnectorServerFactory.newJMXConnectorServer( address, environment, server);
+        m_connectorServer.start();
     }
 
     private void stopHttpAdaptor( final MBeanServer server )
@@ -193,8 +198,20 @@
 
     private void stopRMIAdaptor( final MBeanServer server )
     {
-        // stop the JRMP adaptor
-        stopJMXMBean( server, "Adaptor:protocol=JRMP" );
+        if ( m_connectorServer != null )
+        {
+            try
+            {
+                m_connectorServer.stop();
+            }
+            catch ( Exception ignored )
+            {
+                if ( getLogger().isDebugEnabled() )
+                {
+                    getLogger().debug( "JMXConnectorServer shutdown failed (ignoring)", ignored );
+                }
+            }
+        }
         // stop the naming service
         stopJMXMBean( server, "Naming:type=rmiregistry" );
     }

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org