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