This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git


The following commit(s) were added to refs/heads/master by this push:
     new bbac290e7 Feat: Maven 3 experimental scope manager (#1868)
bbac290e7 is described below

commit bbac290e7804bd0805f59d3c5589b97d12430e1b
Author: Tamas Cservenak <[email protected]>
AuthorDate: Mon May 11 23:09:22 2026 +0200

    Feat: Maven 3 experimental scope manager (#1868)
    
    Just FTR, but is not used.
---
 .../supplier/Maven3ScopeManagerConfiguration.java  | 40 ++++++++++++++++++----
 1 file changed, 34 insertions(+), 6 deletions(-)

diff --git 
a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
 
b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
index 2aa1ba776..6b1bc3236 100644
--- 
a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
+++ 
b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
@@ -43,21 +43,32 @@ import static 
org.eclipse.aether.impl.scope.BuildScopeQuery.union;
 
 /**
  * Maven3 scope configurations. Configures scope manager to support Maven3 
scopes.
+ * <p>
+ * This manager supports the old Maven 3 dependency scopes + new 
"compile-only".
+ * <p>
+ * Note: Maven3 CANNOT support Maven 4 scopes "test-only" and "test-runtime", 
as it does not distinguish
+ * resolution scope (the class {@code ResolutionScope} has only "TEST", 
instead of "TEST_COMPILE" and "TEST_RUNTIME").
  *
  * @since 2.0.11
  */
 public final class Maven3ScopeManagerConfiguration implements 
ScopeManagerConfiguration {
     public static final Maven3ScopeManagerConfiguration INSTANCE = new 
Maven3ScopeManagerConfiguration();
-    public static final String DS_COMPILE = "compile";
-    public static final String DS_RUNTIME = "runtime";
-    public static final String DS_PROVIDED = "provided";
-    public static final String DS_SYSTEM = "system";
-    public static final String DS_TEST = "test";
+    public static final String DS_NONE = "none";
+    public static final String DS_COMPILE = "compile"; // JavaScopes.COMPILE;
+    public static final String DS_COMPILE_ONLY = "compile-only";
+    public static final String DS_RUNTIME = "runtime"; // JavaScopes.RUNTIME;
+    public static final String DS_PROVIDED = "provided"; // 
JavaScopes.PROVIDED;
+    public static final String DS_SYSTEM = "system"; // JavaScopes.SYSTEM;
+    public static final String DS_TEST = "test"; // JavaScopes.TEST;
+    public static final String DS_TEST_ONLY = "test-only";
+    public static final String DS_TEST_RUNTIME = "test-runtime";
+
     public static final String RS_NONE = "none";
     public static final String RS_MAIN_COMPILE = "main-compile";
     public static final String RS_MAIN_COMPILE_PLUS_RUNTIME = 
"main-compilePlusRuntime";
     public static final String RS_MAIN_RUNTIME = "main-runtime";
     public static final String RS_MAIN_RUNTIME_PLUS_SYSTEM = 
"main-runtimePlusSystem";
+    public static final String RS_TEST = "test";
     public static final String RS_TEST_COMPILE = "test-compile";
     public static final String RS_TEST_RUNTIME = "test-runtime";
 
@@ -81,7 +92,7 @@ public final class Maven3ScopeManagerConfiguration implements 
ScopeManagerConfig
     @Override
     public BuildScopeSource getBuildScopeSource() {
         return new BuildScopeMatrixSource(
-                Collections.singletonList(CommonBuilds.PROJECT_PATH_MAIN),
+                Arrays.asList(CommonBuilds.PROJECT_PATH_MAIN, 
CommonBuilds.PROJECT_PATH_TEST),
                 Arrays.asList(CommonBuilds.BUILD_PATH_COMPILE, 
CommonBuilds.BUILD_PATH_RUNTIME),
                 CommonBuilds.MAVEN_TEST_BUILD_SCOPE);
     }
@@ -89,7 +100,10 @@ public final class Maven3ScopeManagerConfiguration 
implements ScopeManagerConfig
     @Override
     public Collection<DependencyScope> 
buildDependencyScopes(InternalScopeManager internalScopeManager) {
         ArrayList<DependencyScope> result = new ArrayList<>();
+        result.add(internalScopeManager.createDependencyScope(DS_NONE, false, 
Collections.emptySet()));
         result.add(internalScopeManager.createDependencyScope(DS_COMPILE, 
true, all()));
+        result.add(internalScopeManager.createDependencyScope(
+                DS_COMPILE_ONLY, false, select(CommonBuilds.PROJECT_PATH_MAIN, 
CommonBuilds.BUILD_PATH_COMPILE)));
         result.add(internalScopeManager.createDependencyScope(
                 DS_RUNTIME, true, 
byBuildPath(CommonBuilds.BUILD_PATH_RUNTIME)));
         result.add(internalScopeManager.createDependencyScope(
@@ -100,6 +114,10 @@ public final class Maven3ScopeManagerConfiguration 
implements ScopeManagerConfig
                         select(CommonBuilds.PROJECT_PATH_TEST, 
CommonBuilds.BUILD_PATH_RUNTIME))));
         result.add(internalScopeManager.createDependencyScope(
                 DS_TEST, false, 
byProjectPath(CommonBuilds.PROJECT_PATH_TEST)));
+        result.add(internalScopeManager.createDependencyScope(
+                DS_TEST_ONLY, false, singleton(CommonBuilds.PROJECT_PATH_TEST, 
CommonBuilds.BUILD_PATH_COMPILE)));
+        result.add(internalScopeManager.createDependencyScope(
+                DS_TEST_RUNTIME, false, 
singleton(CommonBuilds.PROJECT_PATH_TEST, CommonBuilds.BUILD_PATH_RUNTIME)));
         result.add(internalScopeManager.createSystemDependencyScope(
                 DS_SYSTEM, false, all(), ArtifactProperties.LOCAL_PATH));
         return result;
@@ -122,28 +140,38 @@ public final class Maven3ScopeManagerConfiguration 
implements ScopeManagerConfig
                 allDependencyScopes));
         result.add(internalScopeManager.createResolutionScope(
                 RS_MAIN_COMPILE,
+                Collections.singleton("compile"),
                 InternalScopeManager.Mode.ELIMINATE,
                 singleton(CommonBuilds.PROJECT_PATH_MAIN, 
CommonBuilds.BUILD_PATH_COMPILE),
                 Collections.singletonList(system),
                 nonTransitiveDependencyScopes));
         result.add(internalScopeManager.createResolutionScope(
                 RS_MAIN_COMPILE_PLUS_RUNTIME,
+                Collections.singleton("compile+runtime"),
                 InternalScopeManager.Mode.ELIMINATE,
                 byProjectPath(CommonBuilds.PROJECT_PATH_MAIN),
                 Collections.singletonList(system),
                 nonTransitiveDependencyScopes));
         result.add(internalScopeManager.createResolutionScope(
                 RS_MAIN_RUNTIME,
+                Collections.singleton("runtime"),
                 InternalScopeManager.Mode.ELIMINATE,
                 singleton(CommonBuilds.PROJECT_PATH_MAIN, 
CommonBuilds.BUILD_PATH_RUNTIME),
                 Collections.emptySet(),
                 nonTransitiveDependencyScopes));
         result.add(internalScopeManager.createResolutionScope(
                 RS_MAIN_RUNTIME_PLUS_SYSTEM,
+                Collections.singleton("runtime+system"),
                 InternalScopeManager.Mode.ELIMINATE,
                 singleton(CommonBuilds.PROJECT_PATH_MAIN, 
CommonBuilds.BUILD_PATH_RUNTIME),
                 Collections.singletonList(system),
                 nonTransitiveDependencyScopes));
+        result.add(internalScopeManager.createResolutionScope(
+                RS_TEST,
+                InternalScopeManager.Mode.ELIMINATE,
+                byProjectPath(CommonBuilds.PROJECT_PATH_TEST),
+                Collections.singletonList(system),
+                nonTransitiveDependencyScopes));
         result.add(internalScopeManager.createResolutionScope(
                 RS_TEST_COMPILE,
                 InternalScopeManager.Mode.ELIMINATE,

Reply via email to