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;
/**
* <task class="org.my.synapse.Task" name="string">
@@ -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 {