]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.ant/src/main/java/org/argeo/slc/ant/AntFlowGenerator.java
Introduce execution flow generator
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.ant / src / main / java / org / argeo / slc / ant / AntFlowGenerator.java
diff --git a/runtime/org.argeo.slc.support.ant/src/main/java/org/argeo/slc/ant/AntFlowGenerator.java b/runtime/org.argeo.slc.support.ant/src/main/java/org/argeo/slc/ant/AntFlowGenerator.java
new file mode 100644 (file)
index 0000000..1a6f692
--- /dev/null
@@ -0,0 +1,36 @@
+package org.argeo.slc.ant;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.argeo.slc.core.execution.AbstractExecutionFlowGenerator;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.core.io.Resource;
+
+public class AntFlowGenerator extends AbstractExecutionFlowGenerator {
+       private List<Resource> antFiles = new ArrayList<Resource>();
+
+       protected Map<String, BeanDefinition> createExecutionFlowDefinitions(
+                       ConfigurableListableBeanFactory beanFactory) {
+               Map<String, BeanDefinition> definitions = new HashMap<String, BeanDefinition>();
+
+               for (Resource antFile : antFiles) {
+                       AntRun antRun = new AntRun();
+                       antRun.setBuildFile(antFile);
+
+                       List<Runnable> executables = new ArrayList<Runnable>();
+                       executables.add(antRun);
+                       definitions.put("ant." + antFile.getFilename(),
+                                       createDefaultFlowDefinition(executables));
+               }
+               return definitions;
+       }
+
+       public void setAntFiles(List<Resource> antFiles) {
+               this.antFiles = antFiles;
+       }
+
+}