You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by su...@apache.org on 2010/09/02 10:08:28 UTC

svn commit: r991845 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: ./ core/ core/axis2/ startup/quartz/

Author: supun
Date: Thu Sep  2 08:08:28 2010
New Revision: 991845

URL: http://svn.apache.org/viewvc?rev=991845&view=rev
Log:
putting the taskmanager in to the synapse environment

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/core/SynapseEnvironment.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.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=991845&r1=991844&r2=991845&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 Thu Sep  2 08:08:28 2010
@@ -85,6 +85,10 @@ public class Axis2SynapseController impl
     /** JMX Adapter */
     private JmxAdapter jmxAdapter;
 
+    private TaskDescriptionRepository taskDescriptionRepository;
+
+    private TaskScheduler taskScheduler;
+
     /**
      * {@inheritDoc}
      *
@@ -127,10 +131,24 @@ public class Axis2SynapseController impl
                         + " invalid, expected an Axis2 ConfigurationContext instance");
             }
         }
+
+        if (serverContextInformation != null) {
+            // we retrieve these properties to initialize the task scheduler in the envrionment
+            Object repo =
+                    serverContextInformation.getProperty(TaskConstants.TASK_DESCRIPTION_REPOSITORY);
+            Object taskScheduler = serverContextInformation.getProperty(TaskConstants.TASK_SCHEDULER);
+
+            if (repo != null && (repo instanceof TaskDescriptionRepository)) {
+                this.taskDescriptionRepository = (TaskDescriptionRepository) repo;
+            }
+
+            if (taskScheduler != null && (taskScheduler instanceof TaskScheduler)) {
+                this.taskScheduler = (TaskScheduler) taskScheduler;
+            }
+        }
         
         addDefaultBuildersAndFormatters(configurationContext.getAxisConfiguration());
         deployMediatorExtensions();
-        initTaskManager(serverContextInformation);
         initDataSourceHelper(serverContextInformation);
         initSharedSecretCallbackHandlerCache(serverContextInformation);
         initialized = true;
@@ -225,7 +243,7 @@ public class Axis2SynapseController impl
         transportHelper.pauseSenders();
 
         // put tasks on hold
-        SynapseTaskManager synapseTaskManager = SynapseTaskManager.getInstance();
+        SynapseTaskManager synapseTaskManager = synapseEnvironment.getTaskManager();
         if (synapseTaskManager.isInitialized()) {
             synapseTaskManager.pauseAll();
         }
@@ -245,7 +263,7 @@ public class Axis2SynapseController impl
         transportHelper.resumeSenders();
 
         // resume tasks
-        SynapseTaskManager synapseTaskManager = SynapseTaskManager.getInstance();
+        SynapseTaskManager synapseTaskManager = synapseEnvironment.getTaskManager();
         if (synapseTaskManager.isInitialized()) {
             synapseTaskManager.resumeAll();
         }
@@ -259,7 +277,7 @@ public class Axis2SynapseController impl
     public void stop() {
         try {
             // stop tasks
-            SynapseTaskManager synapseTaskManager = SynapseTaskManager.getInstance();
+            SynapseTaskManager synapseTaskManager = synapseEnvironment.getTaskManager();
             if (synapseTaskManager.isInitialized()) {
                 synapseTaskManager.cleanup();
             }
@@ -347,6 +365,8 @@ public class Axis2SynapseController impl
                     "' to the Axis2 configuration : " + e.getMessage(), e);
 
         }
+
+        synapseEnvironment.getTaskManager().init(taskDescriptionRepository, taskScheduler);
         synapseConfiguration.init(synapseEnvironment);
         synapseEnvironment.setInitialized(true);
         return synapseEnvironment;
@@ -466,7 +486,7 @@ public class Axis2SynapseController impl
             }
 
             int runningTasks = 0;
-            SynapseTaskManager synapseTaskManager = SynapseTaskManager.getInstance();
+            SynapseTaskManager synapseTaskManager = synapseEnvironment.getTaskManager();
             if (synapseTaskManager.isInitialized()) {
                 runningTasks = synapseTaskManager.getTaskScheduler().getRunningTaskCount();
                 if (runningTasks > 0) {
@@ -702,30 +722,7 @@ public class Axis2SynapseController impl
         if (handler instanceof SecretCallbackHandler) {
             cache.setSecretCallbackHandler((SecretCallbackHandler) handler);
         }
-    }
-
-    /**
-     *  Initialize Task Manager - with any existing  TaskDescriptionRepository and TaskScheduler
-     *  or without those
-     * @param serverContextInformation  ServerContextInformation instance
-     */
-    private void initTaskManager(ServerContextInformation serverContextInformation) {
-
-        SynapseTaskManager synapseTaskManager = SynapseTaskManager.getInstance();
-
-        Object repo = 
-            serverContextInformation.getProperty(TaskConstants.TASK_DESCRIPTION_REPOSITORY);
-        Object taskScheduler = serverContextInformation.getProperty(TaskConstants.TASK_SCHEDULER);
-
-        if (repo != null && !(repo instanceof TaskDescriptionRepository)) {
-            handleFatal("Invalid property value specified for TaskDescriptionRepository");
-        } else if (taskScheduler != null && !(taskScheduler instanceof TaskScheduler)) {
-            handleFatal("Invalid property value specified for TaskScheduler");
-        } else {
-            synapseTaskManager.init(
-                    (TaskDescriptionRepository) repo, (TaskScheduler) taskScheduler);
-        }
-    }
+    }    
 
     private void addDefaultBuildersAndFormatters(AxisConfiguration axisConf) {
         if (axisConf.getMessageBuilder("text/plain") == null) {

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java?rev=991845&r1=991844&r2=991845&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java Thu Sep  2 08:08:28 2010
@@ -21,6 +21,7 @@ package org.apache.synapse.core;
 
 import org.apache.axiom.util.blob.OverflowBlob;
 import org.apache.synapse.MessageContext;
+import org.apache.synapse.task.SynapseTaskManager;
 import org.apache.synapse.aspects.statistics.StatisticsCollector;
 import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.endpoints.EndpointDefinition;
@@ -123,4 +124,12 @@ public interface SynapseEnvironment {
      * @return configuration of the synapse
      */
     public SynapseConfiguration getSynapseConfiguration();
+
+    /**
+     * Retrive the {@link org.apache.synapse.task.SynapseTaskManager} from the
+     * <code>envioronment</code>.
+     *
+     * @return SynapseTaskManager of this synapse environment
+     */
+    public SynapseTaskManager getTaskManager();
 }

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?rev=991845&r1=991844&r2=991845&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java Thu Sep  2 08:08:28 2010
@@ -31,6 +31,7 @@ import org.apache.synapse.Mediator;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseConstants;
 import org.apache.synapse.SynapseException;
+import org.apache.synapse.task.SynapseTaskManager;
 import org.apache.synapse.aspects.statistics.StatisticsCollector;
 import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.core.SynapseEnvironment;
@@ -55,6 +56,7 @@ public class Axis2SynapseEnvironment imp
     private ConfigurationContext configContext;
     private ExecutorService executorService;
     private boolean initialized = false;
+    private SynapseTaskManager taskManager;
 
     /** The StatisticsCollector object */
     private StatisticsCollector statisticsCollector = new StatisticsCollector();
@@ -87,6 +89,8 @@ public class Axis2SynapseEnvironment imp
                 SynapseThreadPool.SYNAPSE_THREAD_GROUP),
             synCfg.getProperty(SynapseThreadPool.SYN_THREAD_IDPREFIX,
                 SynapseThreadPool.SYNAPSE_THREAD_ID_PREFIX));
+
+        taskManager = new SynapseTaskManager();                
     }
 
     public Axis2SynapseEnvironment(ConfigurationContext cfgCtx,
@@ -337,6 +341,16 @@ public class Axis2SynapseEnvironment imp
     }
 
     /**
+     * Retrive the {@link org.apache.synapse.task.SynapseTaskManager} from the
+     * <code>envioronment</code>.
+     *
+     * @return SynapseTaskManager of this synapse environment
+     */
+    public SynapseTaskManager getTaskManager() {
+        return this.taskManager;
+    }
+
+    /**
      * Retrieves the {@link ConfigurationContext} associated with this <code>axis2SynapseEnv</code>
      *
      * @return configContext of the axis2 synapse environment

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=991845&r1=991844&r2=991845&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 Thu Sep  2 08:08:28 2010
@@ -24,7 +24,6 @@ import org.apache.commons.logging.LogFac
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.config.SynapseConfigUtils;
 import org.apache.synapse.core.SynapseEnvironment;
-import org.apache.synapse.mediators.AbstractMediator;
 import org.apache.synapse.startup.AbstractStartup;
 import org.apache.synapse.task.*;
 
@@ -48,6 +47,8 @@ public class SimpleQuartz extends Abstra
 
     private TaskDescription taskDescription;
 
+    private SynapseTaskManager taskManager;
+
     public QName getTagQName() {
         return SimpleQuartzFactory.TASK;
     }
@@ -61,16 +62,15 @@ public class SimpleQuartz extends Abstra
             return;
         }
 
-        SynapseTaskManager synapseTaskManager = SynapseTaskManager.getInstance();
-        if (synapseTaskManager.isInitialized()) {
+        if (taskManager.isInitialized()) {
 
-            TaskScheduler taskScheduler = synapseTaskManager.getTaskScheduler();
+            TaskScheduler taskScheduler = taskManager.getTaskScheduler();
 
             if (taskScheduler != null && taskScheduler.isInitialized()) {
                 taskScheduler.deleteTask(taskDescription.getName(), taskDescription.getGroup());
             }
 
-            TaskDescriptionRepository repository = synapseTaskManager.getTaskDescriptionRepository();
+            TaskDescriptionRepository repository = taskManager.getTaskDescriptionRepository();
             if (repository != null) {
                 repository.removeTaskDescription(taskDescription.getName());
             }
@@ -83,17 +83,19 @@ public class SimpleQuartz extends Abstra
             handleException("Error while initializing the startup. TaskDescription is null.");
         }
 
-        SynapseTaskManager synapseTaskManager = SynapseTaskManager.getInstance();
-        if (!synapseTaskManager.isInitialized()) {
+        taskManager = synapseEnvironment.getTaskManager();
+
+        if (!taskManager.isInitialized()) {
             log.warn("SynapseTaskManager is not properly initialized. Initializing now with " +
                     "default parameters.");
-            synapseTaskManager.init(null, null);
+            taskManager.init(null, null);
         }
 
-        TaskDescriptionRepository repository = synapseTaskManager.getTaskDescriptionRepository();
+        TaskDescriptionRepository repository = taskManager.getTaskDescriptionRepository();
 
         if (repository == null) {
             handleException("Task Description Repository cannot be found");
+            return;
         }
 
         repository.addTaskDescription(taskDescription);
@@ -134,7 +136,7 @@ public class SimpleQuartz extends Abstra
 
         try {
 
-            TaskScheduler taskScheduler = synapseTaskManager.getTaskScheduler();
+            TaskScheduler taskScheduler = taskManager.getTaskScheduler();
             if (taskScheduler != null) {
                 if (!taskScheduler.isInitialized()) {
                     taskScheduler.init(synapseEnvironment.getSynapseConfiguration().getProperties());

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java?rev=991845&r1=991844&r2=991845&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java Thu Sep  2 08:08:28 2010
@@ -30,8 +30,6 @@ import org.apache.synapse.Startup;
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.task.TaskDescription;
 import org.apache.synapse.task.TaskDescriptionFactory;
-import org.apache.synapse.task.TaskDescriptionRepositoryFactory;
-import org.apache.synapse.task.TaskDescriptionRepository;
 
 /**
  * &lt;task class="org.my.synapse.Task" name="string"&gt;
@@ -61,8 +59,9 @@ public class SimpleQuartzFactory impleme
             TaskDescription taskDescription =
                     TaskDescriptionFactory.createTaskDescription(el,
                             XMLConfigConstants.SYNAPSE_OMNAMESPACE);
-            if(taskDescription == null){
-                handleException("Invalid task - Task description can not be created  form :"+el);
+            if (taskDescription == null) {
+                handleException("Invalid task - Task description can not be created  from :" + el);
+                return null;
             }          
             simpleQuartz.setName(taskDescription.getName());
             simpleQuartz.setTaskDescription(taskDescription);

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java?rev=991845&r1=991844&r2=991845&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java Thu Sep  2 08:08:28 2010
@@ -25,8 +25,6 @@ import org.apache.synapse.SynapseExcepti
 import org.apache.synapse.SynapseConstants;
 import org.apache.synapse.task.TaskDescription;
 import org.apache.synapse.task.TaskDescriptionSerializer;
-import org.apache.synapse.task.TaskDescriptionRepository;
-import org.apache.synapse.task.TaskDescriptionRepositoryFactory;
 import org.apache.synapse.config.xml.StartupSerializer;
 
 public class SimpleQuartzSerializer implements StartupSerializer {