You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by in...@apache.org on 2009/04/02 10:27:55 UTC
svn commit: r761201 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse:
Axis2SynapseController.java startup/quartz/SimpleQuartz.java
Author: indika
Date: Thu Apr 2 08:27:55 2009
New Revision: 761201
URL: http://svn.apache.org/viewvc?rev=761201&view=rev
Log:
Add capability to get task description repository and task scheduler if those have been already created and pass with context information when starting synapse
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/startup/quartz/SimpleQuartz.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=761201&r1=761200&r2=761201&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 Apr 2 08:27:55 2009
@@ -41,6 +41,7 @@
import org.apache.synapse.core.axis2.ProxyService;
import org.apache.synapse.core.axis2.SynapseMessageReceiver;
import org.apache.synapse.eventing.SynapseEventSource;
+import org.apache.synapse.task.*;
import java.util.*;
@@ -102,7 +103,7 @@
" invalid, expected an Axis2 ConfigurationContext instance");
}
}
- initDefault();
+ initDefault(contextInformation);
initialized = true;
}
@@ -112,6 +113,7 @@
public void destroy() {
try {
+ cleanupDefault();
// stop all services
if (information.isCreateNewInstance()) { // only if we have created the server
@@ -340,10 +342,11 @@
setupEventSources();
}
- private void initDefault() {
+ private void initDefault(ServerContextInformation contextInformation) {
addDefaultBuildersAndFormatters(configurationContext.getAxisConfiguration());
loadMediatorExtensions();
setupDataSources();
+ setupTaskHelper(contextInformation);
}
private void loadMediatorExtensions() {
@@ -365,6 +368,47 @@
configurationContext.getAxisConfiguration(), synapseProperties);
}
+ /**
+ * Intialize TaskHelper - with any existing TaskDescriptionRepository and TaskScheduler
+ * or without those
+ * @param contextInformation ServerContextInformation instance
+ */
+ private void setupTaskHelper(ServerContextInformation contextInformation) {
+
+ TaskHelper taskHelper = TaskHelper.getInstance();
+ if (taskHelper.isInitialized()) {
+ if (log.isDebugEnabled()) {
+ log.debug("TaskHelper has been already initialized.");
+ }
+ return;
+ }
+
+ Object repo = contextInformation.getProperty(TaskConstants.TASK_DESCRIPTION_REPOSITORY);
+ Object taskScheduler = contextInformation.getProperty(TaskConstants.TASK_SCHEDULER);
+
+ if (repo instanceof TaskDescriptionRepository && taskScheduler instanceof TaskScheduler) {
+ taskHelper.init((TaskDescriptionRepository) repo, (TaskScheduler) taskScheduler);
+ } else {
+
+ if (repo == null && taskScheduler == null) {
+ taskHelper.init(
+ TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
+ TaskConstants.TASK_DESCRIPTION_REPOSITORY),
+ TaskSchedulerFactory.getTaskScheduler(TaskConstants.TASK_SCHEDULER));
+ } else {
+ handleFatal("Invalid property values for " +
+ "TaskDescriptionRepository or / and TaskScheduler ");
+ }
+ }
+ }
+
+ private void cleanupDefault() {
+ TaskHelper taskHelper = TaskHelper.getInstance();
+ if (taskHelper.isInitialized()) {
+ taskHelper.cleanup();
+ }
+ }
+
private void addDefaultBuildersAndFormatters(AxisConfiguration axisConf) {
if (axisConf.getMessageBuilder("text/plain") == null) {
axisConf.addMessageBuilder("text/plain", new PlainTextBuilder());
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=761201&r1=761200&r2=761201&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 Apr 2 08:27:55 2009
@@ -21,16 +21,13 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.SynapseConstants;
+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.TaskDescription;
-import org.apache.synapse.task.TaskDescriptionRepository;
-import org.apache.synapse.task.TaskScheduler;
-import org.apache.synapse.task.TaskSchedulerFactory;
-import org.apache.synapse.SynapseConstants;
-import org.apache.synapse.SynapseException;
+import org.apache.synapse.task.*;
import javax.xml.namespace.QName;
import java.net.InetAddress;
@@ -52,8 +49,7 @@
private TaskDescription taskDescription;
- private TaskDescriptionRepository repository;
-
+ private final TaskHelper taskHelper = TaskHelper.getInstance();
public QName getTagQName() {
return SimpleQuartzFactory.TASK;
@@ -68,15 +64,18 @@
return;
}
- TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler(
- SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER);
+ if (taskHelper.isInitialized()) {
- if (taskScheduler != null && taskScheduler.isInitialized()) {
- taskScheduler.deleteTask(taskDescription.getName(), taskDescription.getGroup());
- }
+ TaskScheduler taskScheduler = taskHelper.getTaskScheduler();
- if (repository != null) {
- repository.removeTaskDescription(taskDescription.getName());
+ if (taskScheduler != null && taskScheduler.isInitialized()) {
+ taskScheduler.deleteTask(taskDescription.getName(), taskDescription.getGroup());
+ }
+
+ TaskDescriptionRepository repository = taskHelper.getTaskDescriptionRepository();
+ if (repository != null) {
+ repository.removeTaskDescription(taskDescription.getName());
+ }
}
}
@@ -87,7 +86,15 @@
}
SynapseConfiguration synapseConfiguration = synapseEnvironment.getSynapseConfiguration();
- repository = synapseConfiguration.getTaskDescriptionRepository();
+
+ if (!taskHelper.isInitialized()) {
+ taskHelper.init(
+ TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
+ TaskConstants.TASK_DESCRIPTION_REPOSITORY),
+ TaskSchedulerFactory.getTaskScheduler(TaskConstants.TASK_SCHEDULER));
+ }
+
+ TaskDescriptionRepository repository = taskHelper.getTaskDescriptionRepository();
if (repository == null) {
handleException("Task Description Repository can not found");