]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/generator/ExecutionFlowGenerator.java
Remove runtime packages
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / java / org / argeo / slc / core / execution / generator / ExecutionFlowGenerator.java
index 5451402ff6255d13bdfee837a22c79cf73082a90..d9400e42edf8b89651b7e4d27e5c3202fa7c7436 100644 (file)
@@ -1,3 +1,18 @@
+/*\r
+ * Copyright (C) 2007-2012 Argeo GmbH\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *         http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 package org.argeo.slc.core.execution.generator;\r
 \r
 import java.util.HashMap;\r
@@ -15,7 +30,6 @@ import org.springframework.beans.factory.config.RuntimeBeanReference;
 import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r
 import org.springframework.beans.factory.support.GenericBeanDefinition;\r
 import org.springframework.core.Ordered;\r
-import org.springframework.core.PriorityOrdered;\r
 \r
 /**\r
  * Generates <code>ExecutionFlows</code> and <code>Runnables</code> as\r
@@ -26,12 +40,8 @@ import org.springframework.core.PriorityOrdered;
  * Application Context after configuring the <code>ExecutionContext</code>, \r
  * and outputs of a <code>RunnableFactory</code>.\r
  */\r
-/**\r
- * @author Olivier Capillon\r
- *\r
- */\r
 public class ExecutionFlowGenerator implements BeanFactoryPostProcessor,\r
-               PriorityOrdered {\r
+               Ordered {\r
        \r
        private final Log log = LogFactory.getLog(getClass());\r
 \r
@@ -63,6 +73,14 @@ public class ExecutionFlowGenerator implements BeanFactoryPostProcessor,
         * <code>RunnableCallFlow</code> beans.\r
         */\r
        private String contextValuesBeanName = "executionFlowGenerator.contextValues";\r
+       \r
+       /**\r
+        * Prefix added to the bean names defined in each \r
+        * <code>RunnableCallFlowDescriptor</code>\r
+        */\r
+       private String flowBeanNamesPrefix = "";\r
+       \r
+       private int order = Ordered.HIGHEST_PRECEDENCE;\r
                \r
        public void postProcessBeanFactory(\r
                        ConfigurableListableBeanFactory beanFactory) throws BeansException {\r
@@ -100,11 +118,13 @@ public class ExecutionFlowGenerator implements BeanFactoryPostProcessor,
                GenericBeanDefinition flowBean = new GenericBeanDefinition();\r
                flowBean.setBeanClass(RunnableCallFlow.class);\r
                \r
+               String beanName = flowBeanNamesPrefix + flowDescriptor.getBeanName();\r
+               \r
                MutablePropertyValues mpv = new MutablePropertyValues();                \r
                mpv.addPropertyValue("runnableCalls", flowDescriptor.getRunnableCalls());\r
                mpv.addPropertyValue("sharedContextValuesMap", new RuntimeBeanReference(contextValuesBeanName));\r
                \r
-               mpv.addPropertyValue("name", flowDescriptor.getBeanName());\r
+               mpv.addPropertyValue("name", beanName);\r
                mpv.addPropertyValue("path", flowDescriptor.getPath());\r
 \r
                mpv.addPropertyValue("executionContext", new RuntimeBeanReference(executionContextBeanName));\r
@@ -113,9 +133,9 @@ public class ExecutionFlowGenerator implements BeanFactoryPostProcessor,
                \r
                // register it\r
                if(log.isDebugEnabled()) {\r
-                       log.debug("Registering bean definition for RunnableCallFlow " + flowDescriptor.getBeanName());\r
+                       log.debug("Registering bean definition for RunnableCallFlow " + beanName);\r
                }\r
-               registry.registerBeanDefinition(flowDescriptor.getBeanName(), flowBean);\r
+               registry.registerBeanDefinition(beanName, flowBean);\r
        }\r
        \r
        /**\r
@@ -132,7 +152,11 @@ public class ExecutionFlowGenerator implements BeanFactoryPostProcessor,
        }\r
        \r
        public int getOrder() {\r
-               return Ordered.HIGHEST_PRECEDENCE;\r
+               return order;\r
+       }\r
+\r
+       public void setOrder(int order) {\r
+               this.order = order;\r
        }\r
 \r
        public void setSource(ExecutionFlowGeneratorSource source) {\r
@@ -151,5 +175,7 @@ public class ExecutionFlowGenerator implements BeanFactoryPostProcessor,
                this.contextValuesBeanName = contextValuesBeanName;\r
        }\r
 \r
-\r
+       public void setFlowBeanNamesPrefix(String flowBeanNamesPrefix) {\r
+               this.flowBeanNamesPrefix = flowBeanNamesPrefix;\r
+       }\r
 }\r