]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/ant/AntRegistryUtil.java
Add SlcExecution notifiers
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / ant / AntRegistryUtil.java
index 8bb0ffcb7efc67d1ea27692cd4fd00ec586d3699..f9928708a23e20086301f8a742e6a384813212d3 100644 (file)
@@ -8,6 +8,7 @@ import java.util.Properties;
 \r
 import org.apache.commons.logging.Log;\r
 import org.apache.commons.logging.LogFactory;\r
+import org.apache.tools.ant.BuildException;\r
 import org.apache.tools.ant.Project;\r
 import org.apache.tools.ant.ProjectHelper;\r
 \r
@@ -56,7 +57,8 @@ public class AntRegistryUtil {
                                .getReference(SlcProjectHelper.REF_STRUCTURE_REGISTRY);\r
                registry.setMode(StructureRegistry.ACTIVE);\r
                registry.setActivePaths(activePaths);\r
-               p.executeTarget(p.getDefaultTarget());\r
+\r
+               runProject(p, null);\r
                return p;\r
        }\r
 \r
@@ -71,7 +73,8 @@ public class AntRegistryUtil {
                ProjectHelper helper = new SlcProjectHelper();\r
                p.addReference(ProjectHelper.PROJECTHELPER_REFERENCE, helper);\r
                helper.parse(p, antFile);\r
-               p.executeTarget(target != null ? target : p.getDefaultTarget());\r
+\r
+               runProject(p, target);\r
                return p;\r
        }\r
 \r
@@ -81,15 +84,20 @@ public class AntRegistryUtil {
                        log.debug("Runs all paths of Ant URL " + url);\r
                Project p = new Project();\r
                p.setUserProperty("ant.file", url.toString());\r
-               //p.setBaseDir(url.toString());\r
+               // p.setBaseDir(url.toString());\r
                p.init();\r
                ProjectHelper helper = new SlcProjectHelper();\r
                p.addReference(ProjectHelper.PROJECTHELPER_REFERENCE, helper);\r
                helper.parse(p, url);\r
-               for(Map.Entry<Object, Object> entry : properties.entrySet()){\r
-                       p.setUserProperty(entry.getKey().toString(), entry.getValue().toString());\r
+\r
+               if (properties != null) {\r
+                       for (Map.Entry<Object, Object> entry : properties.entrySet()) {\r
+                               p.setUserProperty(entry.getKey().toString(), entry.getValue()\r
+                                               .toString());\r
+                       }\r
                }\r
-               p.executeTarget(target != null ? target : p.getDefaultTarget());\r
+\r
+               runProject(p, target);\r
                return p;\r
        }\r
 \r
@@ -97,4 +105,16 @@ public class AntRegistryUtil {
        public static Project runAll(File antFile) {\r
                return runAll(antFile, null);\r
        }\r
+\r
+       protected static void runProject(Project p, String target) {\r
+               p.fireBuildStarted();\r
+               Throwable exception = null;\r
+               try {\r
+                       p.executeTarget(target != null ? target : p.getDefaultTarget());\r
+               } catch (Throwable e) {\r
+                       exception = e;\r
+               } finally {\r
+                       p.fireBuildFinished(exception);\r
+               }\r
+       }\r
 }\r