mirror of https://github.com/apache/maven.git
PR: MNG-614
don't select RELEASE - use the version information git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@291575 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5637c28498
commit
19ebd621e7
|
@ -428,7 +428,7 @@ public class VersionRange
|
|||
public boolean isSelectedVersionKnown()
|
||||
throws OverConstrainedVersionException
|
||||
{
|
||||
boolean value;
|
||||
boolean value = false;
|
||||
if ( recommendedVersion != null )
|
||||
{
|
||||
value = true;
|
||||
|
@ -443,12 +443,7 @@ public class VersionRange
|
|||
{
|
||||
Restriction restriction = (Restriction) restrictions.get( restrictions.size() - 1 );
|
||||
|
||||
if ( restriction.getUpperBound() == null )
|
||||
{
|
||||
// RELEASE version, considered known
|
||||
value = true;
|
||||
}
|
||||
else
|
||||
if ( restriction.getUpperBound() != null )
|
||||
{
|
||||
value = restriction.isUpperBoundInclusive();
|
||||
}
|
||||
|
|
|
@ -24,10 +24,12 @@ import org.apache.maven.artifact.metadata.ResolutionGroup;
|
|||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter;
|
||||
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
||||
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
|
||||
import org.apache.maven.artifact.versioning.VersionRange;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
@ -287,7 +289,7 @@ public class DefaultArtifactCollectorTest
|
|||
}
|
||||
}
|
||||
|
||||
public void testUnboundedRange()
|
||||
public void testUnboundedRangeWhenVersionUnavailable()
|
||||
throws ArtifactResolutionException, InvalidVersionSpecificationException
|
||||
{
|
||||
ArtifactSpec a = createArtifact( "a", "1.0" );
|
||||
|
@ -295,12 +297,48 @@ public class DefaultArtifactCollectorTest
|
|||
a.addDependency( "c", "[2.0,]" );
|
||||
b.addDependency( "c", "[1.0,]" );
|
||||
|
||||
try
|
||||
{
|
||||
ArtifactResolutionResult res = collect( a );
|
||||
fail( "Should not succeed collecting, got: " + res.getArtifacts() );
|
||||
}
|
||||
catch ( ArtifactResolutionException expected )
|
||||
{
|
||||
assertTrue( true );
|
||||
}
|
||||
}
|
||||
|
||||
public void testUnboundedRangeBelowLastRelease()
|
||||
throws ArtifactResolutionException, InvalidVersionSpecificationException
|
||||
{
|
||||
ArtifactSpec a = createArtifact( "a", "1.0" );
|
||||
createArtifact( "c", "1.5" );
|
||||
ArtifactSpec c = createArtifact( "c", "2.0" );
|
||||
createArtifact( "c", "1.1" );
|
||||
a.addDependency( "c", "[1.0,)" );
|
||||
|
||||
ArtifactResolutionResult res = collect( a );
|
||||
|
||||
ArtifactSpec c = createArtifact( "c", "RELEASE" );
|
||||
assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact, c.artifact} ),
|
||||
res.getArtifacts() );
|
||||
assertEquals( "Check version", "RELEASE", getArtifact( "c", res.getArtifacts() ).getVersion() );
|
||||
assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, c.artifact} ), res.getArtifacts() );
|
||||
assertEquals( "Check version", "2.0", getArtifact( "c", res.getArtifacts() ).getVersion() );
|
||||
}
|
||||
|
||||
public void testUnboundedRangeAboveLastRelease()
|
||||
throws ArtifactResolutionException, InvalidVersionSpecificationException
|
||||
{
|
||||
ArtifactSpec a = createArtifact( "a", "1.0" );
|
||||
createArtifact( "c", "2.0" );
|
||||
a.addDependency( "c", "[10.0,)" );
|
||||
|
||||
try
|
||||
{
|
||||
ArtifactResolutionResult res = collect( a );
|
||||
fail( "Should not succeed collecting, got: " + res.getArtifacts() );
|
||||
}
|
||||
catch ( ArtifactResolutionException expected )
|
||||
{
|
||||
assertTrue( true );
|
||||
}
|
||||
}
|
||||
|
||||
public void testResolveManagedVersion()
|
||||
|
@ -533,7 +571,7 @@ public class DefaultArtifactCollectorTest
|
|||
{
|
||||
spec = new ArtifactSpec();
|
||||
spec.artifact = artifact;
|
||||
source.artifacts.put( source.getKey( artifact ), spec );
|
||||
source.addArtifact( spec );
|
||||
}
|
||||
return spec;
|
||||
}
|
||||
|
@ -584,6 +622,8 @@ public class DefaultArtifactCollectorTest
|
|||
{
|
||||
private Map artifacts = new HashMap();
|
||||
|
||||
private Map versions = new HashMap();
|
||||
|
||||
public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository,
|
||||
List remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
|
@ -648,7 +688,29 @@ public class DefaultArtifactCollectorTest
|
|||
List remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
{
|
||||
throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
|
||||
List artifactVersions = (List) versions.get( artifact.getDependencyConflictId() );
|
||||
if ( artifactVersions == null )
|
||||
{
|
||||
artifactVersions = Collections.EMPTY_LIST;
|
||||
}
|
||||
return artifactVersions;
|
||||
}
|
||||
|
||||
public void addArtifact( ArtifactSpec spec )
|
||||
{
|
||||
artifacts.put( getKey( spec.artifact ), spec );
|
||||
|
||||
String key = spec.artifact.getDependencyConflictId();
|
||||
List artifactVersions = (List) versions.get( key );
|
||||
if ( artifactVersions == null )
|
||||
{
|
||||
artifactVersions = new ArrayList();
|
||||
versions.put( key, artifactVersions );
|
||||
}
|
||||
if ( spec.artifact.getVersion() != null )
|
||||
{
|
||||
artifactVersions.add( new DefaultArtifactVersion( spec.artifact.getVersion() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue