costin      2003/03/25 09:50:21

  Modified:    coyote/src/java/org/apache/coyote/tomcat5
                        MapperListener.java
  Log:
  Remove unused imports.
  
  Deal with Hosts. Use JMX for hosts, remove some deps.
  
  Use a domain
  
  Revision  Changes    Path
  1.9       +73 -48    
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java
  
  Index: MapperListener.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- MapperListener.java       17 Mar 2003 07:46:24 -0000      1.8
  +++ MapperListener.java       25 Mar 2003 17:50:21 -0000      1.9
  @@ -70,41 +70,32 @@
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +
   import org.apache.commons.modeler.Registry;
   
   import org.apache.tomcat.util.http.mapper.Mapper;
   
  -import org.apache.catalina.Container;
  -import org.apache.catalina.Context;
  -import org.apache.catalina.Engine;
  -import org.apache.catalina.Host;
  -import org.apache.catalina.ServerFactory;
  -import org.apache.catalina.Wrapper;
  -import org.apache.catalina.Server;
  -import org.apache.catalina.util.StringManager;
  +import org.apache.tomcat.util.res.StringManager;
   
   
   /**
    * Mapper listener.
    *
    * @author Remy Maucherat
  + * @author Costin Manolache
    */
   public class MapperListener
  -    implements NotificationListener {
  -
  -
  +    implements NotificationListener 
  + {
       private static Log log = LogFactory.getLog(MapperListener.class);
   
   
       // ----------------------------------------------------- Instance Variables
  -
  -
       /**
        * Associated mapper.
        */
       protected Mapper mapper = null;
   
  -
       /**
        * MBean server.
        */
  @@ -117,6 +108,8 @@
       private StringManager sm =
           StringManager.getManager(Constants.Package);
   
  +    // It should be null - and fail if not set
  +    private String domain="*";
   
       // ----------------------------------------------------------- Constructors
   
  @@ -131,6 +124,13 @@
   
       // --------------------------------------------------------- Public Methods
   
  +    public String getDomain() {
  +        return domain;
  +    }
  +
  +    public void setDomain(String domain) {
  +        this.domain = domain;
  +    }
   
       /**
        * Initialize associated mapper.
  @@ -142,20 +142,31 @@
               mBeanServer = Registry.getServer();
   
               // FIXME
  -            registerHost(null);
  +            registerHosts(null);
   
  -            // Query contexts
  -            String onStr = "*:j2eeType=WebModule,*";
  +            // Query hosts
  +            String onStr = domain + ":type=Host,*";
               ObjectName objectName = new ObjectName(onStr);
               Set set = mBeanServer.queryMBeans(objectName, null);
               Iterator iterator = set.iterator();
               while (iterator.hasNext()) {
                   ObjectInstance oi = (ObjectInstance) iterator.next();
  +                registerHost(oi.getObjectName());
  +            }
  +
  +
  +            // Query contexts
  +            onStr = domain + ":j2eeType=WebModule,*";
  +            objectName = new ObjectName(onStr);
  +            set = mBeanServer.queryMBeans(objectName, null);
  +            iterator = set.iterator();
  +            while (iterator.hasNext()) {
  +                ObjectInstance oi = (ObjectInstance) iterator.next();
                   registerContext(oi.getObjectName());
               }
   
               // Query wrappers
  -            onStr = "*:j2eeType=Servlet,*";
  +            onStr = domain + ":j2eeType=Servlet,*";
               objectName = new ObjectName(onStr);
               set = mBeanServer.queryMBeans(objectName, null);
               iterator = set.iterator();
  @@ -184,8 +195,26 @@
           if (notification instanceof MBeanServerNotification) {
               ObjectName objectName = 
                   ((MBeanServerNotification) notification).getMBeanName();
  +            if( ! "*".equals( domain ) &&
  +                    ! domain.equals( objectName.getDomain() )) {
  +                // A different domain - not ours
  +                String j2eeType = objectName.getKeyProperty("j2eeType");
  +                if( j2eeType!=null )
  +                    log.debug("MBean in different domain " + objectName);
  +                return;
  +            }
  +            log.debug( "Handle " + objectName );    
               if (notification.getType().equals
                   (MBeanServerNotification.REGISTRATION_NOTIFICATION)) {
  +                String type=objectName.getKeyProperty("type");
  +                if( "Host".equals( type )) {
  +                    try {
  +                        registerHost(objectName);
  +                    } catch (Exception e) {
  +                        e.printStackTrace();  
  +                    }
  +                }
  +                
                   String j2eeType = objectName.getKeyProperty("j2eeType");
                   if (j2eeType != null) {
                       if (j2eeType.equals("WebModule")) {
  @@ -204,6 +233,15 @@
                   }
               } else if (notification.getType().equals
                          (MBeanServerNotification.UNREGISTRATION_NOTIFICATION)) {
  +                String type=objectName.getKeyProperty("type");
  +                if( "Host".equals( type )) {
  +                    try {
  +                        unregisterHost(objectName);
  +                    } catch (Exception e) {
  +                        e.printStackTrace();  
  +                    }
  +                }
  +                               
                   String j2eeType = objectName.getKeyProperty("j2eeType");
                   if (j2eeType != null) {
                       if (j2eeType.equals("WebModule")) {
  @@ -222,6 +260,17 @@
   
       // ------------------------------------------------------ Protected Methods
   
  +    private void registerHosts(ObjectName objectName)
  +        throws Exception
  +    {
  +        ObjectName engineName=new ObjectName(domain + ":type=Engine");
  +        //if (container instanceof Engine) {
  +        String defaultHost = (String)mBeanServer.getAttribute(engineName, 
"defaultHost");
  +        // This should probablt be called later 
  +        if( defaultHost != null ) {
  +            mapper.setDefaultHostName(defaultHost);
  +        }
  +    }
   
       /**
        * Register host (FIXME).
  @@ -229,34 +278,11 @@
       private void registerHost(ObjectName objectName)
           throws Exception
       {
  -        Container container =null;
  -
  -        Server server=ServerFactory.getServer();
  -        if( server!= null ) {
  -            // a Server is not required
  -            container=server.findServices()[0].getContainer();
  -        } else {
  -            String domain="Catalina";
  -            ObjectName engineName=new ObjectName(domain + ":type=Engine");
  -            container=(Container)mBeanServer.getAttribute(engineName, 
"managedResource");
  -        }
  -        Container[] hosts = null;
  -        String defaultHost = null;
  -
  -        if (container instanceof Engine) {
  -            defaultHost = ((Engine) container).getDefaultHost();
  -            hosts = container.findChildren();
  -        } else if (container instanceof Host) {
  -            defaultHost = container.getName();
  -            hosts = new Container[1];
  -            hosts[0] = container;
  -        }
  -
  -        mapper.setDefaultHostName(defaultHost);
  -        for (int i = 0; i < hosts.length; i++) {
  -            mapper.addHost(hosts[i].getName(), hosts[i]);
  +        String name=objectName.getKeyProperty("name");
  +        log.info("Register host " + name);
  +        if( name != null ) {        
  +            mapper.addHost(name, objectName);
           }
  -
       }
   
   
  @@ -265,9 +291,8 @@
        */
       private void unregisterHost(ObjectName objectName)
           throws Exception {
  -
  -
  -
  +        String name=objectName.getKeyProperty("name");
  +        mapper.removeHost(name);
       }
   
   
  
  
  

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

Reply via email to