]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/test/SlcCloseTestResultTask.java
Improve Spring/Ant bridge
[gpl/argeo-slc.git] / org.argeo.slc.agent / src / main / java / org / argeo / slc / ant / test / SlcCloseTestResultTask.java
index bc0c2ba1ab70f9662a0ca7a98590e4b7e501b43b..9eeb1e0cf81fdbed2783b7fc6eb888cae16bde0a 100644 (file)
@@ -1,24 +1,40 @@
 package org.argeo.slc.ant.test;\r
 \r
+import java.util.List;\r
+import java.util.Vector;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.argeo.slc.ant.spring.SpringArg;\r
 import org.argeo.slc.ant.structure.SAwareTask;\r
 import org.argeo.slc.core.structure.StructureRegistry;\r
 import org.argeo.slc.core.test.TestResult;\r
 \r
 /** Ant tasks closing a given result. */\r
 public class SlcCloseTestResultTask extends SAwareTask {\r
-       private String result;\r
+       private final static Log log = LogFactory\r
+                       .getLog(SlcCloseTestResultTask.class);\r
+\r
+       public List<SpringArg<TestResult>> results = new Vector<SpringArg<TestResult>>();\r
 \r
        @Override\r
        public void executeActions(String mode) {\r
                if (!mode.equals(StructureRegistry.READ)) {\r
-                       TestResult testResult = (TestResult) getContext().getBean(result);\r
-                       testResult.close();\r
+                       for (SpringArg<TestResult> result : results) {\r
+                               try {\r
+                                       result.getBeanInstance().close();\r
+                               } catch (RuntimeException e) {\r
+                                       log.error("Could not close result "\r
+                                                       + (result.getBean() != null ? result.getBean()\r
+                                                                       : result.getAntref()), e);\r
+                               }\r
+                       }\r
                }\r
        }\r
 \r
-       /** Sets the bean name of the result to close. */\r
-       public void setResult(String bean) {\r
-               this.result = bean;\r
+       public SpringArg<TestResult> createResult() {\r
+               SpringArg<TestResult> result = new SpringArg<TestResult>();\r
+               results.add(result);\r
+               return result;\r
        }\r
-\r
 }\r