One nitpick is that I think we should stick to property names that follow Java variable name conventions like mavenConflictResolvers, and this also prevents any screw ups with any ELs or expression resolvers that might potentially get confused by dots in the expression.

On 28 Jun 07, at 9:26 AM 28 Jun 07, [EMAIL PROTECTED] wrote:

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.ConflictResolverNotFoundEx ception;
 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.ConflictResolverFact ory</role>
+        </requirement>
       </requirements>
     </component>
 <!--




Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder and PMC Chair, Apache Maven
jason at sonatype dot com
----------------------------------------------------------




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to