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

Reply via email to