Author: brett
Date: Wed Sep 28 22:50:50 2005
New Revision: 292392

URL: http://svn.apache.org/viewcvs?rev=292392&view=rev
Log:
PR: MNG-1039
Submitted by: Matthew Inger
Reviewed by:  Brett Porter
filter based on dependency type

Added:
    
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
   (with props)
Modified:
    
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java

Modified: 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java?rev=292392&r1=292391&r2=292392&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
 (original)
+++ 
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
 Wed Sep 28 22:50:50 2005
@@ -24,8 +24,10 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.TypeArtifactFilter;
 import 
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Repository;
@@ -63,6 +65,8 @@
 
     private String useScope;
 
+    private String type;
+
     private boolean verbose;
 
     /**
@@ -145,7 +149,26 @@
             // TODO: managed dependencies
             Map managedDependencies = Collections.EMPTY_MAP;
 
-            ArtifactFilter filter = useScope != null ? new 
ScopeArtifactFilter( useScope ) : null;
+            ArtifactFilter filter = null;
+            if ( useScope != null )
+            {
+                filter = new ScopeArtifactFilter( useScope );
+            }
+            if ( type != null )
+            {
+                TypeArtifactFilter typeArtifactFilter = new 
TypeArtifactFilter( type );
+                if ( filter != null )
+                {
+                    AndArtifactFilter andFilter = new AndArtifactFilter();
+                    andFilter.add( filter );
+                    andFilter.add( typeArtifactFilter );
+                    filter = andFilter;
+                }
+                else
+                {
+                    filter = typeArtifactFilter;
+                }
+            }
 
             result = resolver.resolveTransitively( artifacts, pomArtifact, 
managedDependencies, localRepo,
                                                    remoteArtifactRepositories, 
metadataSource, filter, listeners );
@@ -181,12 +204,12 @@
             {
                 Artifact artifact = (Artifact) i.next();
                 String filename = localRepo.pathOf( artifact );
-    
+
                 FileList.FileName file = new FileList.FileName();
                 file.setName( filename );
-    
+
                 fileList.addConfiguredFile( file );
-    
+
                 fileSet.createInclude().setName( filename );
             }
         }
@@ -263,4 +286,11 @@
     {
         this.useScope = useScope;
     }
+
+    public void setType( String type )
+    {
+        this.type = type;
+    }
+
+
 }

Added: 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java?rev=292392&view=auto
==============================================================================
--- 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
 (added)
+++ 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
 Wed Sep 28 22:50:50 2005
@@ -0,0 +1,38 @@
+package org.apache.maven.artifact.resolver.filter;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * Artifact Filter which filters on artifact type
+ */
+public class TypeArtifactFilter
+    implements ArtifactFilter
+{
+    private String type = "jar";
+
+    public TypeArtifactFilter( String type )
+    {
+        this.type = type;
+    }
+
+    public boolean include( Artifact artifact )
+    {
+        return type.equals( artifact.getType() );
+    }
+}

Propchange: 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



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

Reply via email to