You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2003/01/16 23:17:37 UTC

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java

costin      2003/01/16 14:17:37

  Modified:    jk/java/org/apache/jk/server JkCoyoteHandler.java
                        JkMain.java
  Log:
  When the coyote handler is registered ( by the Connector or other method ),
  it'll also register JkMain.
  
  JkMain will register all handlers as mbeans.
  
  If the coyote handler is not registered - nothing happens.
  
  Revision  Changes    Path
  1.33      +16 -2     jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java
  
  Index: JkCoyoteHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- JkCoyoteHandler.java	18 Dec 2002 09:15:06 -0000	1.32
  +++ JkCoyoteHandler.java	16 Jan 2003 22:17:37 -0000	1.33
  @@ -74,8 +74,14 @@
   import org.apache.tomcat.util.net.SSLSupport;
   
   import org.apache.coyote.*;
  +import org.apache.commons.modeler.Registry;
  +import javax.management.ObjectName;
  +import javax.management.MBeanServer;
   
   /** Plugs Jk2 into Coyote
  + *
  + * @jmx:notification-handler name="org.apache.jk.SEND_PACKET
  + * @jmx:notification-handler name="org.apache.coyote.ACTION_COMMIT
    */
   public class JkCoyoteHandler extends JkHandler implements
       ProtocolHandler,
  @@ -302,8 +308,7 @@
           if( contentLanguage != null ) {
               headers.setValue("Content-Language").setString(contentLanguage);
           }
  -
  -        int contentLength = res.getContentLength();
  +	int contentLength = res.getContentLength();
           if( contentLength >= 0 ) {
               headers.setValue("Content-Length").setInt(contentLength);
           }
  @@ -441,5 +446,14 @@
           logTime.debug("Time pre=" + t1 + "/ service=" + t2 + " " +
                         res.getContentLength() + " " + 
                         uri );
  +    }
  +
  +    public ObjectName preRegister(MBeanServer server,
  +                                  ObjectName name) throws Exception
  +    {
  +        // XXX Can we have multiple JkMain ?
  +        Registry.getRegistry().registerComponent(jkMain, name.getDomain(),
  +                "JkMain", "name=JkMain");
  +        return super.preRegister(server, name);
       }
   }
  
  
  
  1.33      +48 -8     jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java
  
  Index: JkMain.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- JkMain.java	13 Nov 2002 00:19:00 -0000	1.32
  +++ JkMain.java	16 Jan 2003 22:17:37 -0000	1.33
  @@ -60,15 +60,15 @@
   package org.apache.jk.server;
   
   import java.io.*;
  -import java.net.*;
   import java.util.*;
   
   import org.apache.jk.core.*;
  -import org.apache.jk.common.*;
   
  -import org.apache.tomcat.util.buf.*;
  -import org.apache.tomcat.util.http.*;
   import org.apache.tomcat.util.IntrospectionUtils;
  +import org.apache.commons.modeler.Registry;
  +import javax.management.ObjectName;
  +import javax.management.MBeanServer;
  +import javax.management.MBeanRegistration;
   
   /** Main class used to startup and configure jk. It manages the conf/jk2.properties file
    *  and is the target of JMX proxy.
  @@ -102,8 +102,9 @@
    *  to see configs based on registry, LDAP, db, etc. ( XML is not necesarily better )
    * 
    * @author Costin Manolache
  + * @deprecated Will be replaced with JMX operations
    */
  -public class JkMain
  +public class JkMain implements MBeanRegistration
   {
       WorkerEnv wEnv=new WorkerEnv();
       String propFile;
  @@ -113,7 +114,7 @@
       boolean modified=false;
       boolean started=false;
       boolean saveProperties=false;
  -    
  +
       public JkMain()
       {
           JkMain.jkMain=this;
  @@ -122,6 +123,7 @@
           modules.put("channelJni", "org.apache.jk.common.ChannelJni");
           modules.put("apr", "org.apache.jk.apr.AprImpl");
           modules.put("mx", "org.apache.jk.common.JkMX");
  +        modules.put("modeler", "org.apache.jk.common.JkModeler");
           modules.put("shm", "org.apache.jk.common.Shm");
           modules.put("request","org.apache.jk.common.HandlerRequest");
           modules.put("container","org.apache.jk.common.HandlerRequest");
  @@ -150,7 +152,7 @@
               ex.printStackTrace();
           }
       }
  -    
  +
       // -------------------- Setting --------------------
       
       /** Load a .properties file into and set the values
  @@ -223,7 +225,7 @@
       public String getJkHome() {
           return wEnv.getJkHome();
       }
  -    
  +
       String out;
       String err;
       File propsF;
  @@ -560,7 +562,15 @@
               log.error( "Can't create " + fullName, ex );
               return null;
           }
  +        if( this.domain != null ) {
  +            try {
  +                Registry.getRegistry().registerComponent(handler, this.domain, "JkHandler",
  +                        "type=JkHandler,name=" + fullName);
  +            } catch (Exception e) {
  +                log.error( "Error registering " + fullName, e );
  +            }
   
  +        }
           wEnv.addHandler( fullName, handler );
           return handler;
       }
  @@ -612,4 +622,34 @@
   
       static org.apache.commons.logging.Log log=
           org.apache.commons.logging.LogFactory.getLog( JkMain.class );
  +
  +    protected String domain;
  +    protected ObjectName oname;
  +    protected MBeanServer mserver;
  +
  +    public ObjectName getObjectName() {
  +        return oname;
  +    }
  +
  +    public String getDomain() {
  +        return domain;
  +    }
  +
  +    public ObjectName preRegister(MBeanServer server,
  +                                  ObjectName name) throws Exception {
  +        oname=name;
  +        mserver=server;
  +        domain=name.getDomain();
  +        return name;
  +    }
  +
  +    public void postRegister(Boolean registrationDone) {
  +    }
  +
  +    public void preDeregister() throws Exception {
  +    }
  +
  +    public void postDeregister() {
  +    }
  +
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>