[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