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/07 00:06:09 UTC
svn commit: r634449 - in /maven/core-integration-testing/trunk:
core-integration-tests/src/test/java/org/apache/maven/integrationtests/
core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/
core-integration-tests/src/test/resour...
Author: jdcasey
Date: Thu Mar 6 15:06:05 2008
New Revision: 634449
URL: http://svn.apache.org/viewvc?rev=634449&view=rev
Log:
[MNG-3394] Adding two integration tests, and making a small adjustment to the console output when maven.version system property is not present.
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3394POMPluginVersionDominanceTest.java (with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/pom.xml (with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/readme.txt (with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/pom.xml (with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/readme.txt (with props)
Modified:
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java
maven/core-integration-testing/trunk/maven-integration-test-helper/src/main/java/org/apache/maven/integrationtests/AbstractMavenIntegrationTestCase.java
Modified: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java?rev=634449&r1=634448&r2=634449&view=diff
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java (original)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java Thu Mar 6 15:06:05 2008
@@ -181,6 +181,7 @@
suite.addTestSuite( MavenITmng3428PluginDescriptorArtifactsIncompleteTest.class );
suite.addTestSuite( MavenITmng2234ActiveProfilesFromSettingsTest.class );
suite.addTestSuite( MavenITmng3341MetadataUpdatedFromDeploymentRepositoryTest.class );
+ suite.addTestSuite( MavenITmng3394POMPluginVersionDominanceTest.class );
// ----------------------------------------------------------------------------------------------------
// Tests that need to be fixed.
Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3394POMPluginVersionDominanceTest.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3394POMPluginVersionDominanceTest.java?rev=634449&view=auto
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3394POMPluginVersionDominanceTest.java (added)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3394POMPluginVersionDominanceTest.java Thu Mar 6 15:06:05 2008
@@ -0,0 +1,106 @@
+package org.apache.maven.integrationtests;
+
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Check that plugin versions in the POM obey the correct order
+ * of precedence. Specifically, that mojos in the default lifecycle
+ * bindings can find plugin versions in the pluginManagement section
+ * when the build/plugins section is missing that plugin, and that
+ * plugin versions in build/plugins override those in build/pluginManagement.
+ */
+public class MavenITmng3394POMPluginVersionDominanceTest
+ extends AbstractMavenIntegrationTestCase
+{
+
+ private static final String BASEDIR_PREFIX = "/mng-3394-pomPluginVersionDominance/";
+
+ public MavenITmng3394POMPluginVersionDominanceTest()
+ throws InvalidVersionSpecificationException
+ {
+ super( "(2.0.8,)" ); // only test in 2.0.9+
+ }
+
+ public void testShouldUsePluginVersionFromPluginMgmtForLifecycleMojoWhenNotInBuildPlugins ()
+ throws Exception
+ {
+ File testDir = ResourceExtractor.simpleExtractResources( getClass(), BASEDIR_PREFIX + "lifecycleMojoVersionInPluginMgmt" );
+
+ Verifier verifier;
+
+ verifier = new Verifier( testDir.getAbsolutePath() );
+
+ verifier.setCliOptions( Collections.singletonList( "-X" ) );
+
+ verifier.executeGoal( "install" );
+
+ /*
+ * This is the simplest way to check a build
+ * succeeded. It is also the simplest way to create
+ * an IT test: make the build pass when the test
+ * should pass, and make the build fail when the
+ * test should fail. There are other methods
+ * supported by the verifier. They can be seen here:
+ * http://maven.apache.org/shared/maven-verifier/apidocs/index.html
+ */
+ verifier.verifyErrorFreeLog();
+
+ List logFile = verifier.loadFile( new File( testDir, "log.txt" ), false );
+
+ boolean foundSiteBeta5 = false;
+ for ( Iterator it = logFile.iterator(); it.hasNext(); )
+ {
+ String line = (String) it.next();
+ if ( line.indexOf( "maven-site-plugin:2.0-beta-5" ) > -1 )
+ {
+ foundSiteBeta5 = true;
+ break;
+ }
+ }
+
+ /*
+ * Reset the streams before executing the verifier
+ * again.
+ */
+ verifier.resetStreams();
+
+ assertTrue( "No reference to maven-site-plugin, version 2.0-beta-5 found in build log.", foundSiteBeta5 );
+ }
+
+ public void testShouldPreferPluginVersionFromBuildPluginsOverThatInPluginMgmt ()
+ throws Exception
+ {
+ File testDir = ResourceExtractor.simpleExtractResources( getClass(), BASEDIR_PREFIX + "preferBuildPluginOverPluginMgmt" );
+
+ Verifier verifier;
+
+ verifier = new Verifier( testDir.getAbsolutePath() );
+
+ verifier.setAutoclean( false );
+ verifier.executeGoal( "clean" );
+
+ /*
+ * This is the simplest way to check a build
+ * succeeded. It is also the simplest way to create
+ * an IT test: make the build pass when the test
+ * should pass, and make the build fail when the
+ * test should fail. There are other methods
+ * supported by the verifier. They can be seen here:
+ * http://maven.apache.org/shared/maven-verifier/apidocs/index.html
+ */
+ verifier.verifyErrorFreeLog();
+
+ /*
+ * Reset the streams before executing the verifier
+ * again.
+ */
+ verifier.resetStreams();
+ }
+}
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3394POMPluginVersionDominanceTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3394POMPluginVersionDominanceTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/pom.xml
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/pom.xml?rev=634449&view=auto
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/pom.xml (added)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/pom.xml Thu Mar 6 15:06:05 2008
@@ -0,0 +1,21 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.integrationtests</groupId>
+ <artifactId>lifecycleMojoVersionInPluginMgmt</artifactId>
+ <packaging>pom</packaging>
+ <version>1</version>
+ <name>lifecycleMojoVersionInPluginMgmt</name>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>2.0-beta-5</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+</project>
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/readme.txt
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/readme.txt?rev=634449&view=auto
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/readme.txt (added)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/readme.txt Thu Mar 6 15:06:05 2008
@@ -0,0 +1,5 @@
+This test should verify that the site plugin version used is 2.0-beta-5, not the latest one (which is currently 2.0-beta-6). It should get this version from the POM's pluginManagement section, even though the site-plugin's mojo call is coming from the default lifecycle bindings, and the site plugin is not specified in the POM's build/plugins section.
+
+To test, run `mvn -X install | tee build.log` or similar, to capture output to a separate file. Then, search the debug output for the string:
+
+org.apache.maven.plugins:maven-site-plugin:2.0-beta-5
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/readme.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/lifecycleMojoVersionInPluginMgmt/readme.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/pom.xml
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/pom.xml?rev=634449&view=auto
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/pom.xml (added)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/pom.xml Thu Mar 6 15:06:05 2008
@@ -0,0 +1,25 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.integrationtests</groupId>
+ <artifactId>preferBuildPluginOverPluginMgmt</artifactId>
+ <packaging>jar</packaging>
+ <version>1</version>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>invalid</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>2.1.1</version>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/readme.txt
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/readme.txt?rev=634449&view=auto
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/readme.txt (added)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/readme.txt Thu Mar 6 15:06:05 2008
@@ -0,0 +1 @@
+Test that the plugin version given in project/build/plugins overrides that in project/build/pluginManagement/plugins. If this is correct, the clean plugin should find a valid version, and execute. Otherwise, the version 'invalid' is used by Maven, and the clean plugin with that version cannot be resolved...so the build fails. Use `mvn clean` to test.
\ No newline at end of file
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/readme.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3394-pomPluginVersionDominance/preferBuildPluginOverPluginMgmt/readme.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/core-integration-testing/trunk/maven-integration-test-helper/src/main/java/org/apache/maven/integrationtests/AbstractMavenIntegrationTestCase.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/maven-integration-test-helper/src/main/java/org/apache/maven/integrationtests/AbstractMavenIntegrationTestCase.java?rev=634449&r1=634448&r2=634449&view=diff
==============================================================================
--- maven/core-integration-testing/trunk/maven-integration-test-helper/src/main/java/org/apache/maven/integrationtests/AbstractMavenIntegrationTestCase.java (original)
+++ maven/core-integration-testing/trunk/maven-integration-test-helper/src/main/java/org/apache/maven/integrationtests/AbstractMavenIntegrationTestCase.java Thu Mar 6 15:06:05 2008
@@ -36,20 +36,20 @@
protected AbstractMavenIntegrationTestCase( String versionRangeStr )
throws InvalidVersionSpecificationException
{
- this.versionRange = VersionRange.createFromVersionSpec( versionRangeStr );
+ versionRange = VersionRange.createFromVersionSpec( versionRangeStr );
String v = System.getProperty( "maven.version" );
if ( v != null )
{
- this.version = new DefaultArtifactVersion( v );
- if ( !versionRange.containsVersion( this.version ) )
+ version = new DefaultArtifactVersion( v );
+ if ( !versionRange.containsVersion( version ) )
{
skip = true;
}
}
else
{
- out.print( "WARNING: " + getITName() + ": version range '" + versionRange
+ out.println( "WARNING: " + getITName() + ": version range '" + versionRange
+ "' supplied but no maven version - not skipping test." );
}
}