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

Reply via email to