You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Jason van Zyl <ja...@maven.org> on 2007/06/28 20:13:22 UTC

Re: svn commit: r551613 [2/2] - in /maven/components/branches/MNG-612: maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/ maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/conflict/ maven-artifact-manager/src/mai...

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, markh@apache.org 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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org