You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/10/18 21:09:53 UTC

(maven-mvnd) 04/05: Respect threads set in .mvn/maven.config

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

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

commit 32a236ccbefa315a346f35a2647ab14b24ad7ab5
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sun Oct 18 20:33:28 2026 +0200

    Respect threads set in .mvn/maven.config
    
    Fixes #813
---
 .../main/java/org/mvndaemon/mvnd/client/DefaultClient.java  |  4 +---
 .../java/org/mvndaemon/mvnd/client/DefaultClientTest.java   | 13 +++++++++++++
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java b/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java
index 5f54eb86..587dd92b 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java
@@ -349,10 +349,8 @@ public class DefaultClient implements Client {
                 return DefaultResult.success(argv);
             }
 
-            Optional<String> threads = Optional.ofNullable(Environment.MVND_THREADS.removeCommandLineOption(args));
-            Environment.MVND_THREADS.addCommandLineOption(args, threads.orElseGet(parameters::threads));
-
             List<String> mavenConfig = DaemonParameters.readMavenConfig(parameters.mavenConfigPath());
+            addDefaultOption(Environment.MVND_THREADS, args, mavenConfig, parameters::threads);
             addDefaultOption(Environment.MVND_BUILDER, args, mavenConfig, parameters::builder);
 
             Optional<String> settings = Optional.ofNullable(Environment.MAVEN_SETTINGS.removeCommandLineOption(args))
diff --git a/client/src/test/java/org/mvndaemon/mvnd/client/DefaultClientTest.java b/client/src/test/java/org/mvndaemon/mvnd/client/DefaultClientTest.java
index 70c8e3fa..1bbe093a 100644
--- a/client/src/test/java/org/mvndaemon/mvnd/client/DefaultClientTest.java
+++ b/client/src/test/java/org/mvndaemon/mvnd/client/DefaultClientTest.java
@@ -60,6 +60,19 @@ public class DefaultClientTest {
         assertEquals(Arrays.asList("clean", "-b", "smart"), args);
     }
 
+    @Test
+    void threadsFromMavenConfigAreNotOverridden() {
+        List<String> args = new ArrayList<>(Arrays.asList("clean"));
+        DefaultClient.addDefaultOption(Environment.MVND_THREADS, args, Arrays.asList("-T4"), () -> "7");
+        assertEquals(Arrays.asList("clean"), args);
+
+        DefaultClient.addDefaultOption(Environment.MVND_THREADS, args, Arrays.asList("--threads=1C"), () -> "7");
+        assertEquals(Arrays.asList("clean"), args);
+
+        DefaultClient.addDefaultOption(Environment.MVND_THREADS, args, Arrays.asList(), () -> "7");
+        assertEquals(Arrays.asList("clean", "-T", "7"), args);
+    }
+
     @Test
     void readsMavenConfig(@TempDir Path dir) throws Exception {
         Path config = dir.resolve("maven.config");