Author: brianf Date: Thu Jul 26 20:49:33 2007 New Revision: 560082 URL: http://svn.apache.org/viewvc?view=rev&rev=560082 Log: added it test framework
Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/AbstractDependencyPluginITCase.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/DependencyPluginTest.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/ExecutionFailedException.java maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/pom.xml maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/readme.txt maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/resolve/ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/resolve/pom.xml maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/a/ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/a/pom.xml maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/out.txt maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/pom.xml maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/pom.xml maven/plugins/trunk/maven-dependency-plugin/src/test/resources/m2repo/ Modified: maven/plugins/trunk/maven-dependency-plugin/pom.xml maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java Modified: maven/plugins/trunk/maven-dependency-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/pom.xml?view=diff&rev=560082&r1=560081&r2=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/pom.xml (original) +++ maven/plugins/trunk/maven-dependency-plugin/pom.xml Thu Jul 26 20:49:33 2007 @@ -157,6 +157,18 @@ <artifactId>maven-model</artifactId> <version>2.0.6</version> </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-test-tools</artifactId> + <version>1.0-alpha-2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-plugin-testing-tools</artifactId> + <version>1.0-alpha-2</version> + <scope>test</scope> + </dependency> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-plugin-testing-harness</artifactId> @@ -166,7 +178,7 @@ <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-archiver</artifactId> - <version>1.0-alpha-9-SNAPSHOT</version> + <version>1.0-alpha-9</version> <exclusions> <exclusion> <groupId>org.codehaus.plexus</groupId> Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java?view=diff&rev=560082&r1=560081&r2=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java Thu Jul 26 20:49:33 2007 @@ -200,12 +200,12 @@ throw new MojoExecutionException( "Error copying artifact from " + artifact + " to " + destFile, e ); } } - + protected void unpack ( File file, File location ) - throws MojoExecutionException - { - unpack( file, location, null, null); - } + throws MojoExecutionException + { + unpack( file, location, null, null ); + } /** * Unpacks the archive file. @@ -213,17 +213,22 @@ * @param file File to be unpacked. * @param location Location where to put the unpacked * files. - * @param includes Comma separated list of file patterns to include - * i.e. **\/*.xml, **\/*.properties - * @param excludes Comma separated list of file patterns to exclude - * i.e. **\/*.xml, **\/*.properties + * @param includes Comma separated list of file patterns + * to include i.e. **\/*.xml, + * **\/*.properties + * @param excludes Comma separated list of file patterns + * to exclude i.e. **\/*.xml, + * **\/*.properties */ protected void unpack ( File file, File location, String includes, String excludes ) throws MojoExecutionException { - try { + getLog().info( + "Unpacking " + file.getPath() + "to\n " + location.getPath() + + "\nwith Includes " + includes + " and excludes:" + excludes ); + location.mkdirs(); UnArchiver unArchiver; Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/AbstractDependencyPluginITCase.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/AbstractDependencyPluginITCase.java?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/AbstractDependencyPluginITCase.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/AbstractDependencyPluginITCase.java Thu Jul 26 20:49:33 2007 @@ -0,0 +1,337 @@ +/* + * 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.plugin.dependency.its; + +import java.io.File; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import org.apache.maven.project.MavenProject; +import org.apache.maven.shared.invoker.InvocationRequest; +import org.apache.maven.shared.invoker.InvocationResult; +import org.apache.maven.shared.test.plugin.BuildTool; +import org.apache.maven.shared.test.plugin.PluginTestTool; +import org.apache.maven.shared.test.plugin.ProjectTool; +import org.apache.maven.shared.test.plugin.TestToolsException; +import org.codehaus.classworlds.ClassRealm; +import org.codehaus.plexus.PlexusContainer; +import org.codehaus.plexus.PlexusTestCase; +import org.codehaus.plexus.util.CollectionUtils; +import org.codehaus.plexus.util.StringUtils; + +/** + * @author <a href="mailto:[EMAIL PROTECTED]">Brian Fox</a> + * Copied from the Eclipse + * AbstractEclipsePluginTestCase v2.4 + * @version $Id: AbstractDependencyPluginITCase.java 556442 + * 2007-07-15 20:20:23Z dantran $ + */ +public abstract class AbstractDependencyPluginITCase + extends PlexusTestCase +{ + + private BuildTool buildTool; + + private ProjectTool projectTool; + + /** + * Test repository directory. + */ + protected static File localRepositoryDirectory = getTestFile( "target/test-classes/m2repo" ); + + /** + * Pom File + */ + protected static File PomFile = new File( getBasedir(), "pom.xml" ); + + /** + * Group-Id for running test builds. + */ + protected static final String GROUP_ID = "org.apache.maven.plugins"; + + /** + * Artifact-Id for running test builds. + */ + protected static final String ARTIFACT_ID = "maven-dependency-plugin"; + + /** + * Version under which the plugin was installed to the + * test-time local repository for running test builds. + */ + protected static final String VERSION = "test"; + + private static final String BUILD_OUTPUT_DIRECTORY = "target/surefire-reports/build-output"; + + private static boolean installed = false; + + /** + * @see org.codehaus.plexus.PlexusTestCase#setUp() + */ + protected void setUp () + throws Exception + { + if ( !installed ) + { + System.out + .println( "*** Running test builds; output will be directed to: " + BUILD_OUTPUT_DIRECTORY + "\n" ); + } + + super.setUp(); + + buildTool = (BuildTool) lookup( BuildTool.ROLE, "default" ); + + projectTool = (ProjectTool) lookup( ProjectTool.ROLE, "default" ); + + String mavenHome = System.getProperty( "maven.home" ); + + // maven.home is set by surefire when the test is + // run with maven, but better make the test run in + // IDEs without + // the need of additional properties + if ( mavenHome == null ) + { + String path = System.getProperty( "java.library.path" ); + String[] paths = StringUtils.split( path, System.getProperty( "path.separator" ) ); + for ( int j = 0; j < paths.length; j++ ) + { + String pt = paths[j]; + if ( new File( pt, "mvn" ).exists() ) + { + System.setProperty( "maven.home", new File( pt ).getAbsoluteFile().getParent() ); + break; + } + + } + } + + System.setProperty( "MAVEN_TERMINATE_CMD", "on" ); + + synchronized ( AbstractDependencyPluginITCase.class ) + { + if ( !installed ) + { + PluginTestTool pluginTestTool = (PluginTestTool) lookup( PluginTestTool.ROLE, "default" ); + + localRepositoryDirectory = pluginTestTool + .preparePluginForUnitTestingWithMavenBuilds( PomFile, "test", localRepositoryDirectory ); + + System.out.println( "*** Installed test-version of the Dependency plugin to: " + + localRepositoryDirectory + "\n" ); + + installed = true; + } + } + + } + + /** + * @see org.codehaus.plexus.PlexusTestCase#tearDown() + */ + protected void tearDown () + throws Exception + { + super.tearDown(); + + List containers = new ArrayList(); + + containers.add( getContainer() ); + + for ( Iterator iter = containers.iterator(); iter.hasNext(); ) + { + PlexusContainer container = (PlexusContainer) iter.next(); + + if ( container != null ) + { + container.dispose(); + + ClassRealm realm = container.getContainerRealm(); + + if ( realm != null ) + { + realm.getWorld().disposeRealm( realm.getId() ); + } + } + } + } + + /** + * Execute the plugin with no properties + * + * @param projectName project directory + * @param goalList comma separated list of goals to + * execute + * @throws Exception any exception generated during test + */ + protected void testProject ( String projectName, String goalList ) + throws Exception + { + Properties props = new Properties(); + testProject( projectName, props, goalList ); + } + + /** + * Execute the plugin. + * + * @param projectName project directory + * @param properties additional properties + * @param goalList comma separated list of goals to + * execute + * @throws Exception any exception generated during test + */ + protected void testProject ( String projectName, Properties properties, String goalList ) + throws Exception + { + File theBasedir = getTestFile( "target/test-classes/its/" + projectName ); + + File pom = new File( theBasedir, "pom.xml" ); + + String[] goal = goalList.split( "," ); + + List goals = new ArrayList(); + + for ( int i = 0; i < goal.length; i++ ) + { + goals.add( goal[i] ); + } + + executeMaven( pom, properties, goals ); + + // MavenProject project = readProject( pom ); + + /* + * String outputDirPath = IdeUtils.getPluginSetting( + * project, "maven-dependency-plugin", "outputDir", + * null ); File outputDir; File projectOutputDir = + * basedir; + * + * if ( outputDirPath == null ) { outputDir = + * basedir; } else { outputDir = new File( basedir, + * outputDirPath ); outputDir.mkdirs(); + * projectOutputDir = new File( outputDir, + * project.getArtifactId() ); } + */ + } + + protected File getOutputDirectory ( String projectName ) + { + return getTestFile( "target/test-classes/projects/" + projectName ); + } + + protected void executeMaven ( File pom, Properties properties, List goals ) + throws TestToolsException, ExecutionFailedException + { + executeMaven( pom, properties, goals, true ); + } + + protected void executeMaven ( File pom, Properties properties, List goals, boolean switchLocalRepo ) + throws TestToolsException, ExecutionFailedException + { + // insert the test property to activate the test + // profile + properties.setProperty( "test", "true" ); + new File( BUILD_OUTPUT_DIRECTORY ).mkdirs(); + + NullPointerException npe = new NullPointerException(); + StackTraceElement[] trace = npe.getStackTrace(); + + File buildLog = null; + + for ( int i = 0; i < trace.length; i++ ) + { + StackTraceElement element = trace[i]; + + String methodName = element.getMethodName(); + + if ( methodName.startsWith( "test" ) && !methodName.equals( "testProject" ) ) + { + String classname = element.getClassName(); + + buildLog = new File( BUILD_OUTPUT_DIRECTORY, classname + "_" + element.getMethodName() + ".build.log" ); + + break; + } + } + + if ( buildLog == null ) + { + buildLog = new File( BUILD_OUTPUT_DIRECTORY, "unknown.build.log" ); + } + + InvocationRequest request = buildTool.createBasicInvocationRequest( pom, properties, goals, buildLog ); + request.setUpdateSnapshots( false ); + request.setShowErrors( true ); + + request.setDebug( true ); + + if ( switchLocalRepo ) + { + request.setLocalRepositoryDirectory( localRepositoryDirectory ); + } + + InvocationResult result = buildTool.executeMaven( request ); + + if ( result.getExitCode() != 0 ) + { + String buildLogUrl = buildLog.getAbsolutePath(); + + try + { + buildLogUrl = buildLog.toURL().toExternalForm(); + } + catch ( MalformedURLException e ) + { + } + + throw new ExecutionFailedException( "Failed to execute build.\nPOM: " + pom + "\nGoals: " + + StringUtils.join( goals.iterator(), ", " ) + "\nExit Code: " + result.getExitCode() + "\nError: " + + result.getExecutionException() + "\nBuild Log: " + buildLogUrl + "\n", result ); + } + } + + protected MavenProject readProject ( File pom ) + throws TestToolsException + { + return projectTool.readProject( pom, localRepositoryDirectory ); + } + + protected String getPluginCLISpecification () + { + String pluginSpec = GROUP_ID + ":" + ARTIFACT_ID + ":"; + + // String pluginVersion = System.getProperty( + // "pluginVersion" ); + // + // if ( pluginVersion != null ) + // { + // pluginSpec += pluginVersion + ":"; + // } + // + // System.out.println( "\n\nUsing Eclipse plugin + // version: " + pluginVersion + "\n\n" ); + + // try using the test-version installed during + // setUp() + pluginSpec += VERSION + ":"; + + return pluginSpec; + } +} Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/DependencyPluginTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/DependencyPluginTest.java?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/DependencyPluginTest.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/DependencyPluginTest.java Thu Jul 26 20:49:33 2007 @@ -0,0 +1,68 @@ +/* + * 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.plugin.dependency.its; + + +/** + * This class executes the IT tests. The setup will create a pom-test.xml from the plugin + * pom. The version is changed to "test" and the tests themselves turned off to avoid an infinite loop. + * The test version of the plugin is then built and installed to a new temporary local repo used to + * execute the tests. This only occurs once for the suite of tests. + * + * Each test below just uses the tools to execute Maven on the named project with the passed in goals. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Brian Fox</a> + * + * Copied from the Eclipse AbstractEclipsePluginTestCase v2.4 + * + * @version $Id: DependencyPluginTest.java 554290 2007-07-08 01:25:12Z brianf $ + */ +public class DependencyPluginTest extends AbstractDependencyPluginITCase +{ + protected void setUp() + throws Exception + { + super.setUp(); + } + + + /** + * Test Resolve Mojo. Simple Harness test essentially + * + * @throws Exception + * any exception thrown during test + */ + public void testSibling() throws Exception + { + testProject( "siblingReference", "package" ); + } + + /** + * Test Resolve Mojo. Simple Harness test essentially + * + * @throws Exception + * any exception thrown during test + */ + public void testResolve() throws Exception + { + testProject( "resolve", "dependency:resolve" ); + } + + +} Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/ExecutionFailedException.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/ExecutionFailedException.java?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/ExecutionFailedException.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/its/ExecutionFailedException.java Thu Jul 26 20:49:33 2007 @@ -0,0 +1,49 @@ +/* + * 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.plugin.dependency.its; + +import org.apache.maven.shared.invoker.InvocationResult; +import org.apache.maven.shared.invoker.MavenInvocationException; + +public class ExecutionFailedException + extends Exception +{ + + private static final long serialVersionUID = 1L; + + private InvocationResult result; + + public ExecutionFailedException( String message, MavenInvocationException cause ) + { + super( message + " (Maven invoker threw an exception.)", cause ); + } + + public ExecutionFailedException( String message, InvocationResult result ) + { + super( message + " (Resulting exit code: " + result.getExitCode() + ")" ); + + this.result = result; + } + + public InvocationResult getInvocationResult() + { + return result; + } + +} Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/pom.xml?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/pom.xml (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/pom.xml Thu Jul 26 20:49:33 2007 @@ -0,0 +1,66 @@ +<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"> +<!-- + * 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. + * +--> + <modelVersion>4.0.0</modelVersion> + <groupId>test</groupId> + <artifactId>maven-dependency-plugin-it-parent</artifactId> + <packaging>pom</packaging> + <version>1</version> + + <!--these profiles allow the tests to be run by hand and by the IT tests. The IT tests will activate the test profile so it uses the test version--> + <profiles> + <profile> + <id>manual</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>LATEST</version> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + <profile> + <id>test</id> + <activation> + <property> + <name>test</name> + </property> + </activation> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>test</version> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + </profiles> +</project> Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/readme.txt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/readme.txt?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/readme.txt (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/readme.txt Thu Jul 26 20:49:33 2007 @@ -0,0 +1,4 @@ +To create an IT test, start with the simplest example "resolve", copy and modify to simulate your condition. +The root pom of your project(s) need to inherit from the pom.xml in this folder in order to work correctly. +The tests should be able to be run by hand from this folder, or as part of the IT test suite. Then add a +new test method to the DependencyPluginTest class to execute your new test. \ No newline at end of file Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/resolve/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/resolve/pom.xml?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/resolve/pom.xml (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/resolve/pom.xml Thu Jul 26 20:49:33 2007 @@ -0,0 +1,50 @@ +<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"> +<!-- + * 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. + * +--> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>test</groupId> + <artifactId>maven-dependency-plugin-it-parent</artifactId> + <version>1</version> + </parent> + + <artifactId>maven-dependency-plugin-it-resolve</artifactId> + <packaging>pom</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>2.0.6</version> + </dependency> + </dependencies> + <!--This must be set so the correct version is used for the IT test--> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>test</version> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/a/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/a/pom.xml?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/a/pom.xml (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/a/pom.xml Thu Jul 26 20:49:33 2007 @@ -0,0 +1,30 @@ +<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"> +<!-- + * 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. + * +--> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>test</groupId> + <artifactId>maven-dependency-plugin-it-sibling-ref</artifactId> + <version>1</version> + </parent> + + <artifactId>a</artifactId> + +</project> Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/out.txt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/out.txt?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/out.txt (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/out.txt Thu Jul 26 20:49:33 2007 @@ -0,0 +1,115 @@ +Using maven.home=c:\Program Files\maven2\bin\\.. +[INFO] Scanning for projects... +[INFO] Searching repository for plugin with prefix: 'help'. +[INFO] ---------------------------------------------------------------------------- +[INFO] Building Unnamed - test:b:jar:1 +[INFO] task-segment: [help:effective-pom] (aggregator-style) +[INFO] ---------------------------------------------------------------------------- +[INFO] [help:effective-pom] +[INFO] +************************************************************************************ +Effective POM for project 'test:b:jar:1' +************************************************************************************ +<?xml version="1.0"?><project> + <parent> + <artifactId>maven-dependency-plugin-it-sibling-ref</artifactId> + <groupId>test</groupId> + <version>1</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>test</groupId> + <artifactId>b</artifactId> + <version>1</version> + <build> + <sourceDirectory>E:\svn\Maven\maven-plugins\maven-dependency-plugin\src\test\resources\its\siblingReference\b\src\main\java</sourceDirectory> + <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory> + <testSourceDirectory>E:\svn\Maven\maven-plugins\maven-dependency-plugin\src\test\resources\its\siblingReference\b\src\test\java</testSourceDirectory> + <outputDirectory>E:\svn\Maven\maven-plugins\maven-dependency-plugin\src\test\resources\its\siblingReference\b\target\classes</outputDirectory> + <testOutputDirectory>E:\svn\Maven\maven-plugins\maven-dependency-plugin\src\test\resources\its\siblingReference\b\target\test-classes</testOutputDirectory> + <resources> + <resource> + <directory>E:\svn\Maven\maven-plugins\maven-dependency-plugin\src\test\resources\its\siblingReference\b\src\main\resources</directory> + </resource> + </resources> + <testResources> + <testResource> + <directory>E:\svn\Maven\maven-plugins\maven-dependency-plugin\src\test\resources\its\siblingReference\b\src\test\resources</directory> + </testResource> + </testResources> + <directory>E:\svn\Maven\maven-plugins\maven-dependency-plugin\src\test\resources\its\siblingReference\b\target</directory> + <finalName>b-1</finalName> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <version>LATEST</version> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <version>LATEST</version> + <executions> + <execution> + <id>unpack-dependencies</id> + <phase>generate-resources</phase> + <goals> + <goal>unpack-dependencies</goal> + </goals> + <configuration> + <overWrite>true</overWrite> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-help-plugin</artifactId> + <version>2.0.2-SNAPSHOT</version> + </plugin> + </plugins> + </build> + <repositories> + <repository> + <snapshots> + <enabled>false</enabled> + </snapshots> + <id>central</id> + <name>Maven Repository Switchboard</name> + <url>http://repo1.maven.org/maven2</url> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <releases> + <updatePolicy>never</updatePolicy> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + <id>central</id> + <name>Maven Plugin Repository</name> + <url>http://repo1.maven.org/maven2</url> + </pluginRepository> + </pluginRepositories> + <dependencies> + <dependency> + <groupId>test</groupId> + <artifactId>a</artifactId> + <version>1</version> + </dependency> + </dependencies> + <reporting> + <outputDirectory>target/site</outputDirectory> + </reporting> +</project> +************************************************************************************ + + +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESSFUL +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 2 seconds +[INFO] Finished at: Thu Jul 26 12:39:26 AKDT 2007 +[INFO] Final Memory: 2M/4M +[INFO] ------------------------------------------------------------------------ Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/pom.xml?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/pom.xml (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/b/pom.xml Thu Jul 26 20:49:33 2007 @@ -0,0 +1,58 @@ +<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"> +<!-- + * 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. + * +--> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>test</groupId> + <artifactId>maven-dependency-plugin-it-sibling-ref</artifactId> + <version>1</version> + </parent> + + <artifactId>b</artifactId> + + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>a</artifactId> + <version>1</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>unpack-dependencies</id> + <phase>generate-resources</phase> + <goals> + <goal>unpack-dependencies</goal> + </goals> + <configuration> + <overWrite>true</overWrite> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> Added: maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/pom.xml?view=auto&rev=560082 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/pom.xml (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/resources/its/siblingReference/pom.xml Thu Jul 26 20:49:33 2007 @@ -0,0 +1,35 @@ +<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"> +<!-- + * 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. + * +--> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>test</groupId> + <artifactId>maven-dependency-plugin-it-parent</artifactId> + <version>1</version> + </parent> + + <artifactId>maven-dependency-plugin-it-sibling-ref</artifactId> + <packaging>pom</packaging> + + <modules> + <module>a</module> + <module>b</module> + </modules> +</project>