You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by jl...@apache.org on 2013/10/03 20:33:17 UTC

svn commit: r1528959 - in /ant/easyant/core/trunk/src: main/java/org/apache/easyant/core/ main/java/org/apache/easyant/core/ant/ main/java/org/apache/easyant/tasks/ test/java/org/apache/easyant/tasks/

Author: jlboudart
Date: Thu Oct  3 18:33:17 2013
New Revision: 1528959

URL: http://svn.apache.org/r1528959
Log:
Move MultiModuleLogger logic to MetaBuildExecutor, make it configurable through properties

Modified:
    ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMagicNames.java
    ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/MetaBuildExecutor.java
    ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/ProjectUtils.java
    ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java
    ant/easyant/core/trunk/src/test/java/org/apache/easyant/tasks/SubModuleTest.java

Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMagicNames.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMagicNames.java?rev=1528959&r1=1528958&r2=1528959&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMagicNames.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMagicNames.java Thu Oct  3 18:33:17 2013
@@ -204,4 +204,9 @@ public interface EasyAntMagicNames {
      */
     static final String IMPORTED_MODULES_RESOLVE_REPORT_REF = "importedModules.report.ref";
 
+    /**
+     * Name of the property containing multimodule logger implementation
+     */
+    static final String MULTIMODULE_LOGGER = "multimodule.logger";
+
 }

Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/MetaBuildExecutor.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/MetaBuildExecutor.java?rev=1528959&r1=1528958&r2=1528959&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/MetaBuildExecutor.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/MetaBuildExecutor.java Thu Oct  3 18:33:17 2013
@@ -40,6 +40,9 @@ public class MetaBuildExecutor extends D
 
     @Override
     public void executeTargets(Project project, String[] targets) throws BuildException {
+
+        ProjectUtils.installMultiModuleLogger(project);
+
         if (project.getReference("build-path") == null) {
             throw new BuildException("build-path is required to use MetaBuildExecutor");
         }

Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/ProjectUtils.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/ProjectUtils.java?rev=1528959&r1=1528958&r2=1528959&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/ProjectUtils.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/ProjectUtils.java Thu Oct  3 18:33:17 2013
@@ -24,6 +24,9 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
+import org.apache.easyant.core.EasyAntEngine;
+import org.apache.easyant.core.EasyAntMagicNames;
+import org.apache.easyant.core.ant.listerners.MultiModuleLogger;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.BuildListener;
 import org.apache.tools.ant.BuildLogger;
@@ -32,6 +35,7 @@ import org.apache.tools.ant.Location;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.ProjectHelper;
 import org.apache.tools.ant.Target;
+import org.apache.tools.ant.util.ClasspathUtils;
 
 /**
  * Utilitary class to manipulate ant's project (such as creating toplevel target)
@@ -114,6 +118,16 @@ public class ProjectUtils {
 
     }
 
+    public static void installMultiModuleLogger(Project project) {
+        String multiModuleLoggerName = project.getProperty(EasyAntMagicNames.MULTIMODULE_LOGGER);
+        if (multiModuleLoggerName == null) {
+            multiModuleLoggerName = MultiModuleLogger.class.getCanonicalName();
+        }
+        BuildLogger buildLogger = (BuildLogger) ClasspathUtils.newInstance(multiModuleLoggerName,
+                EasyAntEngine.class.getClassLoader(), BuildLogger.class);
+        replaceMainLogger(project, buildLogger);
+    }
+
     /**
      * Print memory details
      * 

Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java?rev=1528959&r1=1528958&r2=1528959&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/SubModule.java Thu Oct  3 18:33:17 2013
@@ -34,7 +34,6 @@ import org.apache.easyant.core.EasyAntMa
 import org.apache.easyant.core.ant.ProjectUtils;
 import org.apache.easyant.core.ant.listerners.BuildExecutionTimer;
 import org.apache.easyant.core.ant.listerners.BuildExecutionTimer.ExecutionResult;
-import org.apache.easyant.core.ant.listerners.MultiModuleLogger;
 import org.apache.easyant.core.ivy.IvyInstanceHelper;
 import org.apache.ivy.ant.IvyPublish;
 import org.apache.ivy.ant.IvyResolve;
@@ -83,8 +82,6 @@ public class SubModule extends AbstractE
             return;
         }
 
-        ProjectUtils.replaceMainLogger(getProject(), new MultiModuleLogger());
-
         BuildException buildException = null;
         for (int i = 0; i < count; ++i) {
             File file = null;

Modified: ant/easyant/core/trunk/src/test/java/org/apache/easyant/tasks/SubModuleTest.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/test/java/org/apache/easyant/tasks/SubModuleTest.java?rev=1528959&r1=1528958&r2=1528959&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/test/java/org/apache/easyant/tasks/SubModuleTest.java (original)
+++ ant/easyant/core/trunk/src/test/java/org/apache/easyant/tasks/SubModuleTest.java Thu Oct  3 18:33:17 2013
@@ -1,7 +1,5 @@
 package org.apache.easyant.tasks;
 
-import static org.hamcrest.CoreMatchers.hasItem;
-import static org.hamcrest.CoreMatchers.isA;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.junit.Assert.assertThat;
 
@@ -11,7 +9,6 @@ import java.net.URISyntaxException;
 
 import org.apache.easyant.core.EasyAntMagicNames;
 import org.apache.easyant.core.ant.listerners.BuildExecutionTimer;
-import org.apache.easyant.core.ant.listerners.MultiModuleLogger;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;
@@ -115,8 +112,6 @@ public class SubModuleTest extends AntTa
         assertLogContaining("Executing [] on module2");
         assertLogContaining("Skipping sub-project build because no matching targets were found");
 
-        verifyBuildListener();
-
     }
 
     @Test
@@ -139,7 +134,6 @@ public class SubModuleTest extends AntTa
         assertLogContaining("Executing [a-missing-target] on module2");
         assertLogContaining("Skipping undefined target 'a-missing-target' on module2");
         assertLogContaining("Skipping sub-project build because no matching targets were found");
-        verifyBuildListener();
 
     }
 
@@ -161,12 +155,7 @@ public class SubModuleTest extends AntTa
         assertLogContaining("Executing [modulewithtarget:mytarget] on module1");
         assertLogContaining("Executing [modulewithtarget:mytarget] on module2");
 
-        verifyBuildListener();
         assertThat(submodule.getProject().getReference(BuildExecutionTimer.EXECUTION_TIMER_SUBBUILD_RESULTS),
                 notNullValue());
     }
-
-    private void verifyBuildListener() {
-        assertThat(submodule.getProject().getBuildListeners(), hasItem(isA(MultiModuleLogger.class)));
-    }
 }