Modified: 
maven/components/branches/MNG-612/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-612/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java?view=diff&rev=551613&r1=551612&r2=551613
==============================================================================
--- 
maven/components/branches/MNG-612/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java
 (original)
+++ 
maven/components/branches/MNG-612/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java
 Thu Jun 28 09:26:15 2007
@@ -24,6 +24,9 @@
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.resolver.conflict.ConflictResolver;
+import org.apache.maven.artifact.resolver.conflict.ConflictResolverFactory;
+import 
org.apache.maven.artifact.resolver.conflict.ConflictResolverNotFoundException;
 import org.apache.maven.model.DeploymentRepository;
 import org.apache.maven.model.Repository;
 import org.apache.maven.model.RepositoryBase;
@@ -37,6 +40,11 @@
 
 public final class ProjectUtils
 {
+    /**
+     * The POM property name for the comma-separated list of conflict resolver 
types.
+     */
+    private static final String CONFLICT_RESOLVERS_PROPERTY = 
"maven.conflict.resolvers";
+    
     private ProjectUtils()
     {
     }
@@ -108,6 +116,48 @@
         {
             return null;
         }
+    }
+    
+    /**
+     * Gets a list of conflict resolvers for the specified project. The 
project's conflict resolvers are defined by the
+     * POM property <code>maven.conflict.resolvers</code> as a comma-separated 
list of conflict resolver types.
+     * Conflict resolver instances for these types are then obtained from the 
factory and returned.
+     * 
+     * @param project
+     *            the project
+     * @param conflictResolverFactory
+     *            the factory to use to obtain the conflict resolvers from
+     * @return the list of conflict resolvers
+     * @throws ConflictResolverNotFoundException
+     *             if a specified conflict resolver cannot be found
+     */
+    public static List buildConflictResolvers( MavenProject project, 
ConflictResolverFactory conflictResolverFactory )
+        throws ConflictResolverNotFoundException
+    {
+        List conflictResolvers;
+
+        Object value = project.getProperties().get( 
CONFLICT_RESOLVERS_PROPERTY );
+
+        if ( value instanceof String )
+        {
+            conflictResolvers = new ArrayList();
+            
+            String[] types = ( (String) value ).split( "," );
+
+            for ( int i = 0; i < types.length; i++ )
+            {
+                String type = types[i].trim();
+
+                ConflictResolver conflictResolver = 
conflictResolverFactory.getConflictResolver( type );
+                conflictResolvers.add( conflictResolver );
+            }
+        }
+        else
+        {
+            conflictResolvers = null;
+        }
+
+        return conflictResolvers;
     }
 
     private static ArtifactRepositoryPolicy buildArtifactRepositoryPolicy( 
RepositoryPolicy policy )

Modified: 
maven/components/branches/MNG-612/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-612/maven-project/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=551613&r1=551612&r2=551613
==============================================================================
--- 
maven/components/branches/MNG-612/maven-project/src/main/resources/META-INF/plexus/components.xml
 (original)
+++ 
maven/components/branches/MNG-612/maven-project/src/main/resources/META-INF/plexus/components.xml
 Thu Jun 28 09:26:15 2007
@@ -102,6 +102,9 @@
         <requirement>
           <role>org.apache.maven.artifact.manager.WagonManager</role>
         </requirement>
+        <requirement>
+          
<role>org.apache.maven.artifact.resolver.conflict.ConflictResolverFactory</role>
+        </requirement>
       </requirements>
     </component>
 <!--


Reply via email to