Author: indika
Date: Thu Dec  4 05:15:04 2008
New Revision: 723311

URL: http://svn.apache.org/viewvc?rev=723311&view=rev
Log:
enable remove task description , scheduled task when removing start up 

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java
    
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=723311&r1=723310&r2=723311&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
 Thu Dec  4 05:15:04 2008
@@ -30,6 +30,8 @@
 import 
org.apache.synapse.commons.util.datasource.JNDIBasedDataSourceRepository;
 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 org.apache.synapse.config.xml.MediatorFactoryFinder;
 import org.apache.synapse.config.xml.endpoints.XMLToEndpointMapper;
 import org.apache.synapse.core.SynapseEnvironment;
@@ -808,7 +810,17 @@
                 }
             }
         }
+        
+        TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler(
+                SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER);
+        if (taskScheduler != null && taskScheduler.isInitialized()) {
+            taskScheduler.shutDown();
+        }
 
+        if (repository != null) {
+            repository.clear();
+        }
+        
         // clear session information used for SA load balancing
         try {
             RMIRegistryController.getInstance().shutDown();

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=723311&r1=723310&r2=723311&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 Dec  4 05:15:04 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: 
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java?rev=723311&r1=723310&r2=723311&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java
 (original)
+++ 
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java
 Thu Dec  4 05:15:04 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);


Reply via email to