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/05/24 15:39:47 UTC
svn commit: r1486052 - in /ant/easyant/core/trunk/src:
main/java/org/apache/easyant/core/report/ main/java/org/apache/easyant/man/
test/java/org/apache/easyant/core/services/
Author: jlboudart
Date: Fri May 24 13:39:47 2013
New Revision: 1486052
URL: http://svn.apache.org/r1486052
Log:
Refactor PluginServiceTest
importedModuleReports is now a Set to avoid duplicates
Modified:
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/EasyAntReport.java
ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/ImportedModuleReport.java
ant/easyant/core/trunk/src/main/java/org/apache/easyant/man/ListPlugins.java
ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/services/PluginServiceTest.java
Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/EasyAntReport.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/EasyAntReport.java?rev=1486052&r1=1486051&r2=1486052&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/EasyAntReport.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/EasyAntReport.java Fri May 24 13:39:47 2013
@@ -20,8 +20,10 @@ package org.apache.easyant.core.report;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.apache.easyant.core.descriptor.PropertyDescriptor;
import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
@@ -36,7 +38,7 @@ public class EasyAntReport {
private List<TargetReport> targetReports = new ArrayList<TargetReport>();
private List<ExtensionPointReport> extensionPointReports = new ArrayList<ExtensionPointReport>();
private List<ParameterReport> parameterReports = new ArrayList<ParameterReport>();
- private List<ImportedModuleReport> importedModuleReports = new ArrayList<ImportedModuleReport>();
+ private Set<ImportedModuleReport> importedModuleReports = new HashSet<ImportedModuleReport>();
private Map<String, PropertyDescriptor> propertyReports = new HashMap<String, PropertyDescriptor>();
private ResolveReport resolveReport;
private ModuleDescriptor moduleDescriptor;
@@ -180,8 +182,8 @@ public class EasyAntReport {
*
* @return a list of imported modules
*/
- public List<ImportedModuleReport> getImportedModuleReports() {
- return Collections.unmodifiableList(importedModuleReports);
+ public Set<ImportedModuleReport> getImportedModuleReports() {
+ return Collections.unmodifiableSet(importedModuleReports);
}
/**
Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/ImportedModuleReport.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/ImportedModuleReport.java?rev=1486052&r1=1486051&r2=1486052&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/ImportedModuleReport.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/core/report/ImportedModuleReport.java Fri May 24 13:39:47 2013
@@ -55,10 +55,10 @@ public class ImportedModuleReport {
}
public String getModuleMrid() {
- return moduleMrid != null ? moduleMrid : ModuleRevisionId.newInstance(
- organisation, module, revision).toString();
+ return moduleMrid != null ? moduleMrid : ModuleRevisionId.newInstance(organisation, module, revision)
+ .toString();
}
-
+
public ModuleRevisionId getModuleRevisionId() {
return ModuleRevisionId.parse(getModuleMrid());
}
@@ -99,4 +99,47 @@ public class ImportedModuleReport {
this.mandatory = mandatory;
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((module == null) ? 0 : module.hashCode());
+ result = prime * result + ((moduleMrid == null) ? 0 : moduleMrid.hashCode());
+ result = prime * result + ((organisation == null) ? 0 : organisation.hashCode());
+ result = prime * result + ((revision == null) ? 0 : revision.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ImportedModuleReport other = (ImportedModuleReport) obj;
+ if (module == null) {
+ if (other.module != null)
+ return false;
+ } else if (!module.equals(other.module))
+ return false;
+ if (moduleMrid == null) {
+ if (other.moduleMrid != null)
+ return false;
+ } else if (!moduleMrid.equals(other.moduleMrid))
+ return false;
+ if (organisation == null) {
+ if (other.organisation != null)
+ return false;
+ } else if (!organisation.equals(other.organisation))
+ return false;
+ if (revision == null) {
+ if (other.revision != null)
+ return false;
+ } else if (!revision.equals(other.revision))
+ return false;
+ return true;
+ }
+
}
Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/man/ListPlugins.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/man/ListPlugins.java?rev=1486052&r1=1486051&r2=1486052&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/man/ListPlugins.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/man/ListPlugins.java Fri May 24 13:39:47 2013
@@ -17,7 +17,7 @@
*/
package org.apache.easyant.man;
-import java.util.List;
+import java.util.Set;
import org.apache.easyant.core.report.ImportedModuleReport;
@@ -36,11 +36,14 @@ public class ListPlugins extends Easyant
getProject().log(
LINE_SEP + "--- Available Plugins for current project: " + getProject().getName() + " ---" + LINE_SEP);
- List<ImportedModuleReport> moduleReps = getEareport().getImportedModuleReports();
- for (int i = 0; i < moduleReps.size(); i++) {
- getProject().log(
- "\t" + moduleReps.get(i).getModuleMrid()
- + (moduleReps.get(i).getAs() == null ? "" : ": Known as " + moduleReps.get(i).getAs()));
+ Set<ImportedModuleReport> moduleReps = getEareport().getImportedModuleReports();
+ for (ImportedModuleReport importedModuleReport : moduleReps) {
+ getProject()
+ .log(
+ "\t"
+ + importedModuleReport.getModuleMrid()
+ + (importedModuleReport.getAs() == null ? "" : ": Known as "
+ + importedModuleReport.getAs()));
}
getProject().log(
Modified: ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/services/PluginServiceTest.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/services/PluginServiceTest.java?rev=1486052&r1=1486051&r2=1486052&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/services/PluginServiceTest.java (original)
+++ ant/easyant/core/trunk/src/test/java/org/apache/easyant/core/services/PluginServiceTest.java Fri May 24 13:39:47 2013
@@ -90,50 +90,32 @@ public class PluginServiceTest {
EasyAntReport eaReport = generateReport();
Assert.assertNotNull(eaReport);
- // the report should contain the run-java plugin
- boolean containsBuildType = false;
- boolean containsPlugin = false;
- for (ImportedModuleReport importedModule : eaReport.getImportedModuleReports()) {
- if (importedModule.getModuleMrid().equals("org.apache.easyant.buildtypes#build-std-java;0.9")) {
- containsBuildType = true;
- }
- if (importedModule.getModuleMrid().equals("org.apache.easyant.plugins#run-java;0.9")) {
- containsPlugin = true;
- }
- }
- Assert.assertTrue(containsBuildType);
- Assert.assertTrue(containsPlugin);
+ Assert.assertNotNull(eaReport.getImportedModuleReport("org.apache.easyant.buildtypes#build-std-java;0.9"));
+ Assert.assertNotNull(eaReport.getImportedModuleReport("org.apache.easyant.plugins#run-java;0.9"));
+
+ ImportedModuleReport buildType = eaReport
+ .getImportedModuleReport("org.apache.easyant.buildtypes#build-std-java;0.9");
+ // global importedModule size should be equals to :
+ // importedModule size of buildtype + 2 (buildtype itself +run-java plugin)
+ Assert.assertEquals(buildType.getEasyantReport().getImportedModuleReports().size() + 2, eaReport
+ .getImportedModuleReports().size());
- // be sure that the property exist
- PropertyDescriptor property = eaReport.getPropertyDescriptors().get("run.main.classname");
- Assert.assertNotNull(property);
- // check the value of the property
- Assert.assertEquals("org.apache.easyant.example.Example", property.getValue());
-
- // be sure that the property exist
- PropertyDescriptor srcMainJava = eaReport.getAvailableProperties().get("src.main.java");
- Assert.assertNotNull(srcMainJava);
- // check the value of the property
- Assert.assertEquals("${basedir}/src/main/java", srcMainJava.getValue());
+ checkPropertyValueEquals(eaReport.getPropertyDescriptors().get("run.main.classname"),
+ "org.apache.easyant.example.Example");
+
+ checkPropertyValueEquals(eaReport.getPropertyDescriptors().get("src.main.java"), "${basedir}/src/main/java");
// the property should also be contained in getAvailableProperties which
// list all properties (those for the current module and those in
// imported modules)
- property = eaReport.getAvailableProperties().get("run.main.classname");
- Assert.assertNotNull(property);
- // check the value of the property
- Assert.assertEquals("org.apache.easyant.example.Example", property.getValue());
+ checkPropertyValueEquals(eaReport.getAvailableProperties().get("run.main.classname"),
+ "org.apache.easyant.example.Example");
- // check that package ExtensionPoint exists and that jar:jar target is bound to
+ // check that package ExtensionPoint exists and targets are bound to
// this extension-point
- ExtensionPointReport packageEP = null;
- for (ExtensionPointReport extensionPoint : eaReport.getExtensionPointReports()) {
- if ("package".equals(extensionPoint.getName())) {
- packageEP = extensionPoint;
- break;
- }
- }
+ ExtensionPointReport packageEP = eaReport.getExtensionPointReport("package");
Assert.assertNotNull(packageEP);
+
Assert.assertEquals("compile,abstract-package:package,hello-world", packageEP.getDepends());
List<TargetReport> targets = packageEP.getTargetReports();
@@ -160,17 +142,38 @@ public class PluginServiceTest {
EasyAntReport pluginInfo = pluginService.getPluginInfo("org.apache.easyant.plugins#compile-java;0.9");
Assert.assertNotNull(pluginInfo);
Assert.assertEquals(2, pluginInfo.getImportedModuleReports().size());
+ Assert.assertNotNull(pluginInfo.getImportedModuleReport("abstract-provisioning"));
+ Assert.assertNotNull(pluginInfo.getImportedModuleReport("abstract-compile"));
+
+ checkPropertyDefaultValueEquals(pluginInfo.getPropertyDescriptors().get("compile.java.includes.pattern"),
+ "**/*.java");
+ checkPropertyDefaultValueEquals(pluginInfo.getPropertyDescriptors().get("target.test.integration.classes"),
+ "target/integration-test/classes");
+ }
+
+ @Test
+ public void testGetPluginInfoWithNestedPlugin() throws Exception {
+ EasyAntReport pluginInfo = pluginService.getPluginInfo("org.apache.easyant.plugins#compile-java;0.9");
+ Assert.assertNotNull(pluginInfo);
+
+ // verify abstract-provisioning is imported in abstract-compile
ImportedModuleReport importedModuleReport = pluginInfo.getImportedModuleReport("abstract-compile");
Assert.assertNotNull(importedModuleReport);
Assert.assertNotNull(importedModuleReport.getEasyantReport());
- // abstract-compile import abstract-provisioning
Assert.assertEquals(1, importedModuleReport.getEasyantReport().getImportedModuleReports().size());
+ Assert.assertNotNull(importedModuleReport.getEasyantReport().getImportedModuleReport("abstract-provisioning"));
+
+ checkPropertyDefaultValueEquals(importedModuleReport.getEasyantReport().getPropertyDescriptors().get(
+ "target.test.integration.classes"), "target/integration-test/classes");
+ }
+
+ public void checkPropertyDefaultValueEquals(PropertyDescriptor propertyDescriptor, String expectedValue) {
+ Assert.assertNotNull(propertyDescriptor);
+ Assert.assertEquals(expectedValue, propertyDescriptor.getDefaultValue());
+ }
- Assert.assertNotNull(pluginInfo.getPropertyDescriptors().get("compile.java.includes.pattern"));
- Assert.assertEquals("**/*.java", pluginInfo.getPropertyDescriptors().get("compile.java.includes.pattern")
- .getDefaultValue());
- Assert.assertNotNull(pluginInfo.getPropertyDescriptors().get("target.test.integration.classes"));
- Assert.assertEquals("target/integration-test/classes", pluginInfo.getPropertyDescriptors().get(
- "target.test.integration.classes").getDefaultValue());
+ public void checkPropertyValueEquals(PropertyDescriptor propertyDescriptor, String expectedValue) {
+ Assert.assertNotNull(propertyDescriptor);
+ Assert.assertEquals(expectedValue, propertyDescriptor.getValue());
}
}