[MRESOLVER-9] DefaultDependencyCollector does not correctly handle dependency management
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
index 9d37435..52fda64 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
@@ -433,16 +433,16 @@
Args args = context.getArgs();
Results results = context.getResults();
- if ( context.getDepSelector() != null && !context.getDepSelector().selectDependency( dc.origDependency ) )
- {
- return null;
- }
-
PremanagedDependency preManaged =
PremanagedDependency.create( context.getDepManager(), dc.origDependency, dc.disableVersionManagement,
args.premanagedState );
Dependency dependency = preManaged.managedDependency;
+ if ( context.getDepSelector() != null && !context.getDepSelector().selectDependency( dependency ) )
+ {
+ return null;
+ }
+
boolean noDescriptor = isLackingDescriptor( dependency.getArtifact() );
boolean traverse = !noDescriptor
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java
index 88ced9f..d4a0ee0 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java
@@ -571,10 +571,6 @@
/**
* Tests that scope based dependency selection happens before dependency management.
- * <p>
- * This is not really correct (see MRESOLVER-9), but there are a number of tests
- * in the Maven and Maven Integration Testing projects that currently rely on this
- * behaviour.
*/
@Test
public void testSelectionBeforeManagement()
@@ -604,7 +600,7 @@
// With proper dependency management, the test scope of aid3 would
// be managed to compile, and we would get another child.
// Currently, the dependency gets filtered by ScopeDependencyManager.
- assertEquals( 0, childLevel1.getChildren().size() );
+ assertEquals( 1, childLevel1.getChildren().size() );
}
static class TestDependencyManager