costin      2002/06/06 15:21:04

  Modified:    jk/java/org/apache/jk/common JkMX.java
  Log:
  You can no specify the port where the mx4j adapter listens.
  That's for debugging - it should be set to -1 for normal use.
  
  Note that mx4j has problems with the thread class loader ( surprise ? ),
  so mx4j-tools.jar must be in the same place with mx4j.jar.
  
  Some code was moved to DynamicProxy, remove from here.
  
  Also, do a class.forName and try to register the log4j mbeans ( still
  has few problems if you don't have a log4j.properties ).
  
  Revision  Changes    Path
  1.2       +25 -25    jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JkMX.java
  
  Index: JkMX.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JkMX.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JkMX.java 5 Jun 2002 21:27:06 -0000       1.1
  +++ JkMX.java 6 Jun 2002 22:21:04 -0000       1.2
  @@ -69,11 +69,15 @@
   import org.apache.tomcat.util.mx.*;
   
   /** MX-enable jk.
  + *
  + *  Add "mx.port=PORT" in jk2.properties to enable it.
  + *  If port==-1 the JMX will be enabled but no HTTP adapter will be loaded.
  + *  Port > 0 will load the mx4j adapter, if possible.
    */
   public class JkMX extends JkHandler
   {
       MBeanServer mserver;
  -    private boolean mxAdapter=true;
  +    private int port=-1;
       
       public JkMX()
       {
  @@ -81,38 +85,26 @@
   
       /* -------------------- Public methods -------------------- */
   
  -    /** Testing - load the jmx adapter
  +    /** Enable the MX4J internal adapter
        */
  -    public void setLoadAdapter( boolean b ) {
  -        mxAdapter=b;
  +    public void setPort( int i ) {
  +        port=i;
       }
       
  -    public DynamicMBean createMBean( Object proxy, String name ) {
  +    public void createMBean( Object proxy, String name ) {
           try {
  -            // XXX use aliases, suffix only, proxy.getName(), etc
  -            if( name==null )
  -                name=proxy.getClass().getName();
  -            
  -            // XXX use jk domain
  -            String domain = "jk2";
  -            
               DynamicMBeanProxy mbean=new DynamicMBeanProxy();
  -
               mbean.setReal( proxy );
  -            
  -            ObjectName oname=new ObjectName( domain + ": name=" + name );
  -            
  -            mserver.registerMBean( mbean, oname );
  +            if( name!=null ) {
  +                mbean.setName( name );
  +            }
  +
  +            mbean.registerMBean( "jk2" );
           } catch( Throwable t ) {
               log.error( "Error creating mbean ", t );
           }
  -        return null;
       }
   
  -    public void registerName( String name, String className ) {
  -        
  -    }
  -    
       /* ==================== Start/stop ==================== */
   
       /** Initialize the worker. After this call the worker will be
  @@ -123,7 +115,7 @@
               ObjectName serverName = new ObjectName("Http:name=HttpAdaptor");
               mserver.createMBean("mx4j.adaptor.http.HttpAdaptor", serverName, null);
               //mserver.setAttribute(serverName, new Attribute("Host", "10.0.0.181"));
  -            mserver.setAttribute(serverName, new Attribute("Port", new 
Integer(8012)));
  +            mserver.setAttribute(serverName, new Attribute("Port", new 
Integer(port)));
               
               ObjectName processorName = new ObjectName("Http:name=XSLTProcessor");
               mserver.createMBean("mx4j.adaptor.http.XSLTProcessor", processorName, 
null);
  @@ -159,10 +151,18 @@
       }
       public void init() throws IOException {
           try {
  -            mserver = MBeanServerFactory.createMBeanServer();
  +            mserver = DynamicMBeanProxy.getMBeanServer();
   
  -            if( mxAdapter ) {
  +            if( port > 0 ) {
                   loadAdapter();
  +            }
  +
  +            try {
  +                Class c=Class.forName( "org.apache.log4j.jmx.HierarchyDynamicMBean" 
);
  +                Object o=c.newInstance();
  +                mserver.registerMBean(o, new ObjectName("log4j:hierarchy=default"));
  +            } catch( Throwable t ) {
  +                log.info("Can't enable log4j mx");
               }
   
               for( int i=0; i< wEnv.getHandlerCount(); i++ ) {
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to