Author: jdcasey Date: Thu Apr 3 08:13:24 2008 New Revision: 644352 URL: http://svn.apache.org/viewvc?rev=644352&view=rev Log: Adding plexus-interpolation to the POM and build.xml/.properties, to prepare for the fix to MNG-3355 and MNG-2339(a)...also adding a new embedder-driven integration-test project to eventually hold the error-reporting tests currently in the maven-embedder tests.
Added: maven/components/trunk/maven-embedder-integration-tests/ maven/components/trunk/maven-embedder-integration-tests/pom.xml (with props) maven/components/trunk/maven-embedder-integration-tests/src/ maven/components/trunk/maven-embedder-integration-tests/src/test/ maven/components/trunk/maven-embedder-integration-tests/src/test/java/ maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/ maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/ maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/ maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/ maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/ maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/MNG3355Test.java (with props) maven/components/trunk/maven-embedder-integration-tests/src/test/projects/ maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/ maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/pom.xml (with props) maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/readme.txt (with props) Modified: maven/components/trunk/build.properties maven/components/trunk/build.xml maven/components/trunk/pom.xml Modified: maven/components/trunk/build.properties URL: http://svn.apache.org/viewvc/maven/components/trunk/build.properties?rev=644352&r1=644351&r2=644352&view=diff ============================================================================== --- maven/components/trunk/build.properties (original) +++ maven/components/trunk/build.properties Thu Apr 3 08:13:24 2008 @@ -21,7 +21,8 @@ backport.version=3.0 classworlds.version=1.2-alpha-10 plexus.version=1.0-alpha-44 -plexus-utils.version=1.4.5 +plexus-utils.version=1.5.2-SNAPSHOT +plexus-interpolation.version=1.0-SNAPSHOT maven-artifact.version=3.0-SNAPSHOT commons-cli.version=1.0 wagon.version=1.0-beta-2 Modified: maven/components/trunk/build.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/build.xml?rev=644352&r1=644351&r2=644352&view=diff ============================================================================== --- maven/components/trunk/build.xml (original) +++ maven/components/trunk/build.xml Thu Apr 3 08:13:24 2008 @@ -120,6 +120,7 @@ <pull orgpath="backport-util-concurrent/backport-util-concurrent" version="${backport.version}" name="backport-util-concurrent"/> <pull orgpath="commons-cli/commons-cli" version="${commons-cli.version}" name="commons-cli"/> <pull orgpath="org/codehaus/plexus/plexus-utils" version="${plexus-utils.version}" name="plexus-utils" repository="codehaus"/> + <pull orgpath="org/codehaus/plexus/plexus-interpolation" version="${plexus-interpolation.version}" name="plexus-interpolation" repository="codehaus"/> <pull orgpath="org/codehaus/plexus/plexus-container-default" version="${plexus.version}" name="plexus-container-default" repository="codehaus"/> <pull orgpath="org/codehaus/plexus/plexus-classworlds" version="${classworlds.version}" name="plexus-classworlds" repository="codehaus"/> <pull orgpath="org/apache/maven/maven-parent" version="4" name="maven-parent" type="pom"/> @@ -149,6 +150,7 @@ <pathelement location="${maven.repo.local}/commons-cli/commons-cli/${commons-cli.version}/commons-cli-${commons-cli.version}.jar"/> <pathelement location="${maven.repo.local}/commons-lang/commons-lang/${commons-lang.version}/commons-lang-${commons-lang.version}.jar"/> <pathelement location="${maven.repo.local}/org/codehaus/plexus/plexus-utils/${plexus-utils.version}/plexus-utils-${plexus-utils.version}.jar"/> + <pathelement location="${maven.repo.local}/org/codehaus/plexus/plexus-interpolation/${plexus-interpolation.version}/plexus-interpolation-${plexus-interpolation.version}.jar"/> <pathelement location="${maven.repo.local}/org/codehaus/plexus/plexus-container-default/${plexus.version}/plexus-container-default-${plexus.version}.jar"/> <pathelement location="${maven.repo.local}/org/codehaus/plexus/plexus-classworlds/${classworlds.version}/plexus-classworlds-${classworlds.version}.jar"/> <pathelement location="${maven.repo.local}/org/codehaus/plexus/plexus-interactivity-api/${plexus-interactivity-api.version}/plexus-interactivity-api-${plexus-interactivity-api.version}.jar"/> Added: maven/components/trunk/maven-embedder-integration-tests/pom.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder-integration-tests/pom.xml?rev=644352&view=auto ============================================================================== --- maven/components/trunk/maven-embedder-integration-tests/pom.xml (added) +++ maven/components/trunk/maven-embedder-integration-tests/pom.xml Thu Apr 3 08:13:24 2008 @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project> + <parent> + <groupId>org.apache.maven</groupId> + <artifactId>maven</artifactId> + <version>2.1-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>maven-embedder-integration-tests</artifactId> + <name>Integration Tests for Maven Embedder</name> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-embedder</artifactId> + <version>2.1-SNAPSHOT</version> + </dependency> + </dependencies> + +</project> Propchange: maven/components/trunk/maven-embedder-integration-tests/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder-integration-tests/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/MNG3355Test.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/MNG3355Test.java?rev=644352&view=auto ============================================================================== --- maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/MNG3355Test.java (added) +++ maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/MNG3355Test.java Thu Apr 3 08:13:24 2008 @@ -0,0 +1,112 @@ +package org.apache.maven.embedder.its; + +import org.apache.maven.embedder.Configuration; +import org.apache.maven.embedder.DefaultConfiguration; +import org.apache.maven.embedder.MavenEmbedder; +import org.apache.maven.embedder.MavenEmbedderConsoleLogger; +import org.apache.maven.embedder.MavenEmbedderLogger; +import org.apache.maven.execution.DefaultMavenExecutionRequest; +import org.apache.maven.execution.MavenExecutionRequest; +import org.apache.maven.execution.MavenExecutionResult; +import org.codehaus.plexus.PlexusTestCase; +import org.codehaus.plexus.util.FileUtils; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +public class MNG3355Test + extends PlexusTestCase +{ + protected String basedir; + + protected MavenEmbedder maven; + + protected void setUp() + throws Exception + { + super.setUp(); + + basedir = System.getProperty( "basedir" ); + + if ( basedir == null ) + { + basedir = new File( "." ).getCanonicalPath(); + } + + ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); + + Configuration configuration = new DefaultConfiguration() + .setClassLoader( classLoader ) + .setMavenEmbedderLogger( new MavenEmbedderConsoleLogger() ); + + maven = new MavenEmbedder( configuration ); + } + + protected void tearDown() + throws Exception + { + maven.stop(); + } + + protected void assertNoExceptions( MavenExecutionResult result ) + { + List exceptions = result.getExceptions(); + if ( ( exceptions == null ) || exceptions.isEmpty() ) + { + // everything is a-ok. + return; + } + + System.err.println( "Encountered " + exceptions.size() + " exception(s)." ); + Iterator it = exceptions.iterator(); + while ( it.hasNext() ) + { + Exception exception = (Exception) it.next(); + exception.printStackTrace( System.err ); + } + + fail( "Encountered Exceptions in MavenExecutionResult during " + getName() ); + } + + public void testMNG_3355() + throws Exception + { + File targetDirectory = getProjectDirectory( "mng-3355" ); + + List goals = new ArrayList(); + + goals.add( "clean" ); + goals.add( "validate" ); + + Properties userProperties = new Properties(); + userProperties.setProperty( "version", "foo" ); + + MavenExecutionRequest request = new DefaultMavenExecutionRequest().setBaseDirectory( targetDirectory ) + .setLoggingLevel( MavenEmbedderLogger.LEVEL_DEBUG ) + .setUserProperties( userProperties ) + .setGoals( goals ); + + MavenExecutionResult result = maven.execute( request ); + + assertNoExceptions( result ); + +// MavenProject project = result.getProject(); + } + + private File getProjectDirectory( String projectPath ) + throws IOException + { + File testDirectory = new File( basedir, "src/test/projects/" + projectPath ); + + File targetDirectory = new File( basedir, "target/projects/" + projectPath ); + + FileUtils.copyDirectoryStructure( testDirectory, targetDirectory ); + + return targetDirectory; + } + +} Propchange: maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/MNG3355Test.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder-integration-tests/src/test/java/org/apache/maven/embedder/its/MNG3355Test.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/pom.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/pom.xml?rev=644352&view=auto ============================================================================== --- maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/pom.xml (added) +++ maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/pom.xml Thu Apr 3 08:13:24 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.its.mng2339</groupId> + <artifactId>translated-path-property-expression-interpolation</artifactId> + <version>1</version> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.its.plugins</groupId> + <artifactId>maven-it-plugin-project-interpolation</artifactId> + <version>2.1-SNAPSHOT</version> + <executions> + <execution> + <goals> + <goal>check-property</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + <properties> + <myDirectory>${project.build.directory}/foo</myDirectory> + </properties> +</project> Propchange: maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/readme.txt URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/readme.txt?rev=644352&view=auto ============================================================================== --- maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/readme.txt (added) +++ maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/readme.txt Thu Apr 3 08:13:24 2008 @@ -0,0 +1,5 @@ +Verifies that references to ${project.build.directory} are interpolated with absolute path values, even when referenced in places that the pathTranslator doesn't touch, like properties. Simply run: + +mvn validate + +to see this test work. The maven-it-plugin-project-interpolation does the rest, verifying that the <myDirectory/> property has been interpolated to the result of ${project.build.directory}/foo. \ No newline at end of file Propchange: maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/readme.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder-integration-tests/src/test/projects/mng-3355/readme.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Modified: maven/components/trunk/pom.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?rev=644352&r1=644351&r2=644352&view=diff ============================================================================== --- maven/components/trunk/pom.xml (original) +++ maven/components/trunk/pom.xml Thu Apr 3 08:13:24 2008 @@ -245,6 +245,11 @@ <version>1.5.1</version> </dependency> <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-interpolation</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-provider-api</artifactId> <version>${wagonVersion}</version> @@ -361,6 +366,7 @@ <profile> <id>run-its</id> <modules> + <module>maven-embedder-integration-tests</module> <module>maven-core-it-runner</module> </modules> </profile>