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]>