Author: jdcasey Date: Thu Apr 17 16:51:52 2008 New Revision: 649331 URL: http://svn.apache.org/viewvc?rev=649331&view=rev Log: [MNG-3482] Adding an integration test to verify this fix.
Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3482DependencyPomInterpolationTest.java (with props) maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/pom.xml (with props) maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/readme.txt (with props) maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/dep-1.pom (with props) maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.jar (with props) maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.pom (with props) maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/settings.xml.in (with props) maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/AppMNG3482.java (with props) Modified: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.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=649331&r1=649330&r2=649331&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 Apr 17 16:51:52 2008 @@ -67,6 +67,7 @@ suite.addTestSuite( MavenITmng3498ForkToOtherMojoTest.class ); suite.addTestSuite( MavenITmng3485OverrideWagonExtensionTest.class ); + suite.addTestSuite( MavenITmng3482DependencyPomInterpolationTest.class ); suite.addTestSuite( MavenITmng3473PluginReportCrash.class ); suite.addTestSuite( MavenITmng3428PluginDescriptorArtifactsIncompleteTest.class ); suite.addTestSuite( MavenITmng3426PluginsClasspathOverrideTest.class ); Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3482DependencyPomInterpolationTest.java URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3482DependencyPomInterpolationTest.java?rev=649331&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3482DependencyPomInterpolationTest.java (added) +++ maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3482DependencyPomInterpolationTest.java Thu Apr 17 16:51:52 2008 @@ -0,0 +1,160 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.maven.integrationtests; + +import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.IOUtil; +import org.apache.maven.it.util.ResourceExtractor; +import org.apache.maven.it.util.StringUtils; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.util.ArrayList; +import java.util.List; + +/** + * This is a test set for <a href="http://jira.codehaus.org/browse/MNG-3482">MNG-3482</a>. + * + * @todo Fill in a better description of what this test verifies! + * + * @author <a href="mailto:[EMAIL PROTECTED]">Brian Fox</a> + * @author jdcasey + * + */ +public class MavenITmng3482DependencyPomInterpolationTest + extends AbstractMavenIntegrationTestCase +{ + public MavenITmng3482DependencyPomInterpolationTest() + throws InvalidVersionSpecificationException + { + super( "(2.0.8,)" ); // only test in 2.0.9+ + } + + public void testitMNG3482() + throws Exception + { + // The testdir is computed from the location of this + // file. + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3482" ); + + File settings = writeSettings( testDir ); + + Verifier verifier; + + /* + * We must first make sure that any artifact created + * by this test has been removed from the local + * repository. Failing to do this could cause + * unstable test results. Fortunately, the verifier + * makes it easy to do this. + */ + verifier = new Verifier( testDir.getAbsolutePath() ); + + verifier.deleteArtifact( "org.apache.maven.its.mng3482", "mng-3482", "1", "pom" ); + verifier.deleteArtifact( "org.apache.maven.its.mng3482", "mng-3482", "1", "jar" ); + verifier.deleteArtifact( "test", "dep", "1", "pom" ); + verifier.deleteArtifact( "test", "dep2", "1", "pom" ); + verifier.deleteArtifact( "test", "dep2", "1", "jar" ); + + /* + * The Command Line Options (CLI) are passed to the + * verifier as a list. This is handy for things like + * redefining the local repository if needed. In + * this case, we use the -N flag so that Maven won't + * recurse. We are only installing the parent pom to + * the local repo here. + */ + List cliOptions = new ArrayList(); + + cliOptions.add( "-s" ); + cliOptions.add( settings.getAbsolutePath() ); + cliOptions.add( "-X" ); + + verifier.setCliOptions( cliOptions ); + + verifier.executeGoal( "compile" ); + + /* + * 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(); + } + + private File writeSettings( File testDir ) + throws IOException + { + File settingsIn = new File( testDir, "settings.xml.in" ); + + String settingsContent = null; + Reader reader = null; + try + { + reader = new FileReader( settingsIn ); + settingsContent = IOUtil.toString( reader ); + } + finally + { + IOUtil.close( reader ); + } + + settingsContent = StringUtils.replace( settingsContent, + "@TESTDIR@", + testDir.getAbsolutePath() ); + + File settingsOut = new File( testDir, "settings.xml" ); + + System.out.println( "Writing tets settings to: " + settingsOut ); + + if ( settingsOut.exists() ) + { + settingsOut.delete(); + } + + Writer writer = null; + try + { + writer = new FileWriter( settingsOut ); + IOUtil.copy( settingsContent, writer ); + } + finally + { + IOUtil.close( writer ); + } + + return settingsOut; + } +} Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3482DependencyPomInterpolationTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3482DependencyPomInterpolationTest.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/pom.xml URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/pom.xml?rev=649331&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/pom.xml (added) +++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/pom.xml Thu Apr 17 16:51:52 2008 @@ -0,0 +1,23 @@ +<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.its.mng3482</groupId> + <artifactId>mng-3482</artifactId> + <packaging>jar</packaging> + <version>1</version> + + <name>Integration Test Project for MNG-3482</name> + <description> + This project verifies that MNG-3482 is fixed. It is controlled by a JUnit test called org.apache.maven.integrationtests.MNG3482Test + </description> + + <url>http://jira.codehaus.org/browse/MNG-3482</url> + + <dependencies> + <dependency> + <groupId>test</groupId> + <artifactId>dep</artifactId> + <version>1</version> + <type>pom</type> + </dependency> + </dependencies> +</project> Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/readme.txt URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/readme.txt?rev=649331&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/readme.txt (added) +++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/readme.txt Thu Apr 17 16:51:52 2008 @@ -0,0 +1 @@ +Fill this in with a description of the scenario this test attempts to check. Also include instructions for running the test manually from the command line. \ No newline at end of file Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/readme.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/readme.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/dep-1.pom URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/dep-1.pom?rev=649331&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/dep-1.pom (added) +++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/dep-1.pom Thu Apr 17 16:51:52 2008 @@ -0,0 +1,14 @@ +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>test</groupId> + <artifactId>dep</artifactId> + <version>1</version> + + <dependencies> + <dependency> + <groupId>test</groupId> + <artifactId>dep2</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project> \ No newline at end of file Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/dep-1.pom ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep/1/dep-1.pom ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.jar URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.jar?rev=649331&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.pom URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.pom?rev=649331&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.pom (added) +++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.pom Thu Apr 17 16:51:52 2008 @@ -0,0 +1,7 @@ +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>test</groupId> + <artifactId>dep2</artifactId> + <version>1</version> + +</project> \ No newline at end of file Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.pom ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/repo/test/dep2/1/dep2-1.pom ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/settings.xml.in URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/settings.xml.in?rev=649331&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/settings.xml.in (added) +++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/settings.xml.in Thu Apr 17 16:51:52 2008 @@ -0,0 +1,22 @@ +<settings> + <profiles> + <profile> + <id>remote-repository</id> + <repositories> + <repository> + <id>testing-repo</id> + <url>file://@TESTDIR@/repo</url> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <id>testing-repo</id> + <url>file://@TESTDIR@/repo</url> + </pluginRepository> + </pluginRepositories> + </profile> + </profiles> + <activeProfiles> + <activeProfile>remote-repository</activeProfile> + </activeProfiles> +</settings> \ No newline at end of file Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/settings.xml.in ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/settings.xml.in ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/AppMNG3482.java URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/AppMNG3482.java?rev=649331&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/AppMNG3482.java (added) +++ maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/AppMNG3482.java Thu Apr 17 16:51:52 2008 @@ -0,0 +1,5 @@ +package tests.mng3482; + +import test.dep2.App; + +public class AppMNG3482{} \ No newline at end of file Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/AppMNG3482.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3482/src/main/java/tests/mng3482/AppMNG3482.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision"