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