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/03/06 21:04:26 UTC

svn commit: r634401 - in /maven/components/branches/maven-2.0.x: maven-core/src/main/java/org/apache/maven/lifecycle/ maven-project/src/test/java/org/apache/maven/project/injection/ maven-project/src/test/java/org/apache/maven/project/interpolation/

Author: jdcasey
Date: Thu Mar  6 12:04:24 2008
New Revision: 634401

URL: http://svn.apache.org/viewvc?rev=634401&view=rev
Log:
[MNG-3394] Allow plugin versions in the POM's build/plugins section to override versions in the build/pluginManagement section. Also, adding a couple of unit tests trying to narrow down the sources for MNG-3394 and MNG-3355..which turns out to be in the project builder.

Modified:
    maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java
    maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java

Modified: maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=634401&r1=634400&r2=634401&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Thu Mar  6 12:04:24 2008
@@ -1584,7 +1584,7 @@
                 throw new BuildFailureException( message );
             }
 
-            project.injectPluginManagementInfo( plugin );
+//            project.injectPluginManagementInfo( plugin );
 
             if ( pluginDescriptor == null )
             {

Modified: maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java?rev=634401&r1=634400&r2=634401&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java Thu Mar  6 12:04:24 2008
@@ -19,14 +19,18 @@
  * under the License.
  */
 
-import java.util.List;
-
-import junit.framework.TestCase;
-
+import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginManagement;
+
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
 
 /**
  * @author jdcasey
@@ -39,42 +43,107 @@
         new DefaultModelDefaultsInjector();
     }
 
+    public void testShouldMergePluginManagementVersionIntoPlugin()
+    {
+        String groupId = "org.apache.maven.plugins";
+        String artifactId = "maven-test-plugin";
+
+        Model model = new Model();
+        Build build = new Build();
+        Plugin targetPlugin = new Plugin();
+        targetPlugin.setGroupId( groupId );
+        targetPlugin.setArtifactId( artifactId );
+
+        build.addPlugin( targetPlugin );
+
+        PluginManagement pMgmt = new PluginManagement();
+        Plugin managedPlugin = new Plugin();
+        managedPlugin.setGroupId( groupId );
+        managedPlugin.setArtifactId( artifactId );
+        managedPlugin.setVersion( "10.0.0" );
+
+        pMgmt.addPlugin( managedPlugin );
+        build.setPluginManagement( pMgmt );
+        model.setBuild( build );
+
+        new DefaultModelDefaultsInjector().injectDefaults( model );
+
+        Map pMap = model.getBuild().getPluginsAsMap();
+        Plugin result = (Plugin) pMap.get( groupId + ":" + artifactId );
+
+        assertNotNull( result );
+        assertEquals( managedPlugin.getVersion(), result.getVersion() );
+    }
+
+    public void testShouldKeepPluginVersionOverPluginManagementVersion()
+    {
+        String groupId = "org.apache.maven.plugins";
+        String artifactId = "maven-test-plugin";
+
+        Model model = new Model();
+        Build build = new Build();
+        Plugin targetPlugin = new Plugin();
+        targetPlugin.setGroupId( groupId );
+        targetPlugin.setArtifactId( artifactId );
+        targetPlugin.setVersion( "9.0.0" );
+
+        build.addPlugin( targetPlugin );
+
+        PluginManagement pMgmt = new PluginManagement();
+        Plugin managedPlugin = new Plugin();
+        managedPlugin.setGroupId( groupId );
+        managedPlugin.setArtifactId( artifactId );
+        managedPlugin.setVersion( "10.0.0" );
+
+        pMgmt.addPlugin( managedPlugin );
+        build.setPluginManagement( pMgmt );
+        model.setBuild( build );
+
+        new DefaultModelDefaultsInjector().injectDefaults( model );
+
+        Map pMap = model.getBuild().getPluginsAsMap();
+        Plugin result = (Plugin) pMap.get( groupId + ":" + artifactId );
+
+        assertNotNull( result );
+        assertEquals( targetPlugin.getVersion(), result.getVersion() );
+    }
+
     public void testShouldMergeManagedDependencyOfTypeEJBToDependencyList()
     {
         Model model = new Model();
-        
+
         Dependency managedDep = new Dependency();
-        
+
         managedDep.setGroupId( "group" );
         managedDep.setArtifactId( "artifact" );
         managedDep.setVersion( "1.0" );
         managedDep.setType( "ejb" );
-        
+
         DependencyManagement depMgmt = new DependencyManagement();
-        
+
         depMgmt.addDependency( managedDep );
-        
+
         model.setDependencyManagement( depMgmt );
-        
+
         Dependency dep = new Dependency();
-        
+
         dep.setGroupId( "group" );
         dep.setArtifactId( "artifact" );
-        
+
         // looks like groupId:artifactId:type is the minimum for identification, where
         // type is defaulted to "jar".
         dep.setType( "ejb" );
-        
+
         model.addDependency( dep );
-        
+
         new DefaultModelDefaultsInjector().injectDefaults( model );
-        
+
         List resultingDeps = model.getDependencies();
-        
+
         assertEquals( 1, resultingDeps.size() );
-        
+
         Dependency result = (Dependency) resultingDeps.get( 0 );
-        
+
         assertEquals( "1.0", result.getVersion() );
     }
 
@@ -124,13 +193,13 @@
         def.setArtifactId( dep.getArtifactId() );
         def.setVersion( "1.0.1" );
         def.setScope( "scope" );
-        
+
         Exclusion exc = new Exclusion();
         exc.setArtifactId( "mydep" );
         exc.setGroupId( "mygrp" );
-        
+
         def.addExclusion( exc );
-        
+
         DependencyManagement depMgmt = new DependencyManagement();
 
         depMgmt.addDependency( def );
@@ -144,11 +213,11 @@
 
         Dependency result = (Dependency) deps.get( 0 );
         assertEquals( def.getVersion(), result.getVersion() );
-        
+
         List resultExclusions = result.getExclusions();
         assertNotNull( resultExclusions );
         assertEquals( 1, resultExclusions.size() );
-        
+
         Exclusion resultExclusion = (Exclusion) resultExclusions.get( 0 );
         assertEquals( "mydep", resultExclusion.getArtifactId() );
         assertEquals( "mygrp", resultExclusion.getGroupId() );

Modified: maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java?rev=634401&r1=634400&r2=634401&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java Thu Mar  6 12:04:24 2008
@@ -19,19 +19,23 @@
  * under the License.
  */
 
-import junit.framework.TestCase;
-
+import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Organization;
 import org.apache.maven.model.Repository;
+import org.apache.maven.model.Resource;
 import org.apache.maven.model.Scm;
 
 import java.io.IOException;
 import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import junit.framework.TestCase;
+
 /**
  * @author jdcasey
  * @version $Id$
@@ -256,4 +260,40 @@
 
         assertEquals( out.getProperties().getProperty( "outputDirectory" ), "${DOES_NOT_EXIST}" );
     }
+
+    public void testShouldInterpolateSourceDirectoryReferencedFromResourceDirectoryCorrectly()
+        throws Exception
+    {
+        Model model = new Model();
+
+        Build build = new Build();
+        build.setSourceDirectory( "correct" );
+
+        Resource res = new Resource();
+        res.setDirectory( "${project.build.sourceDirectory}" );
+
+        build.addResource( res );
+
+        Resource res2 = new Resource();
+        res2.setDirectory( "${pom.build.sourceDirectory}" );
+
+        build.addResource( res2 );
+
+        Resource res3 = new Resource();
+        res3.setDirectory( "${build.sourceDirectory}" );
+
+        build.addResource( res3 );
+
+        model.setBuild( build );
+
+        Model out = new RegexBasedModelInterpolator().interpolate( model, context );
+
+        List outResources = out.getBuild().getResources();
+        Iterator resIt = outResources.iterator();
+
+        assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+        assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+        assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+    }
+
 }