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