Author: brett
Date: Tue Jul 19 01:23:01 2005
New Revision: 219630
URL: http://svn.apache.org/viewcvs?rev=219630&view=rev
Log:
PR: MNG-505
use comparable versions in ranges
Modified:
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
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/versioning/DefaultArtifactVersion.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java
Modified:
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
(original)
+++
maven/components/trunk/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/DependenciesTask.java
Tue Jul 19 01:23:01 2005
@@ -23,7 +23,9 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
+import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Repository;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.artifact.MavenMetadataSource;
import org.apache.tools.ant.BuildException;
@@ -56,6 +58,9 @@
private boolean verbose;
+ /**
+ * @noinspection RefusedBequest
+ */
public void execute()
{
ArtifactRepository localRepo = createLocalArtifactRepository();
@@ -79,7 +84,7 @@
for ( Iterator i = pom.getRepositories().iterator(); i.hasNext(); )
{
- org.apache.maven.model.Repository pomRepository =
(org.apache.maven.model.Repository) i.next();
+ Repository pomRepository = (Repository) i.next();
remoteRepositories.add( createAntRemoteRepository(
pomRepository ) );
}
@@ -91,7 +96,15 @@
pom = createDummyPom();
}
- Set artifacts = MavenMetadataSource.createArtifacts( artifactFactory,
dependencies, null, null );
+ Set artifacts;
+ try
+ {
+ artifacts = MavenMetadataSource.createArtifacts( artifactFactory,
dependencies, null, null );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new BuildException( "Invalid version specification", e );
+ }
log( "Resolving dependencies..." );
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=219630&r1=219629&r2=219630&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 01:23:01 2005
@@ -80,7 +80,7 @@
this.artifactId = artifactId;
// TODO: this would be where we might have a min/max instead
- this.version = versionRange != null ?
versionRange.getRecommendedVersion() : null;
+ this.version = versionRange != null ?
versionRange.getRecommendedVersion().toString() : null;
this.artifactHandler = artifactHandler;
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
Tue Jul 19 01:23:01 2005
@@ -142,11 +142,11 @@
return qualifier;
}
- public void parseVersion( String version )
+ public final void parseVersion( String version )
{
int index = version.indexOf( "-" );
- String part1 = null;
+ String part1;
String part2 = null;
if ( index < 0 )
@@ -171,22 +171,40 @@
}
}
- StringTokenizer tok = new StringTokenizer( part1, "." );
- majorVersion = Integer.valueOf( tok.nextToken() );
- if ( tok.hasMoreTokens() )
+ if ( part1.indexOf( "." ) < 0 )
{
- minorVersion = Integer.valueOf( tok.nextToken() );
+ try
+ {
+ majorVersion = Integer.valueOf( part1 );
+ }
+ catch ( NumberFormatException e )
+ {
+ // qualifier is the whole version, including "-"
+ qualifier = version;
+ }
}
- if ( tok.hasMoreTokens() )
+ else
{
- incrementalVersion = Integer.valueOf( tok.nextToken() );
+ StringTokenizer tok = new StringTokenizer( part1, "." );
+ majorVersion = Integer.valueOf( tok.nextToken() );
+ if ( tok.hasMoreTokens() )
+ {
+ minorVersion = Integer.valueOf( tok.nextToken() );
+ }
+ if ( tok.hasMoreTokens() )
+ {
+ incrementalVersion = Integer.valueOf( tok.nextToken() );
+ }
}
}
public String toString()
{
StringBuffer buf = new StringBuffer();
- buf.append( majorVersion );
+ if ( majorVersion != null )
+ {
+ buf.append( majorVersion );
+ }
if ( minorVersion != null )
{
buf.append( "." );
@@ -204,7 +222,10 @@
}
else if ( qualifier != null )
{
- buf.append( "-" );
+ if ( buf.length() > 0 )
+ {
+ buf.append( "-" );
+ }
buf.append( qualifier );
}
return buf.toString();
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
Tue Jul 19 01:23:01 2005
@@ -24,15 +24,16 @@
*/
public class Restriction
{
- private final String lowerBound;
+ private final ArtifactVersion lowerBound;
private final boolean lowerBoundInclusive;
- private final String upperBound;
+ private final ArtifactVersion upperBound;
private final boolean upperBoundInclusive;
- public Restriction( String lowerBound, boolean lowerBoundInclusive, String
upperBound, boolean upperBoundInclusive )
+ public Restriction( ArtifactVersion lowerBound, boolean
lowerBoundInclusive, ArtifactVersion upperBound,
+ boolean upperBoundInclusive )
{
this.lowerBound = lowerBound;
this.lowerBoundInclusive = lowerBoundInclusive;
@@ -40,7 +41,7 @@
this.upperBoundInclusive = upperBoundInclusive;
}
- public String getLowerBound()
+ public ArtifactVersion getLowerBound()
{
return lowerBound;
}
@@ -50,7 +51,7 @@
return lowerBoundInclusive;
}
- public String getUpperBound()
+ public ArtifactVersion getUpperBound()
{
return upperBound;
}
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
Tue Jul 19 01:23:01 2005
@@ -28,17 +28,17 @@
*/
public class VersionRange
{
- private final String recommendedVersion;
+ private final ArtifactVersion recommendedVersion;
private final List restrictions;
- private VersionRange( String recommendedVersion, List restrictions )
+ private VersionRange( ArtifactVersion recommendedVersion, List
restrictions )
{
this.recommendedVersion = recommendedVersion;
this.restrictions = restrictions;
}
- public String getRecommendedVersion()
+ public ArtifactVersion getRecommendedVersion()
{
return recommendedVersion;
}
@@ -51,9 +51,9 @@
public static VersionRange createFromVersionSpec( String spec )
throws InvalidVersionSpecificationException
{
- List exclusions = new ArrayList();
+ List restrictions = new ArrayList();
String process = spec;
- String version = null;
+ ArtifactVersion version = null;
while ( process.startsWith( "[" ) || process.startsWith( "(" ) )
{
@@ -74,7 +74,7 @@
throw new InvalidVersionSpecificationException( "Unbounded
range: " + spec );
}
- exclusions.add( parseRestriction( process.substring( 0, index + 1
) ) );
+ restrictions.add( parseRestriction( process.substring( 0, index +
1 ) ) );
process = process.substring( index + 1 ).trim();
@@ -86,18 +86,18 @@
if ( process.length() > 0 )
{
- if ( exclusions.size() > 0 )
+ if ( restrictions.size() > 0 )
{
throw new InvalidVersionSpecificationException(
"Only fully-qualified sets allowed in multiple set
scenario: " + spec );
}
else
{
- version = process;
+ version = new DefaultArtifactVersion( process );
}
}
- return new VersionRange( version, exclusions );
+ return new VersionRange( version, restrictions );
}
private static Restriction parseRestriction( String spec )
@@ -118,7 +118,10 @@
{
throw new InvalidVersionSpecificationException( "Single
version must be surrounded by []: " + spec );
}
- restriction = new Restriction( process, lowerBoundInclusive,
process, upperBoundInclusive );
+
+ ArtifactVersion version = new DefaultArtifactVersion( process );
+
+ restriction = new Restriction( version, lowerBoundInclusive,
version, upperBoundInclusive );
}
else
{
@@ -129,16 +132,18 @@
throw new InvalidVersionSpecificationException( "Range cannot
have identical boundaries: " + spec );
}
- if ( lowerBound.length() == 0 )
+ ArtifactVersion lowerVersion = null;
+ if ( lowerBound.length() > 0 )
{
- lowerBound = null;
+ lowerVersion = new DefaultArtifactVersion( lowerBound );
}
- if ( upperBound.length() == 0 )
+ ArtifactVersion upperVersion = null;
+ if ( upperBound.length() > 0 )
{
- upperBound = null;
+ upperVersion = new DefaultArtifactVersion( upperBound );
}
- restriction = new Restriction( lowerBound, lowerBoundInclusive,
upperBound, upperBoundInclusive );
+ restriction = new Restriction( lowerVersion, lowerBoundInclusive,
upperVersion, upperBoundInclusive );
}
return restriction;
@@ -146,6 +151,27 @@
public static VersionRange createFromVersion( String version )
{
+ return new VersionRange( new DefaultArtifactVersion( version ),
Collections.EMPTY_LIST );
+ }
+
+ public VersionRange restrict( VersionRange restriction )
+ {
+ ArtifactVersion version = max( recommendedVersion,
restriction.getRecommendedVersion() );
+
+ // TODO
+
return new VersionRange( version, Collections.EMPTY_LIST );
+ }
+
+ private ArtifactVersion max( ArtifactVersion v1, ArtifactVersion v2 )
+ {
+ if ( v1.compareTo( v2 ) > 0 )
+ {
+ return v1;
+ }
+ else
+ {
+ return v2;
+ }
}
}
Modified:
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
(original)
+++
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
Tue Jul 19 01:23:01 2005
@@ -75,7 +75,15 @@
assertEquals( "check major version", 1, version.getMajorVersion() );
assertEquals( "check minor version", 2, version.getMinorVersion() );
assertEquals( "check incremental version", 0,
version.getIncrementalVersion() );
+ assertEquals( "check build number", 0, version.getBuildNumber() );
assertEquals( "check qualifier", "alpha-1-20050205.060708-1",
version.getQualifier() );
+
+ version = new DefaultArtifactVersion( "RELEASE" );
+ assertEquals( "check major version", 0, version.getMajorVersion() );
+ assertEquals( "check minor version", 0, version.getMinorVersion() );
+ assertEquals( "check incremental version", 0,
version.getIncrementalVersion() );
+ assertEquals( "check build number", 0, version.getBuildNumber() );
+ assertEquals( "check qualifier", "RELEASE", version.getQualifier() );
}
public void testVersionComparing()
Modified:
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
(original)
+++
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
Tue Jul 19 01:23:01 2005
@@ -50,22 +50,22 @@
Restriction restriction = (Restriction) restrictions.get( 0 );
assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
assertFalse( CHECK_LOWER_BOUND_INCLUSIVE,
restriction.isLowerBoundInclusive() );
- assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0",
restriction.getUpperBound().toString() );
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE,
restriction.isUpperBoundInclusive() );
assertNull( CHECK_VERSION_RECOMMENDATION,
range.getRecommendedVersion() );
range = VersionRange.createFromVersionSpec( "1.0" );
restrictions = range.getRestrictions();
assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
- assertEquals( CHECK_VERSION_RECOMMENDATION, "1.0",
range.getRecommendedVersion() );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.0",
range.getRecommendedVersion().toString() );
range = VersionRange.createFromVersionSpec( "[1.0]" );
restrictions = range.getRestrictions();
assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
restriction = (Restriction) restrictions.get( 0 );
- assertEquals( CHECK_LOWER_BOUND, "1.0", restriction.getLowerBound() );
+ assertEquals( CHECK_LOWER_BOUND, "1.0",
restriction.getLowerBound().toString() );
assertTrue( CHECK_LOWER_BOUND_INCLUSIVE,
restriction.isLowerBoundInclusive() );
- assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0",
restriction.getUpperBound().toString() );
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE,
restriction.isUpperBoundInclusive() );
assertNull( CHECK_VERSION_RECOMMENDATION,
range.getRecommendedVersion() );
@@ -73,9 +73,9 @@
restrictions = range.getRestrictions();
assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
restriction = (Restriction) restrictions.get( 0 );
- assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound() );
+ assertEquals( CHECK_LOWER_BOUND, "1.2",
restriction.getLowerBound().toString() );
assertTrue( CHECK_LOWER_BOUND_INCLUSIVE,
restriction.isLowerBoundInclusive() );
- assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3",
restriction.getUpperBound().toString() );
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE,
restriction.isUpperBoundInclusive() );
assertNull( CHECK_VERSION_RECOMMENDATION,
range.getRecommendedVersion() );
@@ -83,9 +83,9 @@
restrictions = range.getRestrictions();
assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
restriction = (Restriction) restrictions.get( 0 );
- assertEquals( CHECK_LOWER_BOUND, "1.0", restriction.getLowerBound() );
+ assertEquals( CHECK_LOWER_BOUND, "1.0",
restriction.getLowerBound().toString() );
assertTrue( CHECK_LOWER_BOUND_INCLUSIVE,
restriction.isLowerBoundInclusive() );
- assertEquals( CHECK_UPPER_BOUND, "2.0", restriction.getUpperBound() );
+ assertEquals( CHECK_UPPER_BOUND, "2.0",
restriction.getUpperBound().toString() );
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE,
restriction.isUpperBoundInclusive() );
assertNull( CHECK_VERSION_RECOMMENDATION,
range.getRecommendedVersion() );
@@ -93,7 +93,7 @@
restrictions = range.getRestrictions();
assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
restriction = (Restriction) restrictions.get( 0 );
- assertEquals( CHECK_LOWER_BOUND, "1.5", restriction.getLowerBound() );
+ assertEquals( CHECK_LOWER_BOUND, "1.5",
restriction.getLowerBound().toString() );
assertTrue( CHECK_LOWER_BOUND_INCLUSIVE,
restriction.isLowerBoundInclusive() );
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE,
restriction.isUpperBoundInclusive() );
@@ -105,11 +105,11 @@
restriction = (Restriction) restrictions.get( 0 );
assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
assertFalse( CHECK_LOWER_BOUND_INCLUSIVE,
restriction.isLowerBoundInclusive() );
- assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0",
restriction.getUpperBound().toString() );
assertTrue( CHECK_UPPER_BOUND_INCLUSIVE,
restriction.isUpperBoundInclusive() );
assertNull( CHECK_VERSION_RECOMMENDATION,
range.getRecommendedVersion() );
restriction = (Restriction) restrictions.get( 1 );
- assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound() );
+ assertEquals( CHECK_LOWER_BOUND, "1.2",
restriction.getLowerBound().toString() );
assertTrue( CHECK_LOWER_BOUND_INCLUSIVE,
restriction.isLowerBoundInclusive() );
assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
assertFalse( CHECK_UPPER_BOUND_INCLUSIVE,
restriction.isUpperBoundInclusive() );
@@ -130,7 +130,20 @@
checkInvalidRange( "[1.0,1.2),(1.1,1.3]" );
// overlap
checkInvalidRange( "[1.1,1.3),(1.0,1.2]" );
+ // ordering
+ checkInvalidRange( "(1.1,1.2],[1.0,1.1)" );
*/
+ }
+
+ public void testIntersections()
+ {
+ VersionRange range1 = VersionRange.createFromVersion( "1.0" );
+ VersionRange range2 = VersionRange.createFromVersion( "1.1" );
+ VersionRange mergedRange = range1.restrict( range2 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1",
mergedRange.getRecommendedVersion().toString() );
+
+ mergedRange = range2.restrict( range1 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1",
mergedRange.getRecommendedVersion().toString() );
}
private void checkInvalidRange( String version )
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Tue Jul 19 01:23:01 2005
@@ -29,6 +29,7 @@
import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter;
import org.apache.maven.artifact.resolver.filter.InversionArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Plugin;
@@ -105,7 +106,7 @@
protected ArtifactResolver artifactResolver;
protected MavenProjectBuilder mavenProjectBuilder;
-
+
protected MavenPluginMappingBuilder pluginMappingBuilder;
// END component requirements
@@ -123,17 +124,19 @@
{
return pluginCollector.getPluginDescriptorForPrefix( prefix );
}
-
- public Plugin getPluginDefinitionForPrefix( String prefix, MavenSession
session, MavenProject project ) throws PluginManagerException
+
+ public Plugin getPluginDefinitionForPrefix( String prefix, MavenSession
session, MavenProject project )
+ throws PluginManagerException
{
PluginMappingManager mappingManager = getPluginMappingManager(
session, project );
Plugin plugin = mappingManager.getByPrefix( prefix );
-
+
if ( plugin == null && !mappingManager.isRefreshed() )
{
- getLogger().info( "Refreshing plugin mapping metadata; looking for
plugin with prefix: \'" + prefix + "\'." );
-
+ getLogger().info(
+ "Refreshing plugin mapping metadata; looking for plugin with
prefix: \'" + prefix + "\'." );
+
try
{
mappingManager =
pluginMappingBuilder.refreshPluginMappingManager( session
@@ -148,10 +151,10 @@
{
throw new PluginManagerException( "Error refreshing plugin
mappings.", e );
}
-
+
plugin = mappingManager.getByPrefix( prefix );
}
-
+
return plugin;
}
@@ -175,7 +178,7 @@
{
try
{
- VersionRange versionRange = new VersionRange(
plugin.getVersion() );
+ VersionRange versionRange =
VersionRange.createFromVersionSpec( plugin.getVersion() );
Artifact pluginArtifact =
artifactFactory.createPluginArtifact( plugin.getGroupId(),
plugin.getArtifactId(), versionRange );
@@ -198,9 +201,12 @@
String artifactId = plugin.getArtifactId();
String version = plugin.getVersion();
- if ( ( groupId == null || artifactId == null || version ==
null || ( groupId.equals( e.getGroupId() ) &&
- artifactId.equals( e.getArtifactId() ) && version.equals(
e.getVersion() ) ) ) &&
- "maven-plugin".equals( e.getType() ) )
+ if ( groupId == null || artifactId == null || version == null )
+ {
+ throw new PluginNotFoundException( e );
+ }
+ else if ( groupId.equals( e.getGroupId() ) &&
artifactId.equals( e.getArtifactId() ) &&
+ version.equals( e.getVersion() ) && "maven-plugin".equals(
e.getType() ) )
{
throw new PluginNotFoundException( e );
}
@@ -209,6 +215,11 @@
throw e;
}
}
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new PluginVersionResolutionException(
plugin.getGroupId(), plugin.getArtifactId(),
+ "Invalid version
specification", e );
+ }
}
return pluginCollector.getPluginDescriptor( plugin );
@@ -256,7 +267,7 @@
String goalName = mojoDescriptor.getFullGoalName();
- Mojo plugin = null;
+ Mojo plugin;
try
{
@@ -477,7 +488,7 @@
{
Artifact artifact = (Artifact) it.next();
- if ( artifact != pluginArtifact )
+ if ( !artifact.equals( pluginArtifact ) )
{
pluginContainer.addJarResource( artifact.getFile() );
}
@@ -534,7 +545,7 @@
if ( parameterMap.containsKey( child.getName() ) )
{
- extractedConfiguration.addChild(
DefaultPluginManager.copyConfiguration( child ) );
+ extractedConfiguration.addChild( copyConfiguration( child ) );
}
else
{
@@ -711,7 +722,7 @@
for ( int i = 0; i < children.length; i++ )
{
PlexusConfiguration child = children[i];
- PlexusConfiguration childDom = (XmlPlexusConfiguration)
dominant.getChild( child.getName(), false );
+ PlexusConfiguration childDom = dominant.getChild( child.getName(),
false );
if ( childDom != null )
{
mergeConfiguration( childDom, child );
@@ -803,22 +814,24 @@
private Field findPluginField( Class clazz, String key )
throws NoSuchFieldException
{
- try
- {
- return clazz.getDeclaredField( key );
- }
- catch ( NoSuchFieldException e )
+ Field field = null;
+
+ while ( field == null )
{
- Class superclass = clazz.getSuperclass();
- if ( superclass != Object.class )
+ try
{
- return findPluginField( superclass, key );
+ field = clazz.getDeclaredField( key );
}
- else
+ catch ( NoSuchFieldException e )
{
- throw e;
+ clazz = clazz.getSuperclass();
+ if ( clazz.equals( Object.class ) )
+ {
+ throw e;
+ }
}
}
+ return field;
}
public static String createPluginParameterRequiredMessage( MojoDescriptor
mojo, Parameter parameter,
@@ -963,36 +976,36 @@
return pluginContainer.lookup( role, roleHint );
}
- private PluginMappingManager getPluginMappingManager( MavenSession
session, MavenProject project )
- throws PluginManagerException
-{
- PluginMappingManager mappingManager = session.getPluginMappingManager();
-
- // don't reassemble the plugin mappings if the session has already been
configured with them.
- if ( mappingManager == null )
+ private PluginMappingManager getPluginMappingManager( MavenSession
session, MavenProject project )
+ throws PluginManagerException
{
- try
+ PluginMappingManager mappingManager =
session.getPluginMappingManager();
+
+ // don't reassemble the plugin mappings if the session has already
been configured with them.
+ if ( mappingManager == null )
{
- List pluginGroupIds = session.getSettings().getPluginGroups();
- List pluginRepositories = project.getPluginArtifactRepositories();
- ArtifactRepository localRepository = session.getLocalRepository();
+ try
+ {
+ List pluginGroupIds = session.getSettings().getPluginGroups();
+ List pluginRepositories =
project.getPluginArtifactRepositories();
+ ArtifactRepository localRepository =
session.getLocalRepository();
- mappingManager = pluginMappingBuilder.loadPluginMappings(
pluginGroupIds, pluginRepositories,
-
localRepository );
+ mappingManager = pluginMappingBuilder.loadPluginMappings(
pluginGroupIds, pluginRepositories,
+
localRepository );
- // lazily configure this on the session.
- session.setPluginMappingManager( mappingManager );
- }
- catch ( RepositoryMetadataManagementException e )
- {
- throw new PluginManagerException( "Cannot load plugin mappings.",
e );
- }
- catch ( PluginMappingManagementException e )
- {
- throw new PluginManagerException( "Cannot load plugin mappings.",
e );
+ // lazily configure this on the session.
+ session.setPluginMappingManager( mappingManager );
+ }
+ catch ( RepositoryMetadataManagementException e )
+ {
+ throw new PluginManagerException( "Cannot load plugin
mappings.", e );
+ }
+ catch ( PluginMappingManagementException e )
+ {
+ throw new PluginManagerException( "Cannot load plugin
mappings.", e );
+ }
}
+
+ return mappingManager;
}
-
- return mappingManager;
-}
}
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
Tue Jul 19 01:23:01 2005
@@ -24,6 +24,7 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
+import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Build;
import org.apache.maven.model.Dependency;
@@ -158,6 +159,7 @@
}
private Map createManagedVersionMap( DependencyManagement
dependencyManagement )
+ throws ProjectBuildingException
{
Map map;
if ( dependencyManagement != null &&
dependencyManagement.getDependencies() != null )
@@ -167,11 +169,18 @@
{
Dependency d = (Dependency) i.next();
- Artifact artifact = artifactFactory.createDependencyArtifact(
d.getGroupId(), d.getArtifactId(),
-
new VersionRange( d.getVersion() ),
-
d.getType(), d.getScope() );
-
- map.put( d.getManagementKey(), artifact );
+ try
+ {
+ VersionRange versionRange =
VersionRange.createFromVersionSpec( d.getVersion() );
+ Artifact artifact =
artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(),
+
versionRange, d.getType(),
+
d.getScope() );
+ map.put( d.getManagementKey(), artifact );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new ProjectBuildingException( "Unable to parse
dependency version", e );
+ }
}
}
else
@@ -499,8 +508,7 @@
try
{
reader = new FileReader( file );
- Model model = modelReader.read( reader );
- return model;
+ return modelReader.read( reader );
}
catch ( FileNotFoundException e )
{
@@ -558,11 +566,20 @@
}
protected Set createArtifacts( List dependencies )
+ throws ProjectBuildingException
{
- return MavenMetadataSource.createArtifacts( artifactFactory,
dependencies, null, null );
+ try
+ {
+ return MavenMetadataSource.createArtifacts( artifactFactory,
dependencies, null, null );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new ProjectBuildingException( "Unable to parse dependency
version", e );
+ }
}
protected Set createPluginArtifacts( List plugins )
+ throws ProjectBuildingException
{
Set pluginArtifacts = new HashSet();
@@ -580,8 +597,17 @@
version = p.getVersion();
}
- Artifact artifact = artifactFactory.createPluginArtifact(
p.getGroupId(), p.getArtifactId(),
- new
VersionRange( version ) );
+ Artifact artifact = null;
+ try
+ {
+ artifact = artifactFactory.createPluginArtifact(
p.getGroupId(), p.getArtifactId(),
+
VersionRange.createFromVersionSpec( version ) );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new ProjectBuildingException( "Unable to parse plugin
version", e );
+ }
+
if ( artifact != null )
{
pluginArtifacts.add( artifact );
@@ -630,9 +656,7 @@
{
URL url = DefaultMavenProjectBuilder.class.getResource( "pom-" +
MAVEN_MODEL_VERSION + ".xml" );
- Model superModel = readModel( url );
-
- return superModel;
+ return readModel( url );
}
public void contextualize( Context context )
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
Tue Jul 19 01:23:01 2005
@@ -22,10 +22,10 @@
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.metadata.ResolutionGroup;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
+import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Exclusion;
@@ -62,7 +62,7 @@
{
// TODO: only metadata is really needed - resolve as metadata
Artifact pomArtifact = artifactFactory.createProjectArtifact(
artifact.getGroupId(), artifact.getArtifactId(),
-
artifact.getVersion(), artifact.getScope() );
+
artifact.getVersion(), artifact.getScope() );
// TODO: this a very thin wrapper around a project builder - is it
needed?
List dependencies = null;
@@ -85,10 +85,15 @@
{
throw new ArtifactMetadataRetrievalException( "Unable to read the
metadata file", e );
}
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new ArtifactMetadataRetrievalException( "Unable to read the
metadata file", e );
+ }
}
public static Set createArtifacts( ArtifactFactory artifactFactory, List
dependencies, String inheritedScope,
ArtifactFilter dependencyFilter )
+ throws InvalidVersionSpecificationException
{
Set projectArtifacts = new HashSet();
@@ -97,8 +102,10 @@
Dependency d = (Dependency) i.next();
Artifact artifact = artifactFactory.createDependencyArtifact(
d.getGroupId(), d.getArtifactId(),
- new
VersionRange( d.getVersion() ),
-
d.getType(), d.getScope(), inheritedScope );
+
VersionRange.createFromVersionSpec(
+
d.getVersion() ), d.getType(),
+
d.getScope(),
+
inheritedScope );
if ( artifact != null && ( dependencyFilter == null ||
dependencyFilter.include( artifact ) ) )
{
Modified:
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java?rev=219630&r1=219629&r2=219630&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java
(original)
+++
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java
Tue Jul 19 01:23:01 2005
@@ -27,6 +27,7 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.DefaultArtifactResolver;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Model;
@@ -81,7 +82,7 @@
try
{
String scope = artifact.getArtifactId().substring(
"scope-".length() );
- if ( artifact.getGroupId().equals( "maven-test" ) )
+ if ( "maven-test".equals( artifact.getGroupId() ) )
{
String name = "/projects/scope/transitive-" + scope +
"-dep.xml";
r = new InputStreamReader( getClass().getResourceAsStream(
name ) );
@@ -108,7 +109,15 @@
IOUtil.close( r );
}
- Set artifacts = createArtifacts( model.getDependencies(),
artifact.getScope() );
+ Set artifacts = null;
+ try
+ {
+ artifacts = createArtifacts( model.getDependencies(),
artifact.getScope() );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new ArtifactMetadataRetrievalException( e );
+ }
List artifactRepositories;
try
@@ -125,6 +134,7 @@
}
protected Set createArtifacts( List dependencies, String
inheritedScope )
+ throws InvalidVersionSpecificationException
{
Set projectArtifacts = new HashSet();
@@ -132,9 +142,9 @@
{
Dependency d = (Dependency) i.next();
+ VersionRange versionRange =
VersionRange.createFromVersionSpec( d.getVersion() );
Artifact artifact = artifactFactory.createDependencyArtifact(
d.getGroupId(), d.getArtifactId(),
-
new VersionRange( d.getVersion() ),
-
d.getType(), d.getScope(),
+
versionRange, d.getType(), d.getScope(),
inheritedScope );
if ( artifact != null )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]