You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/09/26 03:18:17 UTC
svn commit: r291507 - in /maven/components/trunk:
maven-artifact/src/main/java/org/apache/maven/artifact/
maven-artifact/src/main/java/org/apache/maven/artifact/factory/
maven-artifact/src/main/java/org/apache/maven/artifact/resolver/
maven-artifact/sr...
Author: brett
Date: Sun Sep 25 18:17:59 2005
New Revision: 291507
URL: http://svn.apache.org/viewcvs?rev=291507&view=rev
Log:
PR: MNG-947
add optional attribute to a dependency
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.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/factory/ArtifactFactory.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
maven/components/trunk/maven-model/maven.mdo
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java?rev=291507&r1=291506&r2=291507&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java Sun Sep 25 18:17:59 2005
@@ -150,4 +150,6 @@
List getAvailableVersions();
void setAvailableVersions( List versions );
+
+ boolean isOptional();
}
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=291507&r1=291506&r2=291507&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 Sun Sep 25 18:17:59 2005
@@ -80,9 +80,17 @@
private Map metadataMap;
+ private boolean optional;
+
public DefaultArtifact( String groupId, String artifactId, VersionRange versionRange, String scope, String type,
String classifier, ArtifactHandler artifactHandler )
{
+ this( groupId, artifactId, versionRange, scope, type, classifier, artifactHandler, false );
+ }
+
+ public DefaultArtifact( String groupId, String artifactId, VersionRange versionRange, String scope, String type,
+ String classifier, ArtifactHandler artifactHandler, boolean optional )
+ {
this.groupId = groupId;
this.artifactId = artifactId;
@@ -102,6 +110,8 @@
this.classifier = classifier;
+ this.optional = optional;
+
validateIdentity();
}
@@ -503,5 +513,10 @@
public void setAvailableVersions( List availableVersions )
{
this.availableVersions = availableVersions;
+ }
+
+ public boolean isOptional()
+ {
+ return optional;
}
}
Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/ArtifactFactory.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/ArtifactFactory.java?rev=291507&r1=291506&r2=291507&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/ArtifactFactory.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/ArtifactFactory.java Sun Sep 25 18:17:59 2005
@@ -47,6 +47,9 @@
Artifact createDependencyArtifact( String groupId, String artifactId, VersionRange versionRange, String type,
String classifier, String scope, String inheritedScope );
+ Artifact createDependencyArtifact( String groupId, String artifactId, VersionRange versionRange, String type,
+ String classifier, String scope, String inheritedScope, boolean optional );
+
Artifact createBuildArtifact( String groupId, String artifactId, String version, String packaging );
Artifact createProjectArtifact( String groupId, String artifactId, String version );
Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java?rev=291507&r1=291506&r2=291507&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java Sun Sep 25 18:17:59 2005
@@ -52,13 +52,19 @@
public Artifact createDependencyArtifact( String groupId, String artifactId, VersionRange versionRange, String type,
String classifier, String scope )
{
- return createArtifact( groupId, artifactId, versionRange, null, type, classifier, null );
+ return createArtifact( groupId, artifactId, versionRange, type, classifier, null, null );
}
public Artifact createDependencyArtifact( String groupId, String artifactId, VersionRange versionRange, String type,
String classifier, String scope, String inheritedScope )
{
- return createArtifact( groupId, artifactId, versionRange, scope, type, classifier, inheritedScope );
+ return createArtifact( groupId, artifactId, versionRange, type, classifier, scope, inheritedScope );
+ }
+
+ public Artifact createDependencyArtifact( String groupId, String artifactId, VersionRange versionRange, String type,
+ String classifier, String scope, String inheritedScope, boolean optional )
+ {
+ return createArtifact( groupId, artifactId, versionRange, type, classifier, scope, inheritedScope, optional );
}
public Artifact createBuildArtifact( String groupId, String artifactId, String version, String packaging )
@@ -78,7 +84,7 @@
public Artifact createPluginArtifact( String groupId, String artifactId, VersionRange versionRange )
{
- return createArtifact( groupId, artifactId, versionRange, Artifact.SCOPE_RUNTIME, "maven-plugin", null, null );
+ return createArtifact( groupId, artifactId, versionRange, "maven-plugin", null, Artifact.SCOPE_RUNTIME, null );
}
public Artifact createProjectArtifact( String groupId, String artifactId, String version, String scope )
@@ -88,7 +94,7 @@
public Artifact createExtensionArtifact( String groupId, String artifactId, VersionRange versionRange )
{
- return createArtifact( groupId, artifactId, versionRange, Artifact.SCOPE_RUNTIME, "jar", null, null );
+ return createArtifact( groupId, artifactId, versionRange, "jar", null, Artifact.SCOPE_RUNTIME, null );
}
public Artifact createArtifact( String groupId, String artifactId, String version, String scope, String type,
@@ -105,11 +111,17 @@
{
versionRange = VersionRange.createFromVersion( version );
}
- return createArtifact( groupId, artifactId, versionRange, scope, type, classifier, inheritedScope );
+ return createArtifact( groupId, artifactId, versionRange, type, classifier, scope, inheritedScope );
+ }
+
+ private Artifact createArtifact( String groupId, String artifactId, VersionRange versionRange, String type,
+ String classifier, String scope, String inheritedScope )
+ {
+ return createArtifact( groupId, artifactId, versionRange, type, classifier, scope, inheritedScope, false );
}
- private Artifact createArtifact( String groupId, String artifactId, VersionRange versionRange, String scope,
- String type, String classifier, String inheritedScope )
+ private Artifact createArtifact( String groupId, String artifactId, VersionRange versionRange, String type,
+ String classifier, String scope, String inheritedScope, boolean optional )
{
// TODO: can refactor - inherited scope calculation belongs in the collector, use scope handler
@@ -140,6 +152,7 @@
ArtifactHandler handler = artifactHandlerManager.getArtifactHandler( type );
- return new DefaultArtifact( groupId, artifactId, versionRange, desiredScope, type, classifier, handler );
+ return new DefaultArtifact( groupId, artifactId, versionRange, desiredScope, type, classifier, handler,
+ optional );
}
}
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=291507&r1=291506&r2=291507&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 Sun Sep 25 18:17:59 2005
@@ -77,9 +77,13 @@
{
Artifact artifact = node.getArtifact();
- 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 ( !node.getArtifact().isOptional() )
+ {
+ artifact.setDependencyTrail( node.getDependencyTrail() );
- set.add( node );
+ set.add( node );
+ }
}
}
@@ -169,7 +173,8 @@
for ( Iterator i = node.getChildrenIterator(); i.hasNext(); )
{
ResolutionNode child = (ResolutionNode) i.next();
- if ( !child.isResolved() )
+ // We leave in optional ones, but don't pick up its dependencies
+ if ( !child.isResolved() && !child.getArtifact().isOptional() )
{
Artifact artifact = child.getArtifact();
try
Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java?rev=291507&r1=291506&r2=291507&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java Sun Sep 25 18:17:59 2005
@@ -75,23 +75,30 @@
public void addDependencies( Set artifacts, List remoteRepositories, ArtifactFilter filter )
throws CyclicDependencyException, OverConstrainedVersionException
{
- children = new ArrayList( artifacts.size() );
-
- for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ if ( !artifacts.isEmpty() )
{
- Artifact a = (Artifact) i.next();
+ children = new ArrayList( artifacts.size() );
- if ( filter == null || filter.include( a ) )
+ for ( Iterator i = artifacts.iterator(); i.hasNext(); )
{
- if ( parents.contains( a.getDependencyConflictId() ) )
+ Artifact a = (Artifact) i.next();
+
+ if ( filter == null || filter.include( a ) )
{
- a.setDependencyTrail( getDependencyTrail() );
+ if ( parents.contains( a.getDependencyConflictId() ) )
+ {
+ a.setDependencyTrail( getDependencyTrail() );
- throw new CyclicDependencyException( "A dependency has introduced a cycle", a );
- }
+ throw new CyclicDependencyException( "A dependency has introduced a cycle", a );
+ }
- children.add( new ResolutionNode( a, remoteRepositories, this ) );
+ children.add( new ResolutionNode( a, remoteRepositories, this ) );
+ }
}
+ }
+ else
+ {
+ children = Collections.EMPTY_LIST;
}
}
Modified: maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java?rev=291507&r1=291506&r2=291507&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (original)
+++ maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java Sun Sep 25 18:17:59 2005
@@ -70,11 +70,11 @@
// works, but we don't fail on cycles presently
public void disabledtestCircularDependencyNotIncludingCurrentProject()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
- b.addDependency( a );
+ b.addDependency( "a", "1.0" );
try
{
collect( a );
@@ -88,7 +88,7 @@
// works, but we don't fail on cycles presently
public void disabledtestCircularDependencyIncludingCurrentProject()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -105,7 +105,7 @@
}
public void testResolveWithFilter()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -124,7 +124,7 @@
}
public void testResolveNearestNewestIsNearest()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -139,7 +139,7 @@
}
public void testResolveNearestOldestIsNearest()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -154,7 +154,7 @@
}
public void testResolveNearestWithRanges()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -169,7 +169,7 @@
}
public void testCompatibleRanges()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -185,7 +185,7 @@
}
public void testIncompatibleRanges()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -204,7 +204,7 @@
}
public void testUnboundedRange()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec b = a.addDependency( "b", "1.0" );
@@ -220,7 +220,7 @@
}
public void testResolveManagedVersion()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
a.addDependency( "b", "3.0", Artifact.SCOPE_RUNTIME );
@@ -233,7 +233,7 @@
}
public void testResolveCompileScopeOverTestScope()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec c = createArtifact( "c", "3.0", Artifact.SCOPE_TEST );
@@ -249,7 +249,7 @@
}
public void testResolveRuntimeScopeOverTestScope()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec c = createArtifact( "c", "3.0", Artifact.SCOPE_TEST );
@@ -265,7 +265,7 @@
}
public void testResolveCompileScopeOverRuntimeScope()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec c = createArtifact( "c", "3.0", Artifact.SCOPE_RUNTIME );
@@ -281,7 +281,7 @@
}
public void testResolveCompileScopeOverProvidedScope()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec c = createArtifact( "c", "3.0", Artifact.SCOPE_PROVIDED );
@@ -297,7 +297,7 @@
}
public void testResolveRuntimeScopeOverProvidedScope()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0" );
ArtifactSpec c = createArtifact( "c", "3.0", Artifact.SCOPE_PROVIDED );
@@ -313,7 +313,7 @@
}
public void testProvidedScopeNotTransitive()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0", Artifact.SCOPE_PROVIDED );
ArtifactSpec b = createArtifact( "b", "1.0" );
@@ -323,8 +323,51 @@
assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact} ), res.getArtifacts() );
}
+ public void testOptionalNotTransitive()
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
+ {
+ ArtifactSpec a = createArtifact( "a", "1.0" );
+ ArtifactSpec b = createArtifact( "b", "1.0" );
+ b.addDependency( "c", "3.0", true );
+
+ ArtifactResolutionResult res = collect( createSet( new Object[]{a.artifact, b.artifact} ) );
+ assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact} ), res.getArtifacts() );
+ }
+
+ public void testOptionalIncludedAtRoot()
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
+ {
+ ArtifactSpec a = createArtifact( "a", "1.0" );
+ createArtifact( "b", "1.0", true );
+
+ ArtifactSpec b = createArtifact( "b", "1.0" );
+
+ ArtifactResolutionResult res = collect( createSet( new Object[]{a.artifact, b.artifact} ) );
+ assertEquals( "Check artifact list", createSet( new Object[]{a.artifact, b.artifact} ), res.getArtifacts() );
+ }
+
+ public void disabledtestOptionalNotTransitiveButVersionIsInfluential()
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
+ {
+ ArtifactSpec a = createArtifact( "a", "1.0" );
+ ArtifactSpec b = createArtifact( "b", "1.0" );
+ b.addDependency( "c", "3.0", true );
+ ArtifactSpec d = a.addDependency( "d", "1.0" );
+ ArtifactSpec e = d.addDependency( "e", "1.0" );
+ e.addDependency( "c", "2.0" );
+
+ ArtifactSpec c = createArtifact( "c", "3.0" );
+
+ ArtifactResolutionResult res = collect( createSet( new Object[]{a.artifact, b.artifact} ) );
+ assertEquals( "Check artifact list",
+ createSet( new Object[]{a.artifact, b.artifact, c.artifact, d.artifact, e.artifact} ),
+ res.getArtifacts() );
+ Artifact artifact = getArtifact( "c", res.getArtifacts() );
+ assertEquals( "Check version", "3.0", artifact.getVersion() );
+ }
+
public void testTestScopeNotTransitive()
- throws ArtifactResolutionException
+ throws ArtifactResolutionException, InvalidVersionSpecificationException
{
ArtifactSpec a = createArtifact( "a", "1.0", Artifact.SCOPE_TEST );
ArtifactSpec b = createArtifact( "b", "1.0" );
@@ -377,16 +420,37 @@
}
private ArtifactSpec createArtifact( String id, String version )
+ throws InvalidVersionSpecificationException
{
return createArtifact( id, version, Artifact.SCOPE_COMPILE );
}
+ private ArtifactSpec createArtifact( String id, String version, boolean optional )
+ throws InvalidVersionSpecificationException
+ {
+ return createArtifact( id, version, Artifact.SCOPE_COMPILE, null, optional );
+ }
+
private ArtifactSpec createArtifact( String id, String version, String scope )
+ throws InvalidVersionSpecificationException
+ {
+ return createArtifact( id, version, scope, null, false );
+ }
+
+ private ArtifactSpec createArtifact( String id, String version, String scope, String inheritedScope,
+ boolean optional )
+ throws InvalidVersionSpecificationException
{
- ArtifactSpec spec = new ArtifactSpec();
- Artifact artifact = artifactFactory.createArtifact( GROUP_ID, id, version, scope, "jar" );
- spec.artifact = artifact;
- source.artifacts.put( source.getKey( artifact ), spec );
+ VersionRange versionRange = VersionRange.createFromVersionSpec( version );
+ Artifact artifact = artifactFactory.createDependencyArtifact( GROUP_ID, id, versionRange, "jar", null, scope,
+ inheritedScope, optional );
+ ArtifactSpec spec = null;
+ if ( artifact != null )
+ {
+ spec = new ArtifactSpec();
+ spec.artifact = artifact;
+ source.artifacts.put( source.getKey( artifact ), spec );
+ }
return spec;
}
@@ -402,20 +466,32 @@
private Set dependencies = new HashSet();
public ArtifactSpec addDependency( String id, String version )
+ throws InvalidVersionSpecificationException
{
return addDependency( id, version, null );
}
public ArtifactSpec addDependency( String id, String version, String scope )
+ throws InvalidVersionSpecificationException
{
- ArtifactSpec dep = createArtifact( id, version, scope );
- addDependency( dep );
+ return addDependency( id, version, scope, false );
+ }
+
+ private ArtifactSpec addDependency( String id, String version, String scope, boolean optional )
+ throws InvalidVersionSpecificationException
+ {
+ ArtifactSpec dep = createArtifact( id, version, scope, this.artifact.getScope(), optional );
+ if ( dep != null )
+ {
+ dependencies.add( dep.artifact );
+ }
return dep;
}
- public void addDependency( ArtifactSpec dep )
+ public ArtifactSpec addDependency( String id, String version, boolean optional )
+ throws InvalidVersionSpecificationException
{
- dependencies.add( dep.artifact );
+ return addDependency( id, version, Artifact.SCOPE_COMPILE, optional );
}
}
@@ -459,11 +535,19 @@
{
Artifact d = (Artifact) i.next();
- VersionRange versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
+ VersionRange versionRange;
+ if ( d.getVersionRange() != null )
+ {
+ versionRange = d.getVersionRange();
+ }
+ else
+ {
+ versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
+ }
Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(),
versionRange, d.getType(),
d.getClassifier(), d.getScope(),
- inheritedScope );
+ inheritedScope, d.isOptional() );
if ( artifact != null && ( dependencyFilter == null || dependencyFilter.include( artifact ) ) )
{
Modified: maven/components/trunk/maven-model/maven.mdo
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-model/maven.mdo?rev=291507&r1=291506&r2=291507&view=diff
==============================================================================
--- maven/components/trunk/maven-model/maven.mdo (original)
+++ maven/components/trunk/maven-model/maven.mdo Sun Sep 25 18:17:59 2005
@@ -1303,6 +1303,7 @@
<type>String</type>
<!-- This default has to be enforced at the maven-artifact layer, to allow
| injection of defaults from <dependencyManagement/>.
+ | TODO: how can we document it?
|-->
<!-- defaultValue>compile</defaultValue -->
</field>
@@ -1324,6 +1325,17 @@
<type>Exclusion</type>
<multiplicity>*</multiplicity>
</association>
+ </field>
+ <field>
+ <name>optional</name>
+ <version>4.0.0</version>
+ <description>
+ Indicates the dependency is optional for use of this library. While the version of the dependency will be
+ taken into account for dependency calculation if the library is used elsewhere, it will not be passed on
+ transitively.
+ </description>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
</field>
</fields>
<codeSegments>
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=291507&r1=291506&r2=291507&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 Sun Sep 25 18:17:59 2005
@@ -76,7 +76,7 @@
private ArtifactFactory artifactFactory;
private RepositoryMetadataManager repositoryMetadataManager;
-
+
// lazily instantiated and cached.
private MavenProject superProject;
@@ -190,8 +190,9 @@
Set artifacts = project.createArtifacts( artifactFactory, artifact.getScope(),
artifact.getDependencyFilter() );
- List repositories = aggregateRepositoryLists( remoteRepositories, project.getRemoteArtifactRepositories() );
-
+ List repositories = aggregateRepositoryLists( remoteRepositories,
+ project.getRemoteArtifactRepositories() );
+
result = new ResolutionGroup( pomArtifact, artifacts, repositories );
}
@@ -275,7 +276,7 @@
VersionRange versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(),
versionRange, d.getType(), d.getClassifier(),
- scope, inheritedScope );
+ scope, inheritedScope, d.isOptional() );
if ( Artifact.SCOPE_SYSTEM.equals( scope ) )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org