Author: carlos
Date: Mon Jan 23 17:51:02 2006
New Revision: 371769
URL: http://svn.apache.org/viewcvs?rev=371769&view=rev
Log:
Added docs and unit tests for DefaultArtifactCollector.checkScopeUpdate()
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
maven/components/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
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=371769&r1=371768&r2=371769&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
Mon Jan 23 17:51:02 2006
@@ -315,7 +315,14 @@
}
}
- private void checkScopeUpdate( ResolutionNode farthest, ResolutionNode
nearest, List listeners )
+ /**
+ * Check if the scope needs to be updated.
+ * <a
href="http://docs.codehaus.org/x/IGU#DependencyMediationandConflictResolution-Scoperesolution">More
info</a>.
+ * @param farthest farthest resolution node
+ * @param nearest nearest resolution node
+ * @param listeners
+ */
+ void checkScopeUpdate( ResolutionNode farthest, ResolutionNode nearest,
List listeners )
{
boolean updateScope = false;
Artifact farthestArtifact = farthest.getArtifact();
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=371769&r1=371768&r2=371769&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
Mon Jan 23 17:51:02 2006
@@ -503,6 +503,68 @@
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 testCheckScopeUpdate()
+ throws InvalidVersionSpecificationException
+ {
+ /* farthest = compile */
+ checkScopeUpdate( Artifact.SCOPE_COMPILE, Artifact.SCOPE_COMPILE,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_COMPILE, Artifact.SCOPE_PROVIDED,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_COMPILE, Artifact.SCOPE_RUNTIME,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_COMPILE, Artifact.SCOPE_SYSTEM,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_COMPILE, Artifact.SCOPE_TEST,
Artifact.SCOPE_COMPILE );
+
+ /* farthest = provided */
+ checkScopeUpdate( Artifact.SCOPE_PROVIDED, Artifact.SCOPE_COMPILE,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_PROVIDED, Artifact.SCOPE_PROVIDED,
Artifact.SCOPE_PROVIDED );
+ checkScopeUpdate( Artifact.SCOPE_PROVIDED, Artifact.SCOPE_RUNTIME,
Artifact.SCOPE_RUNTIME );
+ checkScopeUpdate( Artifact.SCOPE_PROVIDED, Artifact.SCOPE_SYSTEM,
Artifact.SCOPE_SYSTEM );
+ checkScopeUpdate( Artifact.SCOPE_PROVIDED, Artifact.SCOPE_TEST,
Artifact.SCOPE_TEST );
+
+ /* farthest = runtime */
+ checkScopeUpdate( Artifact.SCOPE_RUNTIME, Artifact.SCOPE_COMPILE,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_RUNTIME, Artifact.SCOPE_PROVIDED,
Artifact.SCOPE_RUNTIME );
+ checkScopeUpdate( Artifact.SCOPE_RUNTIME, Artifact.SCOPE_RUNTIME,
Artifact.SCOPE_RUNTIME );
+ checkScopeUpdate( Artifact.SCOPE_RUNTIME, Artifact.SCOPE_SYSTEM,
Artifact.SCOPE_SYSTEM );
+ checkScopeUpdate( Artifact.SCOPE_RUNTIME, Artifact.SCOPE_TEST,
Artifact.SCOPE_RUNTIME );
+
+ /* farthest = system */
+ checkScopeUpdate( Artifact.SCOPE_SYSTEM, Artifact.SCOPE_COMPILE,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_SYSTEM, Artifact.SCOPE_PROVIDED,
Artifact.SCOPE_PROVIDED );
+ checkScopeUpdate( Artifact.SCOPE_SYSTEM, Artifact.SCOPE_RUNTIME,
Artifact.SCOPE_RUNTIME );
+ checkScopeUpdate( Artifact.SCOPE_SYSTEM, Artifact.SCOPE_SYSTEM,
Artifact.SCOPE_SYSTEM );
+ checkScopeUpdate( Artifact.SCOPE_SYSTEM, Artifact.SCOPE_TEST,
Artifact.SCOPE_TEST );
+
+ /* farthest = test */
+ checkScopeUpdate( Artifact.SCOPE_TEST, Artifact.SCOPE_COMPILE,
Artifact.SCOPE_COMPILE );
+ checkScopeUpdate( Artifact.SCOPE_TEST, Artifact.SCOPE_PROVIDED,
Artifact.SCOPE_PROVIDED );
+ checkScopeUpdate( Artifact.SCOPE_TEST, Artifact.SCOPE_RUNTIME,
Artifact.SCOPE_RUNTIME );
+ checkScopeUpdate( Artifact.SCOPE_TEST, Artifact.SCOPE_SYSTEM,
Artifact.SCOPE_SYSTEM );
+ checkScopeUpdate( Artifact.SCOPE_TEST, Artifact.SCOPE_TEST,
Artifact.SCOPE_TEST );
+ }
+
+ private ResolutionNode createResolutionNode( String scope )
+ throws InvalidVersionSpecificationException
+ {
+ /* force depth > 1 to avoid "current pom" overrides */
+ ResolutionNode parent = new ResolutionNode( createArtifact( "parent",
"0.1", scope ).artifact, null );
+ parent = new ResolutionNode( createArtifact( "parent", "0.1", scope
).artifact, null, parent );
+
+ String artifactId = "a", version = "1.0";
+ return new ResolutionNode( createArtifact( artifactId, version, scope
).artifact, null, parent );
+ }
+
+ private void checkScopeUpdate( String farthestScope, String nearestScope,
String expectedScope )
+ throws InvalidVersionSpecificationException
+ {
+ DefaultArtifactCollector defaultArtifactCollector =
(DefaultArtifactCollector) artifactCollector;
+ ResolutionNode farthest = createResolutionNode( farthestScope );
+ ResolutionNode nearest = createResolutionNode( nearestScope );
+
+ defaultArtifactCollector.checkScopeUpdate( farthest, nearest, new
ArrayList() );
+ //assertEquals( expectedFarthestScope,
farthest.getArtifact().getScope() );
+ assertEquals( expectedScope, nearest.getArtifact().getScope() );
+ }
public void disabledtestOptionalNotTransitiveButVersionIsInfluential()
throws ArtifactResolutionException,
InvalidVersionSpecificationException