Author: hiranya
Date: Tue Dec 22 05:01:40 2009
New Revision: 893069

URL: http://svn.apache.org/viewvc?rev=893069&view=rev
Log:
Made SynapseTaskManager a singleton class

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java
    
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/SynapseTaskManager.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java?rev=893069&r1=893068&r2=893069&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
 Tue Dec 22 05:01:40 2009
@@ -69,9 +69,6 @@
     /** The Axis2 listener Manager */
     private ListenerManager listenerManager;
 
-    /** The Synapse task manager which contains the task scheduler and the 
task repository */
-    private SynapseTaskManager synapseTaskManager;
-
     /** The Axis2 configuration context used by Synapse */
     private ConfigurationContext configurationContext;
 
@@ -230,7 +227,8 @@
         transportHelper.pauseSenders();
 
         // put tasks on hold
-        if (synapseTaskManager != null && synapseTaskManager.isInitialized()) {
+        SynapseTaskManager synapseTaskManager = 
SynapseTaskManager.getInstance();
+        if (synapseTaskManager.isInitialized()) {
             synapseTaskManager.pauseAll();
         }
         
@@ -249,7 +247,8 @@
         transportHelper.resumeSenders();
 
         // resume tasks
-        if (synapseTaskManager != null && synapseTaskManager.isInitialized()) {
+        SynapseTaskManager synapseTaskManager = 
SynapseTaskManager.getInstance();
+        if (synapseTaskManager.isInitialized()) {
             synapseTaskManager.resumeAll();
         }
 
@@ -262,7 +261,8 @@
     public void stop() {
         try {
             // stop tasks
-            if (synapseTaskManager != null && 
synapseTaskManager.isInitialized()) {
+            SynapseTaskManager synapseTaskManager = 
SynapseTaskManager.getInstance();
+            if (synapseTaskManager.isInitialized()) {
                 synapseTaskManager.cleanup();
             }
 
@@ -364,7 +364,7 @@
                 undeployProxyServices();
                 undeployEventSources();
             } catch (AxisFault e) {
-                handleFatal("t", e);
+                handleFatal("Error while shutting down the Synapse 
environment", e);
             }
             synapseEnvironment.setInitialized(false);
         }
@@ -403,10 +403,6 @@
         
         addServerIPAndHostEnrties();
 
-        if (synapseTaskManager != null && synapseTaskManager.isInitialized()) {
-            synapseConfiguration.setTaskManager(synapseTaskManager);
-        }
-
         return synapseConfiguration;
     }
 
@@ -460,7 +456,8 @@
             }
 
             int runningTasks = 0;
-            if (synapseTaskManager != null && 
synapseTaskManager.isInitialized()) {
+            SynapseTaskManager synapseTaskManager = 
SynapseTaskManager.getInstance();
+            if (synapseTaskManager.isInitialized()) {
                 runningTasks = 
synapseTaskManager.getTaskScheduler().getRunningTaskCount();
                 if (runningTasks > 0) {
                     log.info("Waiting for : " + runningTasks + " tasks to 
complete..");
@@ -689,7 +686,7 @@
      */
     private void initTaskManager(ServerContextInformation 
serverContextInformation) {
 
-        synapseTaskManager = new SynapseTaskManager();
+        SynapseTaskManager synapseTaskManager = 
SynapseTaskManager.getInstance();
 
         Object repo = 
             
serverContextInformation.getProperty(TaskConstants.TASK_DESCRIPTION_REPOSITORY);

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=893069&r1=893068&r2=893069&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
 Tue Dec 22 05:01:40 2009
@@ -26,7 +26,6 @@
 import org.apache.synapse.*;
 import org.apache.synapse.eventing.SynapseEventSource;
 import org.apache.synapse.commons.datasource.DataSourceHelper;
-import org.apache.synapse.task.*;
 import org.apache.synapse.config.xml.MediatorFactoryFinder;
 import org.apache.synapse.config.xml.endpoints.XMLToEndpointMapper;
 import org.apache.synapse.core.SynapseEnvironment;
@@ -117,12 +116,6 @@
     private List<SynapseObserver> observers = new ArrayList<SynapseObserver>();
 
     /**
-     * The singleton task manager instance which contains the task description 
repository and the
-     * scheduler
-     */
-    private SynapseTaskManager taskManager;
-
-    /**
      * Add a named sequence into the local registry. If a sequence already 
exists by the specified
      * key a runtime exception is thrown.
      *
@@ -965,13 +958,6 @@
         for (ManagedLifecycle stp : startups.values()) {
             stp.destroy();
         }
-
-        if (taskManager != null && taskManager.isInitialized()) {
-            TaskScheduler taskScheduler = taskManager.getTaskScheduler();
-            if (taskScheduler != null && taskScheduler.isInitialized()) {
-                taskScheduler.shutDown();
-            }
-        }
         
         // clear session information used for SA load balancing
         try {
@@ -1103,14 +1089,6 @@
         return Collections.unmodifiableList(observers);
     }
 
-    public SynapseTaskManager getTaskManager() {
-        return taskManager;
-    }
-
-    public void setTaskManager(SynapseTaskManager taskManager) {
-        this.taskManager = taskManager;
-    }
-
     private void assertAlreadyExists(String key, String type) {
 
         if (key == null || "".equals(key)) {

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java?rev=893069&r1=893068&r2=893069&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java
 Tue Dec 22 05:01:40 2009
@@ -23,7 +23,6 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.config.SynapseConfigUtils;
-import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.core.SynapseEnvironment;
 import org.apache.synapse.startup.AbstractStartup;
 import org.apache.synapse.task.*;
@@ -48,8 +47,6 @@
 
     private TaskDescription taskDescription;
 
-    private SynapseTaskManager synapseTaskManager;
-
     public QName getTagQName() {
         return SimpleQuartzFactory.TASK;
     }
@@ -63,6 +60,7 @@
             return;
         }
 
+        SynapseTaskManager synapseTaskManager = 
SynapseTaskManager.getInstance();
         if (synapseTaskManager.isInitialized()) {
 
             TaskScheduler taskScheduler = 
synapseTaskManager.getTaskScheduler();
@@ -84,13 +82,8 @@
             handleException("Error while initializing the startup. 
TaskDescription is null.");
         }
 
-        SynapseConfiguration synapseConfiguration = 
synapseEnvironment.getSynapseConfiguration();
-        synapseTaskManager = synapseConfiguration.getTaskManager();
-        if (synapseTaskManager == null) {
-            log.error("SynapseTaskManager is not available in the 
SynapseConfiguration. Tasks " +
-                    "cannot be initialized.");
-            return;
-        } else if (!synapseTaskManager.isInitialized()) {
+        SynapseTaskManager synapseTaskManager = 
SynapseTaskManager.getInstance();
+        if (!synapseTaskManager.isInitialized()) {
             log.warn("SynapseTaskManager is not properly initialized. 
Initializing now with " +
                     "default parameters.");
             synapseTaskManager.init(null, null);
@@ -143,7 +136,7 @@
             TaskScheduler taskScheduler = 
synapseTaskManager.getTaskScheduler();
             if (taskScheduler != null) {
                 if (!taskScheduler.isInitialized()) {
-                    taskScheduler.init(synapseConfiguration.getProperties());
+                    
taskScheduler.init(synapseEnvironment.getSynapseConfiguration().getProperties());
                 }
                 taskScheduler.scheduleTask(taskDescription, map, 
SimpleQuartzJob.class);
             } else {

Modified: 
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/SynapseTaskManager.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/SynapseTaskManager.java?rev=893069&r1=893068&r2=893069&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/SynapseTaskManager.java
 (original)
+++ 
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/SynapseTaskManager.java
 Tue Dec 22 05:01:40 2009
@@ -35,7 +35,13 @@
     private TaskScheduler taskScheduler;
     private boolean initialized = false;
 
-    public SynapseTaskManager() {
+    private static final SynapseTaskManager INSTANCE = new 
SynapseTaskManager();
+
+    public static SynapseTaskManager getInstance() {
+        return INSTANCE;
+    }
+
+    private SynapseTaskManager() {
         if (log.isDebugEnabled()) {
             log.debug("Created the SynapseTaskManager singleton instance");
         }
@@ -107,8 +113,10 @@
 
     public void cleanup() {
         assertInitialized();
+        log.info("Shutting down the task manager");
         taskDescriptionRepository.clear();
         taskScheduler.shutDown();
+        initialized = false;
     }
 
     public void pauseAll() {


Reply via email to