hammant 2002/12/15 16:37:13
Modified: src/java/org/apache/avalon/phoenix/components/manager Tag:
RELEASE_402-branch MX4JSystemManager.java
Log:
changes from HEAD to allow non localhost serving of MX4J console. Identified by
Ulrich Mayring
Revision Changes Path
No revision
No revision
1.19.2.1 +54 -2
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/manager/MX4JSystemManager.java
Index: MX4JSystemManager.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/manager/MX4JSystemManager.java,v
retrieving revision 1.19
retrieving revision 1.19.2.1
diff -u -r1.19 -r1.19.2.1
--- MX4JSystemManager.java 6 Sep 2002 12:43:55 -0000 1.19
+++ MX4JSystemManager.java 16 Dec 2002 00:37:13 -0000 1.19.2.1
@@ -26,6 +26,8 @@
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
+import org.apache.avalon.excalibur.i18n.Resources;
+import org.apache.avalon.excalibur.i18n.ResourceManager;
/**
* This component is responsible for managing phoenix instance.
@@ -38,11 +40,15 @@
extends AbstractJMXManager
implements Contextualizable, Configurable
{
+ private static final Resources REZ =
+ ResourceManager.getPackageResources( MX4JSystemManager.class );
private static final String DEFAULT_NAMING_FACTORY =
"com.sun.jndi.rmi.registry.RegistryContextFactory";
+ private static final String DEFAULT_HTTPADAPTER_HOST = "localhost";
private static final int DEFAULT_HTTPADAPTER_PORT =
Integer.getInteger( "phoenix.adapter.http", 8082 ).intValue();
+ private String m_host;
private int m_port;
private boolean m_rmi;
private File m_homeDir;
@@ -60,6 +66,9 @@
public void configure( final Configuration configuration )
throws ConfigurationException
{
+ m_host = configuration.getChild( "manager-adaptor-host" ).
+ getValue( DEFAULT_HTTPADAPTER_HOST );
+
m_port = configuration.getChild( "manager-adaptor-port" ).
getValueAsInteger( DEFAULT_HTTPADAPTER_PORT );
@@ -98,7 +107,7 @@
final MBeanServer mBeanServer = getMBeanServer();
- configureHttpAdaptor( mBeanServer );
+ startHttpAdaptor( mBeanServer );
if( m_rmi )
{
@@ -106,11 +115,26 @@
}
}
- private void configureHttpAdaptor( final MBeanServer mBeanServer )
+ public void dispose()
+ {
+ final MBeanServer mBeanServer = getMBeanServer();
+
+ stopHttpAdaptor( mBeanServer );
+
+ if( m_rmi )
+ {
+ stopRMIAdaptor( mBeanServer );
+ }
+
+ super.dispose();
+ }
+
+ 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.setAttribute( adaptorName, new Attribute( "Host", m_host ) );
mBeanServer.setAttribute( adaptorName, new Attribute( "Port", new Integer(
m_port ) ) );
if( null != m_username )
@@ -179,11 +203,39 @@
mbean.start();
}
+ private void stopHttpAdaptor( final MBeanServer server )
+ {
+ stopJMXMBean( server, "Http:name=HttpAdaptor" );
+ }
+
+ private void stopRMIAdaptor( final MBeanServer server )
+ {
+ // stop the JRMP adaptor
+ stopJMXMBean( server, "Adaptor:protocol=JRMP" );
+ // stop the naming service
+ stopJMXMBean( server, "Naming:type=rmiregistry" );
+ }
+
protected MBeanServer createMBeanServer()
throws Exception
{
MX4JLoggerAdapter.setLogger( getLogger() );
Log.redirectTo( new MX4JLoggerAdapter() );
return MBeanServerFactory.createMBeanServer( "Phoenix" );
+ }
+
+ private void stopJMXMBean( final MBeanServer mBeanServer, final String name )
+ {
+ try
+ {
+ final ObjectName objectName = new ObjectName( name );
+ mBeanServer.invoke( objectName, "stop", null, null );
+ }
+ catch ( final Exception e )
+ {
+ final String message =
+ REZ.getString( "jmxmanager.error.jmxmbean.dispose", name );
+ getLogger().error( message, e );
+ }
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>