You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2006/10/26 05:50:00 UTC

svn commit: r467854 - in /incubator/cxf/trunk/rt/core/src: main/java/org/apache/cxf/bus/spring/SpringBusImpl.java test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java

Author: ningjiang
Date: Wed Oct 25 20:49:59 2006
New Revision: 467854

URL: http://svn.apache.org/viewvc?view=rev&rev=467854
Log:
CXF-152 call the lifecycleManager.preShutdown() and postShutdown() in springBus.shutdown()

Modified:
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusImpl.java
    incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusImpl.java?view=diff&rev=467854&r1=467853&r2=467854
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusImpl.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusImpl.java Wed Oct 25 20:49:59 2006
@@ -24,18 +24,23 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.bus.BusState;
+import org.apache.cxf.buslifecycle.BusLifeCycleManager;
 import org.apache.cxf.interceptor.AbstractBasicInterceptorProvider;
 
 public class SpringBusImpl extends AbstractBasicInterceptorProvider implements Bus {
     
     private Map<Class, Object> extensions;
-    
+    private BusLifeCycleManager lifeCycleManager;
     private String id;
     private BusState state;      
     
     public SpringBusImpl() {
         extensions = new HashMap<Class, Object>();
         state = BusState.INITIAL;
+        lifeCycleManager = this.getExtension(BusLifeCycleManager.class);
+        if (null != lifeCycleManager) {
+            lifeCycleManager.initComplete();
+        }
     }
     
     public void setExtensions(Map<Class, Object> e) {
@@ -82,7 +87,17 @@
     }
 
     public void shutdown(boolean wait) {
-        // TODO
+        lifeCycleManager = this.getExtension(BusLifeCycleManager.class);
+        if (null != lifeCycleManager) {
+            lifeCycleManager.preShutdown();
+        }
+        synchronized (this) {
+            state = BusState.SHUTDOWN;
+            notifyAll();
+        }
+        if (null != lifeCycleManager) {
+            lifeCycleManager.postShutdown();
+        }
     }
     
     protected BusState getState() {

Modified: incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java?view=diff&rev=467854&r1=467853&r2=467854
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java Wed Oct 25 20:49:59 2006
@@ -26,6 +26,7 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
 import org.apache.cxf.binding.BindingFactoryManager;
+import org.apache.cxf.buslifecycle.BusLifeCycleListener;
 import org.apache.cxf.buslifecycle.BusLifeCycleManager;
 import org.apache.cxf.configuration.Configurer;
 import org.apache.cxf.endpoint.ServerRegistry;
@@ -38,6 +39,7 @@
 import org.apache.cxf.transport.DestinationFactoryManager;
 import org.apache.cxf.workqueue.WorkQueueManager;
 import org.apache.cxf.wsdl.WSDLManager;
+import org.easymock.EasyMock;
 
 public class SpringBusFactoryTest extends TestCase {
 
@@ -87,6 +89,22 @@
         interceptors = bus.getOutInterceptors();
         assertEquals("Unexpected number of interceptors", 1, interceptors.size());
         assertEquals("Unexpected interceptor", "out", interceptors.get(0).toString());
+        
+    }
+    
+    public void testForLifeCycle() {
+        BusLifeCycleListener bl = EasyMock.createMock(BusLifeCycleListener.class);
+        Bus bus = new SpringBusFactory().createBus();
+        BusLifeCycleManager lifeCycleManager = bus.getExtension(BusLifeCycleManager.class);
+        lifeCycleManager.registerLifeCycleListener(bl);
+        
+        bl.preShutdown();
+        EasyMock.expectLastCall();
+        bl.postShutdown();
+        EasyMock.expectLastCall();
+        EasyMock.replay(bl);
+        bus.shutdown(true);
+        EasyMock.verify(bl);
         
     }