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