Author: indika Date: Thu Dec 4 05:02:00 2008 New Revision: 25806 URL: http://wso2.org/svn/browse/wso2?view=rev&revision=25806
Log: removing task , delete sheduled job when startup remove Modified: branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java branches/synapse/1.2.wso2v1/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java Modified: branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=25806&r1=25805&r2=25806&view=diff ============================================================================== --- branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java (original) +++ branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java Thu Dec 4 05:02:00 2008 @@ -41,6 +41,8 @@ import org.apache.synapse.registry.Registry; import org.apache.synapse.task.TaskDescriptionRepository; import org.apache.synapse.task.TaskDescriptionRepositoryFactory; +import org.apache.synapse.task.TaskScheduler; +import org.apache.synapse.task.TaskSchedulerFactory; import javax.xml.namespace.QName; import java.io.IOException; @@ -817,6 +819,17 @@ // clear session information used for SA load balancing try { + + TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler( + SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER); + if (taskScheduler != null && taskScheduler.isInitialized()) { + taskScheduler.shutDown(); + } + + if (repository != null) { + repository.clear(); + } + RMIRegistryController.getInstance().shutDown(); SALSessions.getInstance().reset(); InMemoryDataSourceRepository.getInstance().clear(); Modified: branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java?rev=25806&r1=25805&r2=25806&view=diff ============================================================================== --- branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java (original) +++ branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java Thu Dec 4 05:02:00 2008 @@ -19,20 +19,24 @@ package org.apache.synapse.startup.quartz; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.*; - -import javax.xml.namespace.QName; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.synapse.core.SynapseEnvironment; -import org.apache.synapse.SynapseException; import org.apache.synapse.ServerManager; import org.apache.synapse.SynapseConstants; -import org.apache.synapse.task.*; +import org.apache.synapse.SynapseException; +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 javax.xml.namespace.QName; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /* * This class is instantiated by SimpleQuartzFactory (or by hand) @@ -48,7 +52,7 @@ private TaskDescription taskDescription; private TaskDescriptionRepository repository; - + public QName getTagQName() { return SimpleQuartzFactory.TASK; @@ -56,31 +60,39 @@ public void destroy() { + if (taskDescription == null) { + if (log.isDebugEnabled()) { + log.debug("There is no Task to be deleted"); + } + return; + } + TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler( SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER); + if (taskScheduler != null && taskScheduler.isInitialized()) { - taskScheduler.shutDown(); + taskScheduler.deleteTask(taskDescription.getName(), taskDescription.getGroup()); } - - if (repository != null && taskDescription != null) { + + if (repository != null) { repository.removeTaskDescription(taskDescription.getName()); } } public void init(SynapseEnvironment synapseEnvironment) { - if (taskDescription == null ) { + if (taskDescription == null) { handleException("TaskDescription is null"); } repository = synapseEnvironment.getSynapseConfiguration().getTaskDescriptionRepository(); - + if (repository == null) { handleException("Task Description Repository can not found"); } - + repository.addTaskDescription(taskDescription); - + // this server name given by system property SynapseServerName // otherwise take host-name // else assume localhost @@ -116,7 +128,8 @@ try { - TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler(SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER); + TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler( + SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER); if (taskScheduler != null) { if (!taskScheduler.isInitialized()) { taskScheduler.init(synapseEnvironment.getSynapseConfiguration().getProperties()); @@ -124,7 +137,8 @@ taskScheduler.scheduleTask(taskDescription, map, SimpleQuartzJob.class); } else { if (log.isDebugEnabled()) { - log.debug("TaskScheduler cannot be found for :" + SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER + " , " + + log.debug("TaskScheduler cannot be found for :" + + SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER + " , " + "therefore ignore scheduling of Task " + taskDescription); } } Modified: branches/synapse/1.2.wso2v1/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java?rev=25806&r1=25805&r2=25806&view=diff ============================================================================== --- branches/synapse/1.2.wso2v1/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java (original) +++ branches/synapse/1.2.wso2v1/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java Thu Dec 4 05:02:00 2008 @@ -119,7 +119,10 @@ return taskDescriptionMap.isEmpty() || !taskDescriptionMap.containsKey(name); } - + public void clear() { + this.taskDescriptionMap.clear(); + } + private void validateName(String name) { if (name == null || "".equals(name)) { throw new SynapseTaskException("Task name is null or empty", log); _______________________________________________ Esb-java-dev mailing list [email protected] https://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev
