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);