You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/02/01 03:13:51 UTC

svn commit: r617330 - in /maven/components/trunk/maven-project/src/test: java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java java/org/apache/maven/project/ModelUtilsTest.java resources/projects/duplicate-plugins-merged-pom.xml

Author: jdcasey
Date: Thu Jan 31 18:13:36 2008
New Revision: 617330

URL: http://svn.apache.org/viewvc?rev=617330&view=rev
Log:
[MNG-2145] Adding some more unit tests to protect against these problems in future.

Added:
    maven/components/trunk/maven-project/src/test/resources/projects/duplicate-plugins-merged-pom.xml   (with props)
Modified:
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java?rev=617330&r1=617329&r2=617330&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java Thu Jan 31 18:13:36 2008
@@ -22,6 +22,7 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.model.Plugin;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -92,6 +93,16 @@
         // it's the building of the grandchild project, having already cached the child project
         // (but not the parent project), which causes the problem.
         getProject( f2 );
+    }
+
+    public void testDuplicatePluginDefinitionsMerged()
+        throws Exception
+    {
+        File f1 = getTestFile( "src/test/resources/projects/duplicate-plugins-merged-pom.xml" );
+
+        MavenProject project = getProject( f1 );
+
+        assertEquals( 2, ( (Plugin) project.getBuildPlugins().get( 0 ) ).getDependencies().size() );
     }
 
     protected ArtifactRepository getLocalRepository()

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java?rev=617330&r1=617329&r2=617330&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java Thu Jan 31 18:13:36 2008
@@ -489,4 +489,29 @@
         assertEquals( "two", item[1].getValue() );
         assertEquals( "three", item[2].getValue() );
     }
+
+    public void testShouldMergeTwoPluginDependenciesOnMergeDupePluginDefs()
+    {
+        PluginContainer first = new PluginContainer();
+        Plugin fPlugin = createPlugin( "g", "a", "1", Collections.EMPTY_MAP );
+        Dependency fDep = new Dependency();
+        fDep.setGroupId( "group" );
+        fDep.setArtifactId( "artifact" );
+        fDep.setVersion( "1" );
+
+        first.addPlugin( fPlugin );
+        fPlugin.addDependency( fDep );
+
+        Plugin sPlugin = createPlugin( "g", "a", "1", Collections.EMPTY_MAP );
+        Dependency sDep = new Dependency();
+        sDep.setGroupId( "group" );
+        sDep.setArtifactId( "artifact2" );
+        sDep.setVersion( "1" );
+        first.addPlugin( sPlugin );
+        sPlugin.addDependency( sDep );
+
+        ModelUtils.mergeDuplicatePluginDefinitions( first );
+
+        assertEquals( 2, ((Plugin)first.getPlugins().get( 0 ) ).getDependencies().size() );
+    }
 }

Added: maven/components/trunk/maven-project/src/test/resources/projects/duplicate-plugins-merged-pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/projects/duplicate-plugins-merged-pom.xml?rev=617330&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/projects/duplicate-plugins-merged-pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources/projects/duplicate-plugins-merged-pom.xml Thu Jan 31 18:13:36 2008
@@ -0,0 +1,32 @@
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>tests.project</groupId>
+    <artifactId>duplicate-plugin-defs-merged</artifactId>
+    <version>1</version>
+    
+    <build>
+      <plugins>
+        <plugin>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <dependencies>
+            <dependency>
+              <groupId>group</groupId>
+              <artifactId>first</artifactId>
+              <version>1</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+        <plugin>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <dependencies>
+            <dependency>
+              <groupId>group</groupId>
+              <artifactId>second</artifactId>
+              <version>1</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+      </plugins>
+    </build>
+    
+</project>

Propchange: maven/components/trunk/maven-project/src/test/resources/projects/duplicate-plugins-merged-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/resources/projects/duplicate-plugins-merged-pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"