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