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 2005/10/19 06:11:11 UTC
svn commit: r326371 - in
/maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver:
DefaultArtifactCollector.java ResolutionNode.java
filter/ScopeArtifactFilter.java
Author: brett
Date: Tue Oct 18 21:10:53 2005
New Revision: 326371
URL: http://svn.apache.org/viewcvs?rev=326371&view=rev
Log:
merge from trunk rev 326363
Modified:
maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
Modified: maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewcvs/maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=326371&r1=326370&r2=326371&view=diff
==============================================================================
--- maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Tue Oct 18 21:10:53 2005
@@ -79,12 +79,15 @@
{
Artifact artifact = node.getArtifact();
- // If it was optional, we don't add it or its children, just allow the update of the version and scope
- if ( !node.getArtifact().isOptional() )
+ if ( node.filterTrail( filter ) )
{
- artifact.setDependencyTrail( node.getDependencyTrail() );
+ // If it was optional, we don't add it or its children, just allow the update of the version and scope
+ if ( !artifact.isOptional() )
+ {
+ artifact.setDependencyTrail( node.getDependencyTrail() );
- set.add( node );
+ set.add( node );
+ }
}
}
}
@@ -165,10 +168,12 @@
for ( int j = 0; j < 2; j++ )
{
Artifact resetArtifact = resetNodes[j].getArtifact();
- if ( resetArtifact.getVersion() == null && resetArtifact.getVersionRange() != null && resetArtifact.getAvailableVersions() != null )
+ if ( resetArtifact.getVersion() == null && resetArtifact.getVersionRange() != null &&
+ resetArtifact.getAvailableVersions() != null )
{
- resetArtifact.selectVersion( resetArtifact.getVersionRange().matchVersion( resetArtifact.getAvailableVersions() ).toString() );
+ resetArtifact.selectVersion( resetArtifact.getVersionRange().matchVersion(
+ resetArtifact.getAvailableVersions() ).toString() );
fireEvent( ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, resetNodes[j] );
}
}
Modified: maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
URL: http://svn.apache.org/viewcvs/maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java?rev=326371&r1=326370&r2=326371&view=diff
==============================================================================
--- maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java (original)
+++ maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java Tue Oct 18 21:10:53 2005
@@ -19,7 +19,6 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
-import org.apache.maven.artifact.versioning.VersionRange;
import java.util.ArrayList;
import java.util.Collections;
@@ -44,6 +43,8 @@
private boolean active = true;
+ private List trail;
+
public ResolutionNode( Artifact artifact, List remoteRepositories )
{
this.artifact = artifact;
@@ -85,45 +86,60 @@
{
Artifact a = (Artifact) i.next();
- if ( filter == null || filter.include( a ) )
+ if ( parents.contains( a.getDependencyConflictId() ) )
{
- if ( parents.contains( a.getDependencyConflictId() ) )
- {
- a.setDependencyTrail( getDependencyTrail() );
-
- throw new CyclicDependencyException( "A dependency has introduced a cycle", a );
- }
+ a.setDependencyTrail( getDependencyTrail() );
- children.add( new ResolutionNode( a, remoteRepositories, this ) );
+ throw new CyclicDependencyException( "A dependency has introduced a cycle", a );
}
+
+ children.add( new ResolutionNode( a, remoteRepositories, this ) );
}
}
else
{
children = Collections.EMPTY_LIST;
}
+ trail = null;
}
public List getDependencyTrail()
throws OverConstrainedVersionException
{
- List path = new LinkedList();
- ResolutionNode node = this;
- while ( node != null )
+ List trial = getTrail();
+
+ List ret = new ArrayList( trial.size() );
+ for ( Iterator i = trial.iterator(); i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
+ ret.add( artifact.getId() );
+ }
+ return ret;
+ }
+
+ private List getTrail()
+ throws OverConstrainedVersionException
+ {
+ if ( trail == null )
{
- Artifact artifact = node.getArtifact();
- if ( artifact.getVersion() == null )
+ List ids = new LinkedList();
+ ResolutionNode node = this;
+ while ( node != null )
{
- // set the recommended version
- VersionRange versionRange = artifact.getVersionRange();
- String version = artifact.getSelectedVersion().toString();
- artifact.selectVersion( version );
- }
+ Artifact artifact = node.getArtifact();
+ if ( artifact.getVersion() == null )
+ {
+ // set the recommended version
+ String version = artifact.getSelectedVersion().toString();
+ artifact.selectVersion( version );
+ }
- path.add( 0, artifact.getId() );
- node = node.parent;
+ ids.add( 0, artifact );
+ node = node.parent;
+ }
+ trail = ids;
}
- return path;
+ return trail;
}
public boolean isResolved()
@@ -176,5 +192,23 @@
node.disable();
}
}
+ }
+
+ public boolean filterTrail( ArtifactFilter filter )
+ throws OverConstrainedVersionException
+ {
+ boolean success = true;
+ if ( filter != null )
+ {
+ for ( Iterator i = getTrail().iterator(); i.hasNext() && success; )
+ {
+ Artifact artifact = (Artifact) i.next();
+ if ( !filter.include( artifact ) )
+ {
+ success = false;
+ }
+ }
+ }
+ return success;
}
}
Modified: maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
URL: http://svn.apache.org/viewcvs/maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java?rev=326371&r1=326370&r2=326371&view=diff
==============================================================================
--- maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java (original)
+++ maven/components/tags/maven-2.0/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java Tue Oct 18 21:10:53 2005
@@ -35,7 +35,7 @@
private final boolean testScope;
private final boolean providedScope;
-
+
private final boolean systemScope;
public ScopeArtifactFilter( String scope )
@@ -98,8 +98,7 @@
}
else
{
- // TODO: should this be true? Does it even happen?
- return false;
+ return true;
}
}
}