Author: markh
Date: Fri Jun 29 03:01:57 2007
New Revision: 551840
URL: http://svn.apache.org/viewvc?view=rev&rev=551840
Log:
[MNG-612] implement conflict resolution techniques
o Added it0125 to verify newest-wins conflict resolver configuration (currently
commented-out)
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
(with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/pom.xml
(with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/pom.xml
(with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/DependenciesMojo.java
(with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/pom.xml
(with props)
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/verifications-test.xml
(with props)
Modified:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/pom.xml
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
URL:
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java?view=auto&rev=551840
==============================================================================
---
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
(added)
+++
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
Fri Jun 29 03:01:57 2007
@@ -0,0 +1,37 @@
+package org.apache.maven.integrationtests;
+
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+
+import java.io.File;
+
+public class MavenIT0125NewestConflictResolverTest
+ extends AbstractMavenIntegrationTestCase
+{
+ /**
+ * Test that ensures the newest-wins conflict resolver is used.
+ *
+ * @throws Exception
+ * @see <a href="http://jira.codehaus.org/browse/MNG-612">MNG-612</a>
+ */
+ public void testit0125() throws Exception
+ {
+ File testDir = ResourceExtractor.simpleExtractResources( getClass(),
"/it0125-newestConflictResolver/dependency" );
+ Verifier verifier = new Verifier( testDir.getAbsolutePath() );
+ verifier.executeGoal( "install" );
+ verifier.verifyErrorFreeLog();
+ verifier.resetStreams();
+
+ testDir = ResourceExtractor.simpleExtractResources( getClass(),
"/it0125-newestConflictResolver/plugin" );
+ verifier = new Verifier( testDir.getAbsolutePath() );
+ verifier.executeGoal( "install" );
+ verifier.verifyErrorFreeLog();
+ verifier.resetStreams();
+
+ testDir = ResourceExtractor.simpleExtractResources( getClass(),
"/it0125-newestConflictResolver/project" );
+ verifier = new Verifier( testDir.getAbsolutePath() );
+ verifier.executeGoal( "verify" );
+ verifier.verifyErrorFreeLog();
+ verifier.resetStreams();
+ }
+}
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/pom.xml
URL:
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/pom.xml?view=auto&rev=551840
==============================================================================
---
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/pom.xml
(added)
+++
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/pom.xml
Fri Jun 29 03:01:57 2007
@@ -0,0 +1,15 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <name>Maven Integration Test Dependency :: it0125</name>
+ <groupId>org.apache.maven.its.it0125</groupId>
+ <artifactId>maven-it-it0125-dependency</artifactId>
+ <description>Project that brings in a newer version of
maven-core-it-support.</description>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>maven-core-it-support</artifactId>
+ <version>1.1</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/dependency/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/pom.xml?view=auto&rev=551840
==============================================================================
---
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/pom.xml
(added)
+++
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/pom.xml
Fri Jun 29 03:01:57 2007
@@ -0,0 +1,21 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <name>Maven Integration Test Plugin :: it0125</name>
+ <groupId>org.apache.maven.its.it0125</groupId>
+ <artifactId>maven-it-it0125-plugin</artifactId>
+ <packaging>maven-plugin</packaging>
+ <description>Plugin that writes the resolved artifacts to a
file.</description>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/DependenciesMojo.java
URL:
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/DependenciesMojo.java?view=auto&rev=551840
==============================================================================
---
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/DependenciesMojo.java
(added)
+++
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/DependenciesMojo.java
Fri Jun 29 03:01:57 2007
@@ -0,0 +1,90 @@
+package org.apache.maven.its.it0125;
+
+/*
+ * 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.
+ */
+
+import java.io.BufferedOutputStream;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.factory.DefaultArtifactFactory;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+
+/**
+ * Simple mojo to write the project's resolved dependencies to a file.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Mark Hobson</a>
+ * @goal dependencies
+ * @requiresDependencyResolution test
+ */
+public class DependenciesMojo extends AbstractMojo
+{
+ /**
+ * @parameter expression="${project.artifacts}"
+ */
+ private Set artifacts;
+
+ /**
+ * @parameter expression="${project.build.directory}"
+ */
+ private String buildDirectory;
+
+ /*
+ * @see org.apache.maven.plugin.Mojo#execute()
+ */
+ public void execute() throws MojoExecutionException, MojoFailureException
+ {
+ File file = new File( buildDirectory, "dependencies.log" );
+
+ if ( !file.getParentFile().mkdirs() )
+ {
+ throw new MojoExecutionException( "Cannot create build directory"
);
+ }
+
+ try
+ {
+ BufferedWriter writer = new BufferedWriter( new FileWriter( file )
);
+
+ for ( Iterator iterator = artifacts.iterator();
iterator.hasNext(); )
+ {
+ Artifact artifact = (Artifact) iterator.next();
+
+ writer.write( artifact.toString() );
+ writer.newLine();
+ }
+
+ writer.close();
+ }
+ catch ( IOException exception )
+ {
+ throw new MojoExecutionException( "Cannot create
dependencies.log", exception );
+ }
+ }
+}
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/DependenciesMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/plugin/src/main/java/org/apache/maven/its/it0125/DependenciesMojo.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/pom.xml
URL:
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/pom.xml?view=auto&rev=551840
==============================================================================
---
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/pom.xml
(added)
+++
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/pom.xml
Fri Jun 29 03:01:57 2007
@@ -0,0 +1,55 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <name>Maven Integration Test :: it0125</name>
+ <groupId>org.apache.maven.its.it0125</groupId>
+ <artifactId>maven-it-it0125</artifactId>
+ <description>Test that ensures the newest-wins conflict resolver is
used.</description>
+ <version>1.0</version>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.its.it0125</groupId>
+ <artifactId>maven-it-it0125-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>dependencies</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-verifier-plugin</artifactId>
+ <configuration>
+
<verificationFile>src/test/verifier/verifications-test.xml</verificationFile>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>verify</phase>
+ <goals>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.it0125</groupId>
+ <artifactId>maven-it-it0125-dependency</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>maven-core-it-support</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <mavenConflictResolvers>newest</mavenConflictResolvers>
+ </properties>
+</project>
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/verifications-test.xml
URL:
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/verifications-test.xml?view=auto&rev=551840
==============================================================================
---
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/verifications-test.xml
(added)
+++
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/verifications-test.xml
Fri Jun 29 03:01:57 2007
@@ -0,0 +1,8 @@
+<verifications>
+ <files>
+ <file>
+ <location>target/dependencies.log</location>
+
<contains>org.apache.maven.its:maven-core-it-support:jar:1.1:compile</contains>
+ </file>
+ </files>
+</verifications>
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/verifications-test.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/it0125-newestConflictResolver/project/src/test/verifier/verifications-test.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified:
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/pom.xml
URL:
http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/pom.xml?view=diff&rev=551840&r1=551839&r2=551840
==============================================================================
---
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/pom.xml
(original)
+++
maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/pom.xml
Fri Jun 29 03:01:57 2007
@@ -124,5 +124,6 @@
<module>it0122-reactorDependencyResolution</module>
<module>it0123-snapshotRangeRepository</module>
<!-- <module>it0124-pomExtensionComponentOverride</module> not fixed yet
-->
+ <!-- <module>it0125-newestConflictResolver</module> MNG-612 -->
</modules>
</project>