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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]