Author: sisbell
Date: Sun Mar  8 20:07:56 2009
New Revision: 751513

URL: http://svn.apache.org/viewvc?rev=751513&view=rev
Log:
Support for dependency exclusions.

Removed:
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DependencyExclusionsProcessor.java
Modified:
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java
    
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java?rev=751513&r1=751512&r2=751513&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java
 (original)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java
 Sun Mar  8 20:07:56 2009
@@ -3,6 +3,7 @@
 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 @@
             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;
+    }
 }

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java?rev=751513&r1=751512&r2=751513&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java
 Sun Mar  8 20:07:56 2009
@@ -4,6 +4,7 @@
 import java.util.List;
 
 import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Exclusion;
 
 import junit.framework.TestCase;
 
@@ -75,5 +76,29 @@
         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());
+    }
 }


Reply via email to