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)));
- }
}