Author: brett
Date: Tue Jul 19 19:27:18 2005
New Revision: 219833
URL: http://svn.apache.org/viewcvs?rev=219833&view=rev
Log:
PR: MNG-505
prepare for version ranges in the artifact collector
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java?rev=219833&r1=219832&r2=219833&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
Tue Jul 19 19:27:18 2005
@@ -41,11 +41,6 @@
private final String artifactId;
/**
- * The resolved version for the artifact after conflict resolution and all
transformations.
- */
- private String version;
-
- /**
* The resolved version for the artifact after conflict resolution, that
has not been transformed.
*
* @todo should be final
@@ -72,6 +67,10 @@
private List dependencyTrail;
+ private String version;
+
+ private VersionRange versionRange;
+
public DefaultArtifact( String groupId, String artifactId, VersionRange
versionRange, String scope, String type,
String classifier, ArtifactHandler artifactHandler
)
{
@@ -79,8 +78,9 @@
this.artifactId = artifactId;
- // TODO: this would be where we might have a min/max instead
- this.version = versionRange != null ?
versionRange.getRecommendedVersion().toString() : null;
+ this.versionRange = versionRange;
+
+ this.version = versionRange == null ? null :
versionRange.getRecommendedVersion().toString();
this.artifactHandler = artifactHandler;
@@ -97,23 +97,26 @@
{
if ( empty( groupId ) )
{
- throw new InvalidArtifactRTException( groupId, artifactId,
version, type, "The groupId cannot be empty." );
+ throw new InvalidArtifactRTException( groupId, artifactId,
getVersion(), type,
+ "The groupId cannot be
empty." );
}
if ( artifactId == null )
{
- throw new InvalidArtifactRTException( groupId, artifactId,
version, type,
+ throw new InvalidArtifactRTException( groupId, artifactId,
getVersion(), type,
"The artifactId cannot be
empty." );
}
if ( type == null )
{
- throw new InvalidArtifactRTException( groupId, artifactId,
version, type, "The type cannot be empty." );
+ throw new InvalidArtifactRTException( groupId, artifactId,
getVersion(), type,
+ "The type cannot be empty."
);
}
- if ( version == null )
+ if ( getVersion() == null )
{
- throw new InvalidArtifactRTException( groupId, artifactId,
version, type, "The version cannot be empty." );
+ throw new InvalidArtifactRTException( groupId, artifactId,
getVersion(), type,
+ "The version cannot be
empty." );
}
}
@@ -155,6 +158,7 @@
public void setVersion( String version )
{
this.version = version;
+ this.versionRange = null;
}
public String getType()
@@ -264,6 +268,9 @@
{
return false;
}
+
+ // We don't consider the version range in the comparison, just the
resolved version
+
return true;
}
@@ -319,6 +326,7 @@
}
if ( result == 0 )
{
+ // We don't consider the version range in the
comparison, just the resolved version
result = version.compareTo( a.getVersion() );
}
}
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?rev=219833&r1=219832&r2=219833&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
Tue Jul 19 19:27:18 2005
@@ -70,7 +70,7 @@
for ( Iterator i = resolvedArtifacts.values().iterator(); i.hasNext();
)
{
ResolutionNode node = (ResolutionNode) i.next();
- if ( node != root )
+ if ( !node.equals( root ) )
{
Artifact artifact = node.getArtifact();
@@ -120,11 +120,11 @@
// previous one is more dominant
if ( previous.getDepth() <= node.getDepth() )
{
- checkScopeUpdate( node, previous, artifactFactory, listeners );
+ checkScopeUpdate( node, previous, listeners );
}
else
{
- checkScopeUpdate( previous, node, artifactFactory, listeners );
+ checkScopeUpdate( previous, node, listeners );
}
if ( previous.getDepth() <= node.getDepth() )
@@ -147,14 +147,15 @@
{
try
{
- ResolutionGroup rGroup = source.retrieve(
child.getArtifact(), localRepository, remoteRepositories );
+ ResolutionGroup rGroup = source.retrieve(
child.getArtifact(), localRepository,
+
remoteRepositories );
child.addDependencies( rGroup.getArtifacts(),
rGroup.getResolutionRepositories(), filter );
}
catch ( CyclicDependencyException e )
{
// would like to throw this, but we have crappy stuff in
the repo
// no logger to use here either just now
-
+
// TODO: should the remoteRepositories list be null here?!
fireEvent( ResolutionListener.OMIT_FOR_CYCLE, listeners,
new ResolutionNode( e.getArtifact(), null,
child ) );
@@ -174,15 +175,14 @@
fireEvent( ResolutionListener.FINISH_PROCESSING_CHILDREN, listeners,
node );
}
- private void checkScopeUpdate( ResolutionNode node, ResolutionNode
previous, ArtifactFactory artifactFactory,
- List listeners )
+ private void checkScopeUpdate( ResolutionNode node, ResolutionNode
previous, List listeners )
{
boolean updateScope = false;
Artifact newArtifact = node.getArtifact();
Artifact previousArtifact = previous.getArtifact();
- if ( Artifact.SCOPE_RUNTIME.equals( newArtifact.getScope() ) &&
- ( Artifact.SCOPE_TEST.equals( previousArtifact.getScope() ) ||
+ if ( Artifact.SCOPE_RUNTIME.equals( newArtifact.getScope() ) && (
+ Artifact.SCOPE_TEST.equals( previousArtifact.getScope() ) ||
Artifact.SCOPE_PROVIDED.equals( previousArtifact.getScope() )
) )
{
updateScope = true;
@@ -198,12 +198,10 @@
{
fireEvent( ResolutionListener.UPDATE_SCOPE, listeners, previous,
newArtifact );
- Artifact artifact = artifactFactory.createArtifact(
previousArtifact.getGroupId(),
-
previousArtifact.getArtifactId(),
-
previousArtifact.getVersion(), newArtifact.getScope(),
-
previousArtifact.getType() );
- // TODO: can I just change the scope?
- previous.setArtifact( artifact );
+ // previously we cloned the artifact, but it is more effecient to
just update the scope
+ // if problems are later discovered that the original object needs
its original scope value, cloning may
+ // again be appropriate
+ previousArtifact.setScope( newArtifact.getScope() );
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]