You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/02/15 07:24:38 UTC
svn commit: r627958 - in
/maven/shared/trunk/maven-common-artifact-filters/src:
main/java/org/apache/maven/shared/artifact/filter/collection/
test/java/org/apache/maven/shared/artifact/filter/collection/
Author: brianf
Date: Thu Feb 14 22:24:35 2008
New Revision: 627958
URL: http://svn.apache.org/viewvc?rev=627958&view=rev
Log:
a new filter to keep only things that are dependencies of the selected dependency/artifact
Added:
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java
- copied, changed from r607996, maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/TransitivityFilter.java
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestProjectTransitivityFilter.java
- copied, changed from r607996, maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTransitivityFilter.java
Removed:
maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/TransitivityFilter.java
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTransitivityFilter.java
Modified:
maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestFilterArtifacts.java
Added: maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java?rev=627958&view=auto
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java (added)
+++ maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java Thu Feb 14 22:24:35 2008
@@ -0,0 +1,137 @@
+package org.apache.maven.shared.artifact.filter.collection;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 java.util.Collection;
+import java.util.Collections;
+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.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.artifact.InvalidDependencyVersionException;
+
+/**
+ * This filter will exclude everything that is not a dependency of the selected artifact.
+ *
+ * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
+ * @version $Id: TransitivityFilter.java 607996 2008-01-02 04:01:32Z brianf $
+ */
+public class ArtifactTransitivityFilter
+ extends AbstractArtifactsFilter
+{
+
+ Collection transitiveArtifacts;
+
+ ArtifactFactory factory;
+
+ ArtifactRepository local;
+
+ List remote;
+
+ public ArtifactTransitivityFilter( Artifact artifact, ArtifactFactory factory, ArtifactRepository local,
+ List remote, MavenProjectBuilder builder )
+ throws ProjectBuildingException, InvalidDependencyVersionException
+ {
+ this.factory = factory;
+ this.local = local;
+ this.remote = remote;
+
+ Artifact rootArtifactPom =
+ factory.createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), "", "pom" );
+
+ MavenProject rootArtifactProject = builder.buildFromRepository( rootArtifactPom, remote, local );
+
+ // load all the artifacts.
+ transitiveArtifacts =
+ rootArtifactProject.createArtifacts( this.factory, Artifact.SCOPE_TEST,
+ new ScopeArtifactFilter( Artifact.SCOPE_TEST ) );
+
+ }
+
+ public ArtifactTransitivityFilter( Dependency dependency, ArtifactFactory factory, ArtifactRepository local,
+ List remote, MavenProjectBuilder builder )
+ throws ProjectBuildingException, InvalidDependencyVersionException
+ {
+
+ this.factory = factory;
+ this.local = local;
+ this.remote = remote;
+
+ Artifact rootArtifactPom =
+ factory.createArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), "",
+ "pom" );
+
+ MavenProject rootArtifactProject = builder.buildFromRepository( rootArtifactPom, remote, local );
+
+ // load all the artifacts.
+ transitiveArtifacts =
+ rootArtifactProject.createArtifacts( this.factory, Artifact.SCOPE_TEST,
+ new ScopeArtifactFilter( Artifact.SCOPE_TEST ) );
+
+ }
+
+ public Set filter( Set artifacts )
+ {
+
+ Set result = new HashSet();
+ Iterator iterator = artifacts.iterator();
+ while ( iterator.hasNext() )
+ {
+ Artifact artifact = (Artifact) iterator.next();
+ if ( artifactIsATransitiveDependency( artifact ) )
+ {
+ result.add( artifact );
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Compares the artifact to the list of dependencies to see if it is directly included by this project
+ *
+ * @param artifact representing the item to compare.
+ * @return true if artifact is a transitive dependency
+ */
+ public boolean artifactIsATransitiveDependency( Artifact artifact )
+ {
+ boolean result = false;
+ Iterator iterator = transitiveArtifacts.iterator();
+ while ( iterator.hasNext() )
+ {
+ Artifact trans = (Artifact) iterator.next();
+ if ( trans.getGroupId().equals( artifact.getGroupId() ) &&
+ trans.getArtifactId().equals( artifact.getArtifactId() ) )
+ {
+ result = true;
+ break;
+ }
+ }
+ return result;
+ }
+}
Copied: maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java (from r607996, maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/TransitivityFilter.java)
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java?p2=maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java&p1=maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/TransitivityFilter.java&r1=607996&r2=627958&rev=627958&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/TransitivityFilter.java (original)
+++ maven/shared/trunk/maven-common-artifact-filters/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java Thu Feb 14 22:24:35 2008
@@ -29,7 +29,7 @@
* @author <a href="mailto:brianf@apache.org">Brian Fox</a>
* @version $Id$
*/
-public class TransitivityFilter
+public class ProjectTransitivityFilter
extends AbstractArtifactsFilter
{
@@ -37,7 +37,7 @@
private Set directDependencies;
- public TransitivityFilter( Set directDependencies, boolean excludeTransitive )
+ public ProjectTransitivityFilter( Set directDependencies, boolean excludeTransitive )
{
this.excludeTransitive = excludeTransitive;
this.directDependencies = directDependencies;
Modified: maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestFilterArtifacts.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestFilterArtifacts.java?rev=627958&r1=627957&r2=627958&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestFilterArtifacts.java (original)
+++ maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestFilterArtifacts.java Thu Feb 14 22:24:35 2008
@@ -84,7 +84,7 @@
FilterArtifacts fa = new FilterArtifacts();
ArtifactsFilter scope = new ScopeFilter( "compile", "system" );
ArtifactsFilter type = new TypeFilter( "jar", "war" );
- ArtifactsFilter trans = new TransitivityFilter( a, true );
+ ArtifactsFilter trans = new ProjectTransitivityFilter( a, true );
assertEquals( 0, fa.getFilters().size() );
fa.addFilter( scope );
@@ -96,7 +96,7 @@
fa.addFilter( 1, trans );
assertEquals( 3, fa.getFilters().size() );
assertTrue( fa.getFilters().get( 0 ) instanceof ScopeFilter );
- assertTrue( fa.getFilters().get( 1 ) instanceof TransitivityFilter );
+ assertTrue( fa.getFilters().get( 1 ) instanceof ProjectTransitivityFilter );
assertTrue( fa.getFilters().get( 2 ) instanceof TypeFilter );
ArrayList list = new ArrayList();
@@ -108,7 +108,7 @@
fa.setFilters( list );
assertEquals( 3, fa.getFilters().size() );
assertTrue( fa.getFilters().get( 0 ) instanceof ScopeFilter );
- assertTrue( fa.getFilters().get( 1 ) instanceof TransitivityFilter );
+ assertTrue( fa.getFilters().get( 1 ) instanceof ProjectTransitivityFilter );
assertTrue( fa.getFilters().get( 2 ) instanceof TypeFilter );
}
Copied: maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestProjectTransitivityFilter.java (from r607996, maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTransitivityFilter.java)
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestProjectTransitivityFilter.java?p2=maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestProjectTransitivityFilter.java&p1=maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTransitivityFilter.java&r1=607996&r2=627958&rev=627958&view=diff
==============================================================================
--- maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTransitivityFilter.java (original)
+++ maven/shared/trunk/maven-common-artifact-filters/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestProjectTransitivityFilter.java Thu Feb 14 22:24:35 2008
@@ -34,7 +34,7 @@
/**
* @author <a href="mailto:brianf@apache.org">Brian Fox</a>
*/
-public class TestTransitivityFilter
+public class TestProjectTransitivityFilter
extends TestCase
{
Set artifacts = new HashSet();
@@ -56,7 +56,7 @@
public void testAll()
{
- TransitivityFilter filter = new TransitivityFilter( directArtifacts, false );
+ ProjectTransitivityFilter filter = new ProjectTransitivityFilter( directArtifacts, false );
Set result = filter.filter( artifacts );
@@ -65,7 +65,7 @@
public void testExclude()
{
- TransitivityFilter filter = new TransitivityFilter( directArtifacts, false );
+ ProjectTransitivityFilter filter = new ProjectTransitivityFilter( directArtifacts, false );
assertFalse( filter.isExcludeTransitive() );
filter.setExcludeTransitive( true );
assertTrue( filter.isExcludeTransitive() );