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]