Author: brianf Date: Mon Nov 13 19:18:43 2006 New Revision: 474639 URL: http://svn.apache.org/viewvc?view=rev&rev=474639 Log: DEP-43 applied patch from Richard van der Hoff to allow include/exclude by classifier. Also updated site docs.
Added: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/AbstractArtifactFeatureFilter.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/ClassifierFilter.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestClassifierFilter.java Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/TypeFilter.java maven/plugins/trunk/maven-dependency-plugin/src/site/apt/usage.apt maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestTypeFilter.java Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java?view=diff&rev=474639&r1=474638&r2=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java Mon Nov 13 19:18:43 2006 @@ -22,6 +22,7 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.dependency.utils.DependencyStatusSets; import org.apache.maven.plugin.dependency.utils.filters.ArtifactsFilter; +import org.apache.maven.plugin.dependency.utils.filters.ClassifierFilter; import org.apache.maven.plugin.dependency.utils.filters.FilterArtifacts; import org.apache.maven.plugin.dependency.utils.filters.ScopeFilter; import org.apache.maven.plugin.dependency.utils.filters.TransitivityFilter; @@ -82,6 +83,24 @@ protected String excludeScope; /** + * Comma Separated list of Classifiers to include. Empty String indicates include + * everything (default). + * @since 2.0 + * @parameter expression="${includeClassifiers}" default-value="" + * @optional + */ + protected String includeClassifiers; + + /** + * Comma Separated list of Classifiers to exclude. Empty String indicates don't + * exclude anything (default). Ignored if includeClassifiers is used. + * @since 2.0 + * @parameter expression="${excludeClassifiers}" default-value="" + * @optional + */ + protected String excludeClassifiers; + + /** * Specify classifier to look for. Example: sources * @optional * @since 2.0 @@ -158,6 +177,7 @@ filter.addFilter( new TransitivityFilter( project.getDependencyArtifacts(), this.excludeTransitive ) ); filter.addFilter( new ScopeFilter( this.includeScope, this.excludeScope ) ); filter.addFilter( new TypeFilter( this.includeTypes, this.excludeTypes ) ); + filter.addFilter( new ClassifierFilter( this.includeClassifiers, this.excludeClassifiers ) ); // start with all artifacts. Set artifacts = project.getArtifacts(); Added: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/AbstractArtifactFeatureFilter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/AbstractArtifactFeatureFilter.java?view=auto&rev=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/AbstractArtifactFeatureFilter.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/AbstractArtifactFeatureFilter.java Mon Nov 13 19:18:43 2006 @@ -0,0 +1,209 @@ +/* + * 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. + */ + +package org.apache.maven.plugin.dependency.utils.filters; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.plugin.logging.Log; +import org.codehaus.plexus.util.StringUtils; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +/** + * This is the common base class of ClassifierFilter and TypeFilter + * + * @author <a href="[EMAIL PROTECTED]">Richard van der Hoff</a> + */ +public abstract class AbstractArtifactFeatureFilter implements ArtifactsFilter { + /** The list of types or classifiers to include */ + private List includes; + + /** The list of types or classifiers to exclude (ignored if includes != null) */ + private List excludes; + + /** The configuration string for the include list - comma separated */ + private String includeString; + + /** The configuration string for the exclude list - comma separated */ + private String excludeString; + + /** The name of the feature we are filtering on - for logging - "Classifiers" or "Types" */ + private String featureName; + + public AbstractArtifactFeatureFilter( String include, String exclude, String featureName ) + { + setExcludes( exclude ); + setIncludes( include ); + this.featureName = featureName; + } + + /** + * This function determines if filtering needs to be performed. Excludes are + * ignored if Includes are used. + * + * @param dependencies + * the set of dependencies to filter. + * + * @return a Set of filtered dependencies. + */ + public Set filter( Set artifacts, Log log ) + { + Set results = artifacts; + + if ( this.includes != null && !this.includes.isEmpty() ) + { + log.debug( "Including only "+featureName+": " + this.includeString ); + results = filterIncludes( artifacts, this.includes ); + } + else + { + if ( this.excludes != null && !this.excludes.isEmpty() ) + { + log.debug( "Excluding "+featureName+": " + this.excludeString ); + results = filterExcludes( artifacts, this.excludes ); + } + } + return results; + } + + /** + * Processes the dependencies list and includes the dependencies that match + * a filter in the list. + * + * @param depends + * List of dependencies. + * @param includes + * List of types or classifiers to include. + * + * @return a set of filtered artifacts. + */ + private Set filterIncludes( Set artifacts, List theIncludes ) + { + Set result = new HashSet(); + + Iterator includeIter = theIncludes.iterator(); + while ( includeIter.hasNext() ) + { + String include = (String) includeIter.next(); + Iterator iter = artifacts.iterator(); + while ( iter.hasNext() ) + { + Artifact artifact = (Artifact) iter.next(); + + // if the classifier or type of the artifact matches the feature to include, add to the + // results + if ( getArtifactFeature(artifact).equals( include ) ) + { + result.add( artifact ); + } + } + } + return result; + } + + /** + * Processes the dependencies list and excludes the dependencies that match + * a filter in the list. + * + * @param depends + * List of dependencies. + * @param excludes + * List of types or classifiers to exclude. + * + * @return a set of filtered artifacts. + */ + private Set filterExcludes( Set artifacts, List theExcludes ) + { + Set result = new HashSet(); + + Iterator iter = artifacts.iterator(); + while ( iter.hasNext() ) + { + boolean exclude = false; + Artifact artifact = (Artifact) iter.next(); + String artifactFeature = getArtifactFeature(artifact); + + // look through all types or classifiers. If no matches are found + // then it can be added to the results. + Iterator excludeIter = theExcludes.iterator(); + while ( excludeIter.hasNext() ) + { + String excludeFeature = (String) excludeIter.next(); + if ( artifactFeature.equals( excludeFeature ) ) + { + exclude = true; + break; + } + } + + if ( !exclude ) + { + result.add( artifact ); + } + } + + return result; + } + + + + /** + * Should return the type or classifier of the given artifact, so that we can filter it + * + * @param artifact artifact to return type or classifier of + * @return type or classifier + */ + protected abstract String getArtifactFeature(Artifact artifact); + + public void setExcludes( String excludeString ) + { + this.excludeString = excludeString; + + if ( StringUtils.isNotEmpty( excludeString ) ) + { + this.excludes = Arrays.asList( StringUtils.split( excludeString, "," ) ); + } + } + + + public void setIncludes( String includeString ) + { + this.includeString = includeString; + + if ( StringUtils.isNotEmpty( includeString ) ) + { + this.includes = Arrays.asList( StringUtils.split( includeString, "," ) ); + } + } + + /** + * @return Returns the excludes. + */ + public List getExcludes() + { + return this.excludes; + } + + /** + * @return Returns the includes. + */ + public List getIncludes() + { + return this.includes; + } +} Added: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/ClassifierFilter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/ClassifierFilter.java?view=auto&rev=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/ClassifierFilter.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/ClassifierFilter.java Mon Nov 13 19:18:43 2006 @@ -0,0 +1,33 @@ +/* + * Copyright 2006 MX Telecom Ltd. <[EMAIL PROTECTED]> + * + * 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. + */ +package org.apache.maven.plugin.dependency.utils.filters; + +import org.apache.maven.artifact.Artifact; + +public class ClassifierFilter extends AbstractArtifactFeatureFilter +{ + public ClassifierFilter( String include, String exclude ) + { + super(include,exclude,"Classifiers"); + } + + /* (non-Javadoc) + * @see org.apache.maven.plugin.dependency.utils.filters.AbstractArtifactFeatureFilter#getArtifactFeature(org.apache.maven.artifact.Artifact) + */ + protected String getArtifactFeature(Artifact artifact) { + return artifact.getClassifier(); + } + } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/TypeFilter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/TypeFilter.java?view=diff&rev=474639&r1=474638&r2=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/TypeFilter.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/filters/TypeFilter.java Mon Nov 13 19:18:43 2006 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Brian Fox ([EMAIL PROTECTED]) + * Copyright 2006 MX Telecom Ltd. <[EMAIL PROTECTED]> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,182 +15,19 @@ */ package org.apache.maven.plugin.dependency.utils.filters; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - import org.apache.maven.artifact.Artifact; -import org.apache.maven.plugin.logging.Log; -import org.codehaus.plexus.util.StringUtils; -public class TypeFilter - implements ArtifactsFilter +public class TypeFilter extends AbstractArtifactFeatureFilter { - private List includeTypes; - - private List excludeTypes; - - private String includeString; - - private String excludeString; - public TypeFilter( String include, String exclude ) { - setExcludeTypes( exclude ); - setIncludeTypes( include ); - } - - /** - * This function determines if filtering needs to be performed. Excludes are - * ignored if Includes are used. - * - * @param dependencies - * the set of dependencies to filter. - * - * @return a Set of filtered dependencies. - */ - public Set filter( Set artifacts, Log log ) - { - Set results = artifacts; - - if ( this.includeTypes != null && !this.includeTypes.isEmpty() ) - { - log.debug( "Including only Types: " + this.includeString ); - results = filterIncludes( artifacts, this.includeTypes ); - } - else - { - if ( this.excludeTypes != null && !this.excludeTypes.isEmpty() ) - { - log.debug( "Excluding Types: " + this.excludeString ); - results = filterExcludes( artifacts, this.excludeTypes ); - } - } - return results; - } - - /** - * Processes the dependencies list and includes the dependencies that match - * a type in the list. - * - * @param depends - * List of dependencies. - * @param types - * List of types to include. - * - * @return a set of filtered types. - */ - private Set filterIncludes( Set artifacts, List types ) - { - Set result = new HashSet(); - - Iterator typeIter = types.iterator(); - while ( typeIter.hasNext() ) - { - String artifactType = (String) typeIter.next(); - Iterator iter = artifacts.iterator(); - while ( iter.hasNext() ) - { - Artifact artifact = (Artifact) iter.next(); - - // if the type matches the type, add to the - // results - if ( artifact.getType().equals( artifactType ) ) - { - result.add( artifact ); - } - } - } - return result; - } - - /** - * Processes the dependencies list and excludes the dependencies that match - * a type in the list. - * - * @param depends - * List of dependencies. - * @param types - * List of types to exclude. - * - * @return a set of filtered types. - */ - private Set filterExcludes( Set artifacts, List types ) - { - Set result = new HashSet(); - - Iterator iter = artifacts.iterator(); - while ( iter.hasNext() ) - { - boolean exclude = false; - Artifact artifact = (Artifact) iter.next(); - - // look through all types. If no matches are found - // then it can be added to the results. - Iterator typeIter = types.iterator(); - while ( typeIter.hasNext() ) - { - String artifactType = (String) typeIter.next(); - if ( artifact.getType().equals( artifactType ) ) - { - exclude = true; - break; - } - } - - if ( !exclude ) - { - result.add( artifact ); - } - } - - return result; - } - - /** - * @param includeTypes - * The includeTypes to set. - */ - public void setExcludeTypes( String excludeTypeString ) - { - this.excludeString = excludeTypeString; - - if ( StringUtils.isNotEmpty( excludeTypeString ) ) - { - this.excludeTypes = Arrays.asList( StringUtils.split( excludeTypeString, "," ) ); - } - } - - /** - * @param includeTypes - * The includeTypes to set. - */ - public void setIncludeTypes( String includeTypeString ) - { - this.includeString = includeTypeString; - - if ( StringUtils.isNotEmpty( includeTypeString ) ) - { - this.includeTypes = Arrays.asList( StringUtils.split( includeTypeString, "," ) ); - } - } - - /** - * @return Returns the excludeTypes. - */ - public List getExcludeTypes() - { - return this.excludeTypes; + super(include, exclude, "Types"); } - /** - * @return Returns the includeTypes. + /* (non-Javadoc) + * @see org.apache.maven.plugin.dependency.utils.filters.AbstractArtifactFeatureFilter#getArtifactFeature(org.apache.maven.artifact.Artifact) */ - public List getIncludeTypes() - { - return this.includeTypes; + protected String getArtifactFeature(Artifact artifact) { + return artifact.getType(); } - } Modified: maven/plugins/trunk/maven-dependency-plugin/src/site/apt/usage.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/site/apt/usage.apt?view=diff&rev=474639&r1=474638&r2=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/site/apt/usage.apt (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/site/apt/usage.apt Mon Nov 13 19:18:43 2006 @@ -99,7 +99,7 @@ <<<mvn dependency:copy-dependencies -Dclassifer=sources>>> will try to find the sources for all dependencies and copy them. - Also included is the ability to include or exclude by type (war, jar etc) and / or scope (runtime, test etc). + Also included is the ability to include or exclude by type (war, jar etc), scope (runtime, test, etc), classifier (jdk14, sources, etc) or a combination of all three. Artifacts are copied using the following rules: @@ -219,7 +219,7 @@ <<<mvn dependency:unpack-dependencies -Dclassifer=sources>>> will try to find the sources for all dependencies and unpack them. - Also included is the ability to include or exclude by type (war, jar etc) and / or scope (runtime, test etc). + Also included is the ability to include or exclude by type (war, jar etc), scope (runtime, test, etc), classifier (jdk14, sources, etc) or a combination of all three. Artifacts are copied using the following rules: Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java?view=diff&rev=474639&r1=474638&r2=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java Mon Nov 13 19:18:43 2006 @@ -190,6 +190,60 @@ assertTrue( mojo.outputDirectory.delete() ); } + public void testCopyDependenciesMojoExcludeClassifier() + throws Exception + { + mojo.project.setArtifacts( stubFactory.getClassifiedArtifacts() ); + mojo.project.setDependencyArtifacts( new HashSet() ); + mojo.excludeClassifiers = "one"; + mojo.execute(); + + // test - get all direct dependencies and verify that they exist if they + // do not have a classifier of "one" + // then delete the file and at the end, verify the folder is empty. + Iterator iter = mojo.project.getArtifacts().iterator(); + while ( iter.hasNext() ) + { + Artifact artifact = (Artifact) iter.next(); + String fileName = DependencyUtil.getFormattedFileName( artifact, false ); + File file = new File( mojo.outputDirectory, fileName ); + assertEquals( artifact.getClassifier().equals( "one" ), !file.exists() ); + file.delete(); + assertFalse( file.exists() ); + } + // assumes you can't delete a folder that has files. + assertTrue( mojo.outputDirectory.delete() ); + } + + public void testCopyDependenciesMojoIncludeClassifier() + throws Exception + { + mojo.project.setArtifacts( stubFactory.getClassifiedArtifacts() ); + mojo.project.setDependencyArtifacts( new HashSet() ); + + mojo.includeClassifiers = "one"; + // if include is used, exclude should be ignored. + mojo.excludeClassifiers = "one"; + + mojo.execute(); + + // test - get all direct dependencies and verify that they exist only if + // they are a jar + // then delete the file and at the end, verify the folder is empty. + Iterator iter = mojo.project.getArtifacts().iterator(); + while ( iter.hasNext() ) + { + Artifact artifact = (Artifact) iter.next(); + String fileName = DependencyUtil.getFormattedFileName( artifact, false ); + File file = new File( mojo.outputDirectory, fileName ); + assertEquals( artifact.getClassifier().equals( "one" ), file.exists() ); + file.delete(); + assertFalse( file.exists() ); + } + // assumes you can't delete a folder that has files. + assertTrue( mojo.outputDirectory.delete() ); + } + public void testCopyDependenciesMojoSubPerType() throws Exception { @@ -588,4 +642,4 @@ assertEquals( mojo.getDependencies( true ).toString(), mojo.getDependencySets( true ).getResolvedDependencies() .toString() ); } -} \ No newline at end of file +} Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java?view=diff&rev=474639&r1=474638&r2=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java Mon Nov 13 19:18:43 2006 @@ -194,6 +194,17 @@ return set; } + public Set getClassifiedArtifacts() + throws IOException + { + Set set = new HashSet(); + set.add( createArtifact( "g", "a", "1.0", Artifact.SCOPE_COMPILE, "jar", "one" ) ); + set.add( createArtifact( "g", "b", "1.0", Artifact.SCOPE_COMPILE, "jar", "two" ) ); + set.add( createArtifact( "g", "c", "1.0", Artifact.SCOPE_COMPILE, "jar", "three" ) ); + set.add( createArtifact( "g", "d", "1.0", Artifact.SCOPE_COMPILE, "jar", "four" ) ); + return set; + } + public Set getTypedArchiveArtifacts() throws IOException { Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestClassifierFilter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestClassifierFilter.java?view=auto&rev=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestClassifierFilter.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestClassifierFilter.java Mon Nov 13 19:18:43 2006 @@ -0,0 +1,101 @@ +/* + * Copyright 2005-2006 Brian Fox ([EMAIL PROTECTED]) + * + * 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. + */ +/** + * + */ +package org.apache.maven.plugin.dependency.utils.filters; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import junit.framework.TestCase; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.plugin.dependency.utils.ArtifactStubFactory; +import org.apache.maven.plugin.dependency.utils.SilentLog; +import org.apache.maven.plugin.logging.Log; + +/** + * @author brianf + * + */ +public class TestClassifierFilter + extends TestCase +{ + Set artifacts = new HashSet(); + + Log log = new SilentLog(); + + protected void setUp() + throws Exception + { + super.setUp(); + + ArtifactStubFactory factory = new ArtifactStubFactory( null, false ); + artifacts = factory.getClassifiedArtifacts(); + } + + public void testClassifierParsing() + { + ClassifierFilter filter = new ClassifierFilter( "one,two", "three,four," ); + List includes = filter.getIncludes(); + List excludes = filter.getExcludes(); + + assertEquals( 2, includes.size() ); + assertEquals( 2, excludes.size() ); + assertEquals( "one", includes.get( 0 ).toString() ); + assertEquals( "two", includes.get( 1 ).toString() ); + assertEquals( "three", excludes.get( 0 ).toString() ); + assertEquals( "four", excludes.get( 1 ).toString() ); + } + + public void testFiltering() + { + ClassifierFilter filter = new ClassifierFilter( "one,two", "one,three," ); + Set result = filter.filter( artifacts, log ); + assertEquals( 2, result.size() ); + + Iterator iter = result.iterator(); + while ( iter.hasNext() ) + { + Artifact artifact = (Artifact) iter.next(); + assertTrue( artifact.getClassifier().equals( "one" ) || artifact.getClassifier().equals( "two" ) ); + } + } + + public void testFiltering2() + { + ClassifierFilter filter = new ClassifierFilter( null, "one,three," ); + Set result = filter.filter( artifacts, log ); + assertEquals( 2, result.size() ); + + Iterator iter = result.iterator(); + while ( iter.hasNext() ) + { + Artifact artifact = (Artifact) iter.next(); + assertTrue( artifact.getClassifier().equals( "two" ) || artifact.getClassifier().equals( "four" ) ); + } + } + + public void testFiltering3() + { + ClassifierFilter filter = new ClassifierFilter( null, null ); + Set result = filter.filter( artifacts, log ); + assertEquals( 4, result.size() ); + } +} Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestTypeFilter.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestTypeFilter.java?view=diff&rev=474639&r1=474638&r2=474639 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestTypeFilter.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestTypeFilter.java Mon Nov 13 19:18:43 2006 @@ -53,8 +53,8 @@ public void testTypeParsing() { TypeFilter filter = new TypeFilter( "war,jar", "sources,zip," ); - List includes = filter.getIncludeTypes(); - List excludes = filter.getExcludeTypes(); + List includes = filter.getIncludes(); + List excludes = filter.getExcludes(); assertEquals( 2, includes.size() ); assertEquals( 2, excludes.size() );