axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ntha...@apache.org
Subject svn commit: r818290 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2: context/ConfigurationContext.java engine/ListenerManager.java
Date Wed, 23 Sep 2009 22:28:27 GMT
Author: nthaker
Date: Wed Sep 23 22:28:27 2009
New Revision: 818290

URL: http://svn.apache.org/viewvc?rev=818290&view=rev
Log:
AXIS2-4507

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/ListenerManager.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java?rev=818290&r1=818289&r2=818290&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
(original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
Wed Sep 23 22:28:27 2009
@@ -27,14 +27,17 @@
 import org.apache.axis2.clustering.ClusteringConstants;
 import org.apache.axis2.clustering.management.NodeManager;
 import org.apache.axis2.clustering.state.StateManager;
+import org.apache.axis2.description.AxisModule;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.AxisServiceGroup;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.DependencyManager;
 import org.apache.axis2.engine.ListenerManager;
+import org.apache.axis2.engine.ServiceLifeCycle;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.java.security.AccessController;
+import org.apache.axis2.modules.Module;
 import org.apache.axis2.util.JavaUtils;
 import org.apache.axis2.util.threadpool.ThreadFactory;
 import org.apache.axis2.util.threadpool.ThreadPool;
@@ -85,7 +88,8 @@
 
     private String cachedServicePath = null;
     protected List<ContextListener> contextListeners;
-
+    private boolean stopped = false;
+    
     /**
      * Constructor
      *
@@ -727,7 +731,43 @@
             serviceGroupContextMap.clear();
         }
     }
-
+    /**
+     * Called during shutdown to clean up all Contexts
+     */
+    public void shutdownModulesAndServices() throws AxisFault{
+        if(stopped){
+            return;
+        }
+        /*Shut down the modules*/
+        if(log.isDebugEnabled()){
+            log.debug("Invoke modules shutdown.");
+        }
+        HashMap modules = axisConfiguration.getModules();
+        if (modules != null) {
+            Iterator moduleitr = modules.values().iterator();
+            while (moduleitr.hasNext()) {
+                AxisModule axisModule = (AxisModule) moduleitr.next();
+                Module module = axisModule.getModule();
+                if (module != null) {
+                    module.shutdown(this);
+                }
+            }
+        }
+        cleanupContexts();
+        /*Shut down the services*/
+        if(log.isDebugEnabled()){
+            log.debug("Invoke services shutdown.");
+        }
+        for (Iterator services = axisConfiguration.getServices().values().iterator();
+        services.hasNext();) {
+            AxisService axisService = (AxisService) services.next();
+            ServiceLifeCycle serviceLifeCycle = axisService.getServiceLifeCycle();
+            if (serviceLifeCycle != null) {
+                serviceLifeCycle.shutDown(this, axisService);
+            }
+        }
+        stopped = true;
+    }
     /**
      * Invoked during shutdown to stop the ListenerManager and perform configuration cleanup
      *
@@ -736,6 +776,14 @@
     public void terminate() throws AxisFault {
         if (listenerManager != null) {
             listenerManager.stop();
+        }else{
+            if(log.isDebugEnabled()){
+                log.debug("Start Invoke modules and services shutdown.");
+            }
+            shutdownModulesAndServices();
+            if(log.isDebugEnabled()){
+                log.debug("End Invoke modules and services shutdown.");
+            }
         }
         axisConfiguration.cleanup();
         cleanupTemp();

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/ListenerManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/ListenerManager.java?rev=818290&r1=818289&r2=818290&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/ListenerManager.java
(original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/ListenerManager.java
Wed Sep 23 22:28:27 2009
@@ -184,6 +184,9 @@
         }
 
         // Stop the transport senders
+        if(log.isDebugEnabled()){
+            log.debug("Start invoke transport sender shutdown.");
+        }
         HashMap<String, TransportOutDescription> outTransports =
                 configctx.getAxisConfiguration().getTransportsOut();
         if (outTransports.size() > 0) {
@@ -196,30 +199,17 @@
                 }
             }
         }
-
-        // Shut down the services
-        for (Object o : configctx.getAxisConfiguration().getServices().values()) {
-            AxisService axisService = (AxisService)o;
-            ServiceLifeCycle serviceLifeCycle = axisService.getServiceLifeCycle();
-            if (serviceLifeCycle != null) {
-                serviceLifeCycle.shutDown(configctx, axisService);
-            }
+        if(log.isDebugEnabled()){
+            log.debug("End Invoke transport sender shutdown.");
         }
-        
-        // Shut down the modules
-        HashMap<String, AxisModule> modules = configctx.getAxisConfiguration().getModules();
-        if (modules != null) {
-            Iterator<AxisModule> moduleitr = modules.values().iterator();
-            while (moduleitr.hasNext()) {
-                AxisModule axisModule = moduleitr.next();
-                Module module = axisModule.getModule();
-                if (module != null) {
-                    module.shutdown(configctx);
-                }
-            }
+        /*Shutdown modules and Services */
+        if(log.isDebugEnabled()){
+            log.debug("Start Invoke modules and services shutdown.");
+        }
+        configctx.shutdownModulesAndServices();
+        if(log.isDebugEnabled()){
+            log.debug("End Invoke modules and services shutdown.");
         }
-        configctx.cleanupContexts();
-
         stopped = true;
     }
 



Mime
View raw message