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 2008/10/31 08:29:00 UTC
svn commit: r709364 - in /synapse/trunk/java/modules:
core/src/main/java/org/apache/synapse/
core/src/main/java/org/apache/synapse/config/
core/src/main/java/org/apache/synapse/startup/quartz/
tasks/src/main/java/org/apache/synapse/task/ tasks/src/main...
Author: indika
Date: Fri Oct 31 00:28:59 2008
New Revision: 709364
URL: http://svn.apache.org/viewvc?rev=709364&view=rev
Log:
Add task management service interface
Some refactoring
Added:
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/service/
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/service/TaskManagementService.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
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/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionRepository.java
synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionSerializer.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java?rev=709364&r1=709363&r2=709364&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java Fri Oct 31 00:28:59 2008
@@ -302,6 +302,10 @@
public static final String TEMP_FILE_SUFIX = "synapse.tempfile.sufix";
public static final String DOING_FAIL_OVER = "synapse.doing.failover";
+
+ public static String SYNAPSE_STARTUP_TASK_SCHEDULER = "synapse.startup.taskscheduler";
+
+ public static String SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY = "synapse.startup.taskdescriptions.repository";
// Known transport error codes
public static final int RCV_IO_ERROR_SENDING = 101000;
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=709364&r1=709363&r2=709364&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 Fri Oct 31 00:28:59 2008
@@ -25,6 +25,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.*;
+import org.apache.synapse.task.TaskDescriptionRepository;
+import org.apache.synapse.task.TaskDescriptionRepositoryFactory;
import org.apache.synapse.config.xml.MediatorFactoryFinder;
import org.apache.synapse.config.xml.SwitchCase;
import org.apache.synapse.config.xml.endpoints.XMLToEndpointMapper;
@@ -100,8 +102,12 @@
/** Hold reference to the Axis2 ConfigurationContext */
private AxisConfiguration axisConfiguration = null;
+
+ private final TaskDescriptionRepository repository =
+ TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
+ SynapseConstants.SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY);
- /**
+ /**
* Save the path to the configuration file loaded, to save it later if
* required
*/
@@ -901,4 +907,8 @@
log.error(msg);
throw new SynapseException(msg);
}
+
+ public TaskDescriptionRepository getTaskDescriptionRepository() {
+ return repository;
+ }
}
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=709364&r1=709363&r2=709364&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 Fri Oct 31 00:28:59 2008
@@ -30,6 +30,7 @@
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.startup.AbstractStartup;
@@ -44,10 +45,10 @@
private static final Log log = LogFactory.getLog(SimpleQuartz.class);
- private String taskDescriptionReference;
+ private TaskDescription taskDescription;
- public static String SYNAPSE_STARTUP_TASK_SCHEDULER = "synapse.startup.taskscheduler";
- public static String SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY = "synapse.startup.taskdescriptions.repository";
+ private TaskDescriptionRepository repository;
+
public QName getTagQName() {
return SimpleQuartzFactory.TASK;
@@ -55,35 +56,31 @@
public void destroy() {
- TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler(SYNAPSE_STARTUP_TASK_SCHEDULER);
+ TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler(
+ SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER);
if (taskScheduler != null && taskScheduler.isInitialized()) {
taskScheduler.shutDown();
}
-
- TaskDescriptionRepository repository = TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
- SimpleQuartz.SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY);
- if (repository != null) {
- repository.removeTaskDescription(taskDescriptionReference);
+
+ if (repository != null && taskDescription != null) {
+ repository.removeTaskDescription(taskDescription.getName());
}
}
public void init(SynapseEnvironment synapseEnvironment) {
- if (taskDescriptionReference == null || "".equals(taskDescriptionReference)) {
- handleException("TaskDescriptionRefrence key is null or empty");
+ if (taskDescription == null ) {
+ handleException("TaskDescription is null");
}
- TaskDescriptionRepository repository = TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
- SimpleQuartz.SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY);
+ repository = synapseEnvironment.getSynapseConfiguration().getTaskDescriptionRepository();
+
if (repository == null) {
handleException("Task Description Repository can not found");
}
-
- TaskDescription taskDescription = repository.getTaskDescription(taskDescriptionReference);
-
- if (taskDescription == null) {
- handleException("TaskDescription is null : reference name : " + taskDescriptionReference);
- }
+
+ repository.addTaskDescription(taskDescription);
+
// this server name given by system property SynapseServerName
// otherwise take host-name
// else assume localhost
@@ -119,7 +116,7 @@
try {
- TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler(SYNAPSE_STARTUP_TASK_SCHEDULER);
+ TaskScheduler taskScheduler = TaskSchedulerFactory.getTaskScheduler(SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER);
if (taskScheduler != null) {
if (!taskScheduler.isInitialized()) {
taskScheduler.init(synapseEnvironment.getSynapseConfiguration().getProperties());
@@ -127,7 +124,7 @@
taskScheduler.scheduleTask(taskDescription, map, SimpleQuartzJob.class);
} else {
if (log.isDebugEnabled()) {
- log.debug("TaskScheduler cannot be found for :" + SYNAPSE_STARTUP_TASK_SCHEDULER + " , " +
+ log.debug("TaskScheduler cannot be found for :" + SynapseConstants.SYNAPSE_STARTUP_TASK_SCHEDULER + " , " +
"therefore ignore scheduling of Task " + taskDescription);
}
}
@@ -139,12 +136,12 @@
}
- public String getTaskDescriptionReference() {
- return taskDescriptionReference;
+ public TaskDescription getTaskDescription() {
+ return taskDescription;
}
- public void setTaskDescriptionReference(String taskDescriptionReference) {
- this.taskDescriptionReference = taskDescriptionReference;
+ public void setTaskDescription(TaskDescription taskDescription) {
+ this.taskDescription = taskDescription;
}
private static void handleException(String message) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java?rev=709364&r1=709363&r2=709364&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzFactory.java Fri Oct 31 00:28:59 2008
@@ -62,11 +62,8 @@
TaskDescriptionFactory.createTaskDescription(el, XMLConfigConstants.SYNAPSE_OMNAMESPACE);
if(taskDescription == null){
handleException("Invalid task - Task description can not be created form :"+el);
- }
- TaskDescriptionRepository repository = TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
- SimpleQuartz.SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY);
- repository.addTaskDescription(taskDescription);
- simpleQuartz.setTaskDescriptionReference(taskDescription.getName());
+ }
+ simpleQuartz.setTaskDescription(taskDescription);
return simpleQuartz;
} else {
handleException("Syntax error in the task : wrong QName for the task");
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java?rev=709364&r1=709363&r2=709364&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartzSerializer.java Fri Oct 31 00:28:59 2008
@@ -22,6 +22,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.synapse.Startup;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.SynapseConstants;
import org.apache.synapse.task.TaskDescription;
import org.apache.synapse.task.TaskDescriptionSerializer;
import org.apache.synapse.task.TaskDescriptionRepository;
@@ -38,26 +39,22 @@
}
SimpleQuartz sq = (SimpleQuartz) s;
- String taskDescriptionRef = sq.getTaskDescriptionReference();
- if (taskDescriptionRef != null || !"".equals(taskDescriptionRef)) {
+
+ TaskDescription taskDescription = sq.getTaskDescription();
- TaskDescriptionRepository repository = TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
- SimpleQuartz.SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY);
- TaskDescription taskDescription = repository.getTaskDescription(taskDescriptionRef);
-
- if (taskDescription != null) {
- OMElement task = TaskDescriptionSerializer.serializeTaskDescription(parent, taskDescription);
- if (task == null) {
- throw new SynapseException("Task Element can not be null.");
- }
- return task;
- } else {
- throw new SynapseException("Task Description is null for given reference :" + taskDescriptionRef);
+ if (taskDescription != null) {
+ OMElement task = TaskDescriptionSerializer.serializeTaskDescription(
+ SynapseConstants.SYNAPSE_OMNAMESPACE, taskDescription);
+ if (task == null) {
+ throw new SynapseException("Task Element can not be null.");
}
+ if (parent != null) {
+ parent.addChild(task);
+ }
+ return task;
} else {
- throw new SynapseException("Task Description Reference is null.");
+ throw new SynapseException("Task Description is null");
}
-
}
}
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=709364&r1=709363&r2=709364&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 Fri Oct 31 00:28:59 2008
@@ -23,6 +23,7 @@
import java.util.HashMap;
import java.util.Map;
+import java.util.Iterator;
/**
* Local repository for holds Task descriptions
@@ -69,6 +70,15 @@
validateName(name);
taskDescriptionMap.remove(name);
}
+
+ /**
+ * Return all TaskDescritions
+ *
+ * @return Iterator for access taskDescritions
+ */
+ public Iterator<TaskDescription> getAllTaskDescriptions() {
+ return taskDescriptionMap.values().iterator();
+ }
/**
* Explicit check for determine whether there is a task description with a name in interest
Modified: synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionSerializer.java?rev=709364&r1=709363&r2=709364&view=diff
==============================================================================
--- synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionSerializer.java (original)
+++ synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/TaskDescriptionSerializer.java Fri Oct 31 00:28:59 2008
@@ -38,14 +38,13 @@
private static final String NULL_NAMESPACE = "";
private static final OMNamespace NULL_OMNS = omFactory.createOMNamespace(NULL_NAMESPACE, "");
- public static OMElement serializeTaskDescription(OMElement parent, TaskDescription taskDescription) {
+ public static OMElement serializeTaskDescription(OMNamespace targetNamespace, TaskDescription taskDescription) {
if (taskDescription == null) {
throw new SynapseTaskException("TaskDescription can not be null", log);
}
- OMNamespace targetNamespace = parent.getNamespace();
- OMElement task = omFactory.createOMElement("task", targetNamespace, parent);
+ OMElement task = omFactory.createOMElement("task", targetNamespace);
task.addAttribute("name", taskDescription.getName(), NULL_OMNS);
task.addAttribute("class", taskDescription.getTaskClass(), NULL_OMNS);
Added: synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/service/TaskManagementService.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/service/TaskManagementService.java?rev=709364&view=auto
==============================================================================
--- synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/service/TaskManagementService.java (added)
+++ synapse/trunk/java/modules/tasks/src/main/java/org/apache/synapse/task/service/TaskManagementService.java Fri Oct 31 00:28:59 2008
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.synapse.task.service;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.task.TaskDescription;
+
+import java.util.List;
+
+/**
+ *
+ */
+public interface TaskManagementService {
+
+ void addTaskDescription(TaskDescription taskDescription);
+
+ void deleteTaskDescription(String name);
+
+ void editTaskDescription(TaskDescription taskDescription);
+
+ List<TaskDescription> getAllTaskDescriptions();
+
+ TaskDescription getTaskDescription(String name);
+
+ boolean isContains(String name);
+}