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/03/26 20:20:30 UTC

cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core ContainerBase.java StandardPipeline.java

costin      2003/03/26 11:20:30

  Modified:    catalina/src/share/org/apache/catalina/core
                        ContainerBase.java StandardPipeline.java
  Log:
  Moved valve registration/unregistration to StandardPipeline, which seems a better
  place ( since the pipeline manages the valves ).
  
  I don't know why ContainerBase implements Pipeline instead of just delegating to one.
  
  Revision  Changes    Path
  1.16      +0 -44     jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ContainerBase.java
  
  Index: ContainerBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ContainerBase.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ContainerBase.java	24 Mar 2003 09:18:26 -0000	1.15
  +++ ContainerBase.java	26 Mar 2003 19:20:29 -0000	1.16
  @@ -1197,26 +1197,6 @@
                   }
               }
           }
  -        // If we are registered and the valve is not - create a default name
  -        Valve valves[]=getValves();
  -        for( int i=0; i<valves.length; i++ ) {
  -            Valve valve=valves[i];
  -            //log.info("Valve: " + this + " " + valve + " " + domain  );
  -            if( valve instanceof ValveBase &&
  -                    ((ValveBase)valve).getObjectName()==null ) {
  -                try {
  -                    ObjectName vname=((ValveBase)valve).createObjectName(getDomain(),
  -                            this.getObjectName());
  -                    if( vname != null ) {
  -                        ((ValveBase)valve).setObjectName(vname);
  -                        Registry.getRegistry().registerComponent(valve, vname, valve.getClass().getName());
  -                        ((ValveBase)valve).setController(oname);
  -                    }
  -                } catch( Throwable t ) {
  -                    log.info( "Can't register valve " + valve , t );
  -                }
  -            }
  -        }
           
           // Notify our interested LifecycleListeners
           lifecycle.fireLifecycleEvent(BEFORE_START_EVENT, null);
  @@ -1342,16 +1322,6 @@
               }
           }
   
  -        // 
  -        Valve valves[]=getValves();
  -        for( int i=0; i<valves.length; i++ ) {
  -            Valve valve=valves[i];
  -            if( valve instanceof ValveBase &&
  -                    ((ValveBase)valve).getObjectName()!=null ) {
  -                Registry.getRegistry().unregisterComponent(((ValveBase)valve).getObjectName()); 
  -            }
  -        }
  -
           // Notify our interested LifecycleListeners
           lifecycle.fireLifecycleEvent(AFTER_STOP_EVENT, null);
   
  @@ -1468,21 +1438,7 @@
       public synchronized void removeValve(Valve valve) {
   
           pipeline.removeValve(valve);
  -        if( valve instanceof ValveBase ) {
  -            try {
  -                ValveBase vb=(ValveBase)valve;
  -                if( vb.getController()!=null &&
  -                        vb.getController() == oname ) {
  -                    
  -                    ObjectName vname=vb.getObjectName();
  -                    Registry.getRegistry().getMBeanServer().unregisterMBean(vname);
  -                }
  -            } catch( Throwable t ) {
  -                log.info( "Can't unregister valve " + valve , t );
  -            }
  -        }
           fireContainerEvent(REMOVE_VALVE_EVENT, valve);
  -
       }
   
   
  
  
  
  1.5       +47 -5     jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardPipeline.java
  
  Index: StandardPipeline.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardPipeline.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StandardPipeline.java	20 Mar 2003 18:28:28 -0000	1.4
  +++ StandardPipeline.java	26 Mar 2003 19:20:29 -0000	1.5
  @@ -286,9 +286,13 @@
           for (int i = 0; i < valves.length; i++) {
               if (valves[i] instanceof Lifecycle)
                   ((Lifecycle) valves[i]).start();
  +            registerValve(valves[i]);
           }
           if ((basic != null) && (basic instanceof Lifecycle))
               ((Lifecycle) basic).start();
  +        
  +        if( basic!=null )
  +            registerValve(basic);
   
           // Notify our interested LifecycleListeners
           lifecycle.fireLifecycleEvent(START_EVENT, null);
  @@ -320,18 +324,56 @@
           started = false;
   
           // Stop the Valves in our pipeline (including the basic), if any
  -        if ((basic != null) && (basic instanceof Lifecycle))
  +        if ((basic != null) && (basic instanceof Lifecycle)) 
               ((Lifecycle) basic).stop();
  +        if( basic!=null ) {
  +            unregisterValve(basic);
  +        }
           for (int i = 0; i < valves.length; i++) {
               if (valves[i] instanceof Lifecycle)
                   ((Lifecycle) valves[i]).stop();
  +            unregisterValve(valves[i]);
  +        
           }
   
           // Notify our interested LifecycleListeners
           lifecycle.fireLifecycleEvent(AFTER_STOP_EVENT, null);
  -
       }
   
  +    private void registerValve(Valve valve) {
  +        if( valve instanceof ValveBase &&
  +                ((ValveBase)valve).getObjectName()==null ) {
  +            try {
  +                ObjectName vname=((ValveBase)valve).createObjectName(
  +                        ((ContainerBase)container).getDomain(),
  +                        ((ContainerBase)container).getObjectName());
  +                if( vname != null ) {
  +                    ((ValveBase)valve).setObjectName(vname);
  +                    Registry.getRegistry().registerComponent(valve, vname, valve.getClass().getName());
  +                    ((ValveBase)valve).setController(((ContainerBase)container).getObjectName());
  +                }
  +            } catch( Throwable t ) {
  +                log.info( "Can't register valve " + valve , t );
  +            }
  +        }
  +    }
  +    
  +    private void unregisterValve(Valve valve) {
  +        if( valve instanceof ValveBase ) {
  +            try {
  +                ValveBase vb=(ValveBase)valve;
  +                if( vb.getController()!=null &&
  +                        vb.getController() == 
  +                        ((ContainerBase)container).getObjectName() ) {
  +                    
  +                    ObjectName vname=vb.getObjectName();
  +                    Registry.getRegistry().getMBeanServer().unregisterMBean(vname);
  +                }
  +            } catch( Throwable t ) {
  +                log.info( "Can't unregister valve " + valve , t );
  +            }
  +        }
  +    }    
   
       // ------------------------------------------------------- Pipeline Methods
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org