Author: jlboudart
Date: Mon Mar 17 07:03:25 2014
New Revision: 1578248
URL: http://svn.apache.org/r1578248
Log:
refactor easyant engine api
remove unnecessary catch clauses
merge init and configure method
we now have a method to configure easyant (listeners, proxy, easyant ivy
instance, system plugins, etc) and another method to load an easyant project
Modified:
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntEngine.java
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMain.java
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/helper/ModuleIvyProjectHelper.java
ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/EasyAntRunner.java
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntBaseTest.java
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntEngineTest.java
Modified:
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntEngine.java
URL:
http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntEngine.java?rev=1578248&r1=1578247&r2=1578248&view=diff
==============================================================================
---
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntEngine.java
(original)
+++
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntEngine.java
Mon Mar 17 07:03:25 2014
@@ -244,6 +244,8 @@ public class EasyAntEngine {
public void configurePluginService(Project project, IvyAntSettings
easyantIvyInstance) {
pluginService = new DefaultPluginServiceImpl(easyantIvyInstance);
+ String property =
project.getProperty(EasyAntMagicNames.EASYANT_OFFLINE);
+ pluginService.setOfflineMode(project.toBoolean(property));
project.addReference(EasyAntMagicNames.PLUGIN_SERVICE_INSTANCE,
pluginService);
}
@@ -361,14 +363,13 @@ public class EasyAntEngine {
return file;
}
+
/**
- * configure a given project with current configuration
+ * configure easyant (listeners, inputhandlers, proxy, easyantIvyInstance,
systems plugins etc...)
*
- * @param project
- * a given project
- * @throws BuildException
+ * @param project a project to configure
*/
- public void configureProject(Project project) throws BuildException {
+ public void configureEasyAnt(Project project) {
project.setCoreLoader(configuration.getCoreLoader());
@@ -396,14 +397,6 @@ public class EasyAntEngine {
project.setName("EasyAnt");
- }
-
- /**
- * Initialize an easyant Project
- *
- * @param project
- */
- public void initProject(Project project) {
try {
project.init();
project.addReference(EasyAntMagicNames.EASYANT_ENGINE_REF, this);
@@ -418,7 +411,7 @@ public class EasyAntEngine {
project.setUserProperty(EasyAntMagicNames.EASYANT_OFFLINE,
Boolean.toString(configuration.isOffline()));
- ProjectHelper helper =
ProjectUtils.configureProjectHelper(project);
+ ProjectUtils.configureProjectHelper(project);
IvyAntSettings easyantIvySettings =
configureEasyAntIvyInstance(project);
configurePluginService(project, easyantIvySettings);
@@ -438,7 +431,18 @@ public class EasyAntEngine {
project.setProperty(EasyAntMagicNames.ACTIVE_BUILD_CONFIGURATIONS,
buildConfigurations);
}
loadSystemPlugins(project, true);
+ } catch (RuntimeException exc) {
+ fireBuildFinished(project, exc);
+ throw exc;
+ }
+ }
+ /**
+ * Load an easyant project and resolve extension points
+ * @param project
+ */
+ public void loadProject(Project project) {
+ try {
locateBuildModuleAndBuildFile(project);
if (configuration.getBuildModule() != null ||
configuration.getBuildFile() != null) {
@@ -447,15 +451,12 @@ public class EasyAntEngine {
lm.setBuildFile(configuration.getBuildFile());
executeTask(lm, "load-module", project);
}
-
- helper.resolveExtensionOfAttributes(project);
+
ProjectUtils.getConfiguredProjectHelper(project).resolveExtensionOfAttributes(project);
} catch (RuntimeException exc) {
fireBuildFinished(project, exc);
throw exc;
- } catch (Error e) {
- fireBuildFinished(project, e);
- throw e;
}
+
}
protected void fireBuildFinished(Project project, Throwable error) {
@@ -576,8 +577,8 @@ public class EasyAntEngine {
*/
public void doBuild() throws BuildException {
final Project project = new Project();
- configureProject(project);
- initProject(project);
+ configureEasyAnt(project);
+ loadProject(project);
doBuild(project);
}
@@ -652,7 +653,7 @@ public class EasyAntEngine {
}
/**
- * This is a static method used to configure and initialize an existing
project
+ * This is a static method used to configure and load an existing project
*
* @param project
* a given project
@@ -661,11 +662,11 @@ public class EasyAntEngine {
* @return configured project
* @throws BuildException
*/
- public static Project configureAndInitProject(Project project,
EasyAntConfiguration eaConfiguration)
+ public static Project configureAndLoadProject(Project project,
EasyAntConfiguration eaConfiguration)
throws BuildException {
EasyAntEngine eaEngine = new EasyAntEngine(eaConfiguration);
- eaEngine.configureProject(project);
- eaEngine.initProject(project);
+ eaEngine.configureEasyAnt(project);
+ eaEngine.loadProject(project);
return project;
}
Modified:
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMain.java
URL:
http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMain.java?rev=1578248&r1=1578247&r2=1578248&view=diff
==============================================================================
---
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMain.java
(original)
+++
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/EasyAntMain.java
Mon Mar 17 07:03:25 2014
@@ -441,8 +441,8 @@ public class EasyAntMain implements AntM
} else {
EasyAntEngine eaEngine = new EasyAntEngine(easyAntConfiguration);
Project project = new Project();
- eaEngine.configureProject(project);
- eaEngine.initProject(project);
+ eaEngine.configureEasyAnt(project);
+ eaEngine.loadProject(project);
// handle other easyant option (-listTargets,-describe,etc..)
for (int i = 0; i < line.getOptions().length; i++) {
if (line.getOptions()[i] instanceof EasyantOption) {
@@ -603,7 +603,7 @@ public class EasyAntMain implements AntM
try {
- EasyAntEngine.configureAndInitProject(project,
easyAntConfiguration);
+ EasyAntEngine.configureAndLoadProject(project,
easyAntConfiguration);
printDescription(project);
printTargets(project, easyAntConfiguration.getMsgOutputLevel() >
Project.MSG_INFO);
Modified:
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/helper/ModuleIvyProjectHelper.java
URL:
http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/helper/ModuleIvyProjectHelper.java?rev=1578248&r1=1578247&r2=1578248&view=diff
==============================================================================
---
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/helper/ModuleIvyProjectHelper.java
(original)
+++
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/helper/ModuleIvyProjectHelper.java
Mon Mar 17 07:03:25 2014
@@ -47,7 +47,7 @@ public class ModuleIvyProjectHelper exte
EasyAntConfiguration eaConfiguration = new EasyAntConfiguration();
eaConfiguration.setBuildModule(buildFile);
- EasyAntEngine.configureAndInitProject(project, eaConfiguration);
+ EasyAntEngine.configureAndLoadProject(project, eaConfiguration);
}
@Override
Modified:
ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/EasyAntRunner.java
URL:
http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/EasyAntRunner.java?rev=1578248&r1=1578247&r2=1578248&view=diff
==============================================================================
---
ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/EasyAntRunner.java
(original)
+++
ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/EasyAntRunner.java
Mon Mar 17 07:03:25 2014
@@ -41,7 +41,8 @@ public class EasyAntRunner extends Task
if (fork) {
eaEngine.doBuild();
} else {
- eaEngine.initProject(getProject());
+ eaEngine.configureEasyAnt(getProject());
+ eaEngine.loadProject(getProject());;
getProject().executeTargets(new
Vector(getEasyantConfiguration().getTargets()));
}
}
Modified:
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntBaseTest.java
URL:
http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntBaseTest.java?rev=1578248&r1=1578247&r2=1578248&view=diff
==============================================================================
---
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntBaseTest.java
(original)
+++
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntBaseTest.java
Mon Mar 17 07:03:25 2014
@@ -409,7 +409,8 @@ public abstract class EasyAntBaseTest {
project = new Project();
project.addBuildListener(new
AntTestListener(conf.getMsgOutputLevel()));
EasyAntEngine eaEngine = new EasyAntEngine(conf);
- eaEngine.initProject(project);
+ eaEngine.configureEasyAnt(project);
+ eaEngine.loadProject(project);//FIXME should be better handled
}
/**
Modified:
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntEngineTest.java
URL:
http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntEngineTest.java?rev=1578248&r1=1578247&r2=1578248&view=diff
==============================================================================
---
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntEngineTest.java
(original)
+++
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/EasyAntEngineTest.java
Mon Mar 17 07:03:25 2014
@@ -69,6 +69,9 @@ public class EasyAntEngineTest {
public void setUp() throws IOException {
File cache = temporaryFolder.newFolder("build-cache");
project.setProperty("ivy.cache.dir", cache.getAbsolutePath());
+
easyAntConfiguration.setEasyantIvySettingsUrl(this.getClass().getResource(
+ "/repositories/easyant-ivysettings-test.xml"));
+
}
@Test
@@ -145,46 +148,46 @@ public class EasyAntEngineTest {
}
@Test
- public void shouldConfigureProject() {
- easyantEngine.configureProject(project);
+ public void shouldConfigureEasyAnt() {
+ easyantEngine.configureEasyAnt(project);
assertThat(Thread.currentThread().getPriority(),
is(Thread.NORM_PRIORITY));
assertThat(easyAntConfiguration.getCoreLoader(), nullValue());
assertThat(easyAntConfiguration.isProxy(), is(false));
- assertProjectIsConfigured();
+ assertEasyAntIsConfigured();
}
@Test
- public void shouldConfigureProjectWithCustomPriority() {
+ public void shouldConfigureEasyAntWithCustomPriority() {
easyAntConfiguration.setThreadPriority(10);
- easyantEngine.configureProject(project);
+ easyantEngine.configureEasyAnt(project);
assertThat(Thread.currentThread().getPriority(),
is(easyAntConfiguration.getThreadPriority()));
- assertProjectIsConfigured();
+ assertEasyAntIsConfigured();
}
@Test
- public void shouldConfigureProjectWithCustomCoreLoader() {
+ public void shouldConfigureEasyAntWithCustomCoreLoader() {
easyAntConfiguration.setCoreLoader(this.getClass().getClassLoader());
- easyantEngine.configureProject(project);
- assertProjectIsConfigured();
+ easyantEngine.configureEasyAnt(project);
+ assertEasyAntIsConfigured();
assertThat(project.getCoreLoader(),
is(this.getClass().getClassLoader()));
}
@Test
- public void shouldConfigureProjectWhenKeepGoingModeIsTrue() {
+ public void shouldConfigureEasyAntWhenKeepGoingModeIsTrue() {
easyAntConfiguration.setKeepGoingMode(true);
- easyantEngine.configureProject(project);
- assertProjectIsConfigured();
+ easyantEngine.configureEasyAnt(project);
+ assertEasyAntIsConfigured();
}
@Test
- public void shouldConfigureProjectWhenProxyIsTrue() {
+ public void shouldEasyAntProjectWhenProxyIsTrue() {
String oldValue = System.getProperty(ProxySetup.USE_SYSTEM_PROXIES);
System.getProperties().remove(ProxySetup.USE_SYSTEM_PROXIES);
easyAntConfiguration.setProxy(true);
- easyantEngine.configureProject(project);
+ easyantEngine.configureEasyAnt(project);
- assertProjectIsConfigured();
+ assertEasyAntIsConfigured();
if (oldValue != null) {
System.setProperty(ProxySetup.USE_SYSTEM_PROXIES, oldValue);
@@ -193,7 +196,7 @@ public class EasyAntEngineTest {
}
}
- private void assertProjectIsConfigured() {
+ private void assertEasyAntIsConfigured() {
assertThat(project.getCoreLoader(),
is(easyAntConfiguration.getCoreLoader()));
assertThat(project.isKeepGoingMode(),
is(easyAntConfiguration.isKeepGoingMode()));
assertThat(Boolean.parseBoolean(System.getProperty(ProxySetup.USE_SYSTEM_PROXIES)),
@@ -244,6 +247,7 @@ public class EasyAntEngineTest {
@Test
public void
shouldReturnNullGlobalEasyAntIvySettingsLocationIfNoDefaultGlobalExists()
throws MalformedURLException {
+ easyAntConfiguration.setEasyantIvySettingsUrl((String)null);
// configure default global to missing directory
project.setNewProperty(EasyAntMagicNames.EASYANT_HOME, "/fake/path");
URL globalEasyAntIvySettings =
easyantEngine.getGlobalEasyAntIvySettings(project);
@@ -252,6 +256,7 @@ public class EasyAntEngineTest {
@Test
public void shouldReturnDefaultGlobalEasyAntIvySettingsLocationIfExists()
throws IOException {
+ easyAntConfiguration.setEasyantIvySettingsUrl((String)null);
File f = temporaryFolder.newFile("easyant-ivysettings.xml");
FileOutputStream fos = null;
try {
@@ -270,6 +275,7 @@ public class EasyAntEngineTest {
@Test
public void
shouldReturnGlobalEasyAntIvySettingsLocationSpecifiedByConfigurationFile()
throws MalformedURLException {
+ easyAntConfiguration.setEasyantIvySettingsUrl((String)null);
easyAntConfiguration.setEasyantIvySettingsFile("/path/to/fake/easyantIvySettingsFile.xml");
URL globalEasyAntIvySettings =
easyantEngine.getGlobalEasyAntIvySettings(project);
assertThat(globalEasyAntIvySettings.toString(),
endsWith(easyAntConfiguration.getEasyantIvySettingsFile()));