Support for dependency exclusions.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@751513 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Britton Isbell 2009-03-08 20:07:56 +00:00
parent 3661c99c50
commit 48022eecde
3 changed files with 52 additions and 9 deletions

View File

@ -1,6 +0,0 @@
package org.apache.maven.project.processor;
public class DependencyExclusionsProcessor extends BaseProcessor
{
}

View File

@ -3,6 +3,7 @@ package org.apache.maven.project.processor;
import java.util.List;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Exclusion;
public class DependencyProcessor extends BaseProcessor
{
@ -74,8 +75,31 @@ public class DependencyProcessor extends BaseProcessor
targetDependency.setVersion( dependency.getVersion() );
}
//TODO: Exclusions
if(!dependency.getExclusions().isEmpty())
{
List<Exclusion> targetExclusions = targetDependency.getExclusions();
for(Exclusion e : dependency.getExclusions())
{
if(!containsExclusion(e, targetExclusions))
{
Exclusion e1 = new Exclusion();
e1.setArtifactId( e.getArtifactId() );
e1.setGroupId( e.getGroupId() );
targetExclusions.add( e1 );
}
}
}
}
private static boolean containsExclusion(Exclusion exclusion, List<Exclusion> exclusions)
{
for(Exclusion e :exclusions)
{
if(e.getGroupId().equals( exclusion.getGroupId() ) && e.getArtifactId().equals( exclusion.getArtifactId() ))
{
return true;
}
}
return false;
}
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Exclusion;
import junit.framework.TestCase;
@ -75,5 +76,29 @@ public class DependencyProcessorTest extends TestCase
assertEquals("aid", dependencies.get( 0 ).getArtifactId());
assertEquals("gid", dependencies.get( 0 ).getGroupId());
}
}
public void testExclusionJoin()
{
DependencyProcessor processor = new DependencyProcessor();
List<Dependency> dependencies = new ArrayList<Dependency>();
Exclusion e = new Exclusion();
e.setArtifactId( "aid" );
e.setGroupId( "gid" );
Dependency child = new Dependency();
child.addExclusion( e );
Exclusion e1 = new Exclusion();
e1.setArtifactId( "aid1" );
e1.setGroupId( "gid1" );
Dependency parent = new Dependency();
parent.addExclusion( e1 );
processor.process( parent, child, dependencies, false );
assertEquals(2, dependencies.get( 0 ).getExclusions().size());
assertEquals("aid", dependencies.get( 0 ).getExclusions().get( 0 ).getArtifactId());
assertEquals("aid1", dependencies.get( 0 ).getExclusions().get( 1 ).getArtifactId());
}
}