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>


Reply via email to