From f46e2e4bb4f0e7a31b4b517f5b69b929db609c0e Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 9 May 2025 21:49:18 +0200 Subject: [PATCH 1/9] Fix for Java 24 w/ upcoming new Eclipse Sisu --- apache-maven/pom.xml | 1 - .../cling/executor/internal/ToolboxTool.java | 24 ++++++++++--------- pom.xml | 13 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml index d0acee6246b9..c072e27e677e 100644 --- a/apache-maven/pom.xml +++ b/apache-maven/pom.xml @@ -128,7 +128,6 @@ under the License. org.eclipse.sisu org.eclipse.sisu.inject - no_asm com.google.inject diff --git a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java index 4357ba0d5369..1efd2307fab6 100644 --- a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java +++ b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java @@ -56,11 +56,11 @@ public Map dump(ExecutorRequest.Builder executorRequest) throws .argument("-DasProperties") .stdOut(stdout) .stdErr(stderr); - doExecute(builder); + ExecutorRequest request = doExecute(builder); try { Properties properties = new Properties(); properties.load(new ByteArrayInputStream( - validateOutput(false, stdout, stderr).getBytes())); + validateOutput(request, false, stdout, stderr).getBytes())); return properties.entrySet().stream() .collect(Collectors.toMap( e -> String.valueOf(e.getKey()), @@ -79,8 +79,8 @@ public String localRepository(ExecutorRequest.Builder executorRequest) throws Ex ExecutorRequest.Builder builder = mojo(executorRequest, "gav-local-repository-path") .stdOut(stdout) .stdErr(stderr); - doExecute(builder); - return validateOutput(true, stdout, stderr); + ExecutorRequest request = doExecute(builder); + return validateOutput(request, true, stdout, stderr); } @Override @@ -95,8 +95,8 @@ public String artifactPath(ExecutorRequest.Builder executorRequest, String gav, if (repositoryId != null) { builder.argument("-Drepository=" + repositoryId + "::unimportant"); } - doExecute(builder); - return validateOutput(true, stdout, stderr); + ExecutorRequest request = doExecute(builder); + return validateOutput(request, true, stdout, stderr); } @Override @@ -111,8 +111,8 @@ public String metadataPath(ExecutorRequest.Builder executorRequest, String gav, if (repositoryId != null) { builder.argument("-Drepository=" + repositoryId + "::unimportant"); } - doExecute(builder); - return validateOutput(true, stdout, stderr); + ExecutorRequest request = doExecute(builder); + return validateOutput(request, true, stdout, stderr); } private ExecutorRequest.Builder mojo(ExecutorRequest.Builder builder, String mojo) { @@ -122,7 +122,7 @@ private ExecutorRequest.Builder mojo(ExecutorRequest.Builder builder, String moj return builder.argument(TOOLBOX + mojo).argument("--quiet").argument("-DforceStdout"); } - private void doExecute(ExecutorRequest.Builder builder) { + private ExecutorRequest doExecute(ExecutorRequest.Builder builder) { ExecutorRequest request = builder.build(); int ec = helper.execute(request); if (ec != 0) { @@ -130,19 +130,21 @@ private void doExecute(ExecutorRequest.Builder builder) { + request.stdOut().orElse(null) + "; stderr=" + request.stdErr().orElse(null)); } + return request; } /** * Performs "sanity check" for output, making sure no insane values like empty strings are returned. */ - private String validateOutput(boolean shave, ByteArrayOutputStream stdout, ByteArrayOutputStream stderr) { + private String validateOutput( + ExecutorRequest request, boolean shave, ByteArrayOutputStream stdout, ByteArrayOutputStream stderr) { String result = stdout.toString(); if (shave) { result = result.replace("\n", "").replace("\r", ""); } // sanity checks: stderr has any OR result is empty string (no method should emit empty string) if (stderr.size() > 0 || result.trim().isEmpty()) { - throw new ExecutorException( + System.err.println( "Unexpected stdout[" + stdout.size() + "]=" + stdout + "; stderr[" + stderr.size() + "]=" + stderr); } return result; diff --git a/pom.xml b/pom.xml index 9930e3c82e36..d5daea2c4f3a 100644 --- a/pom.xml +++ b/pom.xml @@ -164,7 +164,7 @@ under the License. 4.1.0 2.0.8 4.1.0 - 0.9.0.M3 + 0.9.0-SNAPSHOT 2.0.17 4.2.2 3.5.3 @@ -411,12 +411,6 @@ under the License. org.eclipse.sisu.inject ${sisuVersion} - - org.eclipse.sisu - org.eclipse.sisu.inject - ${sisuVersion} - no_asm - jakarta.inject jakarta.inject-api @@ -796,6 +790,11 @@ under the License. + + org.eclipse.sisu + sisu-maven-plugin + ${sisuVersion} + From 414a8bba8bb09b2c92dbc484798004c04e16d712 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 9 May 2025 21:58:32 +0200 Subject: [PATCH 2/9] Align ASM with the one we want always --- pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pom.xml b/pom.xml index d5daea2c4f3a..548143454145 100644 --- a/pom.xml +++ b/pom.xml @@ -794,6 +794,13 @@ under the License. org.eclipse.sisu sisu-maven-plugin ${sisuVersion} + + + org.ow2.asm + asm + ${asmVersion} + + From 342d65fc12fad0f3f3b53033f2524c95dd2f2c4a Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 9 May 2025 23:02:01 +0200 Subject: [PATCH 3/9] Use snapshots --- pom.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pom.xml b/pom.xml index 548143454145..9ec26f86fea7 100644 --- a/pom.xml +++ b/pom.xml @@ -691,6 +691,20 @@ under the License. --> + + + Central Portal Snapshots + central-portal-snapshots + https://central.sonatype.com/repository/maven-snapshots/ + + false + + + true + + + + From 56dd2854449c2667b8ddfcb8558339ad229cdaaa Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 9 May 2025 23:02:53 +0200 Subject: [PATCH 4/9] Reformat --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 9ec26f86fea7..b6c4e9d1fb53 100644 --- a/pom.xml +++ b/pom.xml @@ -693,15 +693,15 @@ under the License. - Central Portal Snapshots - central-portal-snapshots - https://central.sonatype.com/repository/maven-snapshots/ false true + central-portal-snapshots + Central Portal Snapshots + https://central.sonatype.com/repository/maven-snapshots/ From 832e94babb190a974f94c6fe7e98d9386c845f8e Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 9 May 2025 23:09:24 +0200 Subject: [PATCH 5/9] Plugin repo needed as well --- pom.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pom.xml b/pom.xml index b6c4e9d1fb53..2d559ca5cbf9 100644 --- a/pom.xml +++ b/pom.xml @@ -704,6 +704,19 @@ under the License. https://central.sonatype.com/repository/maven-snapshots/ + + + + false + + + true + + central-portal-snapshots + Central Portal Snapshots + https://central.sonatype.com/repository/maven-snapshots/ + + From c7f03eea636f0fd045d04b7798939f1915c42cfe Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Mon, 12 May 2025 14:55:40 +0200 Subject: [PATCH 6/9] Take Java 24 to dance as well --- .github/workflows/maven.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 75f0a243b2e1..0915790993f3 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -84,7 +84,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - java: ['17', '21'] + java: ['17', '21', '24'] steps: - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v4 @@ -179,7 +179,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - java: ['17', '21'] + java: ['17', '21', '24'] steps: - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v4 From 7ae9d2b50092d039fa88e7cfceee43fafccae971 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Mon, 12 May 2025 16:07:57 +0200 Subject: [PATCH 7/9] Drop unneeded changes --- .../cling/executor/internal/ToolboxTool.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java index 1efd2307fab6..1aaa5480180b 100644 --- a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java +++ b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/ToolboxTool.java @@ -56,11 +56,11 @@ public Map dump(ExecutorRequest.Builder executorRequest) throws .argument("-DasProperties") .stdOut(stdout) .stdErr(stderr); - ExecutorRequest request = doExecute(builder); + doExecute(builder); try { Properties properties = new Properties(); properties.load(new ByteArrayInputStream( - validateOutput(request, false, stdout, stderr).getBytes())); + validateOutput(false, stdout, stderr).getBytes())); return properties.entrySet().stream() .collect(Collectors.toMap( e -> String.valueOf(e.getKey()), @@ -79,8 +79,8 @@ public String localRepository(ExecutorRequest.Builder executorRequest) throws Ex ExecutorRequest.Builder builder = mojo(executorRequest, "gav-local-repository-path") .stdOut(stdout) .stdErr(stderr); - ExecutorRequest request = doExecute(builder); - return validateOutput(request, true, stdout, stderr); + doExecute(builder); + return validateOutput(true, stdout, stderr); } @Override @@ -95,8 +95,8 @@ public String artifactPath(ExecutorRequest.Builder executorRequest, String gav, if (repositoryId != null) { builder.argument("-Drepository=" + repositoryId + "::unimportant"); } - ExecutorRequest request = doExecute(builder); - return validateOutput(request, true, stdout, stderr); + doExecute(builder); + return validateOutput(true, stdout, stderr); } @Override @@ -111,8 +111,8 @@ public String metadataPath(ExecutorRequest.Builder executorRequest, String gav, if (repositoryId != null) { builder.argument("-Drepository=" + repositoryId + "::unimportant"); } - ExecutorRequest request = doExecute(builder); - return validateOutput(request, true, stdout, stderr); + doExecute(builder); + return validateOutput(true, stdout, stderr); } private ExecutorRequest.Builder mojo(ExecutorRequest.Builder builder, String mojo) { @@ -122,7 +122,7 @@ private ExecutorRequest.Builder mojo(ExecutorRequest.Builder builder, String moj return builder.argument(TOOLBOX + mojo).argument("--quiet").argument("-DforceStdout"); } - private ExecutorRequest doExecute(ExecutorRequest.Builder builder) { + private void doExecute(ExecutorRequest.Builder builder) { ExecutorRequest request = builder.build(); int ec = helper.execute(request); if (ec != 0) { @@ -130,14 +130,12 @@ private ExecutorRequest doExecute(ExecutorRequest.Builder builder) { + request.stdOut().orElse(null) + "; stderr=" + request.stdErr().orElse(null)); } - return request; } /** * Performs "sanity check" for output, making sure no insane values like empty strings are returned. */ - private String validateOutput( - ExecutorRequest request, boolean shave, ByteArrayOutputStream stdout, ByteArrayOutputStream stderr) { + private String validateOutput(boolean shave, ByteArrayOutputStream stdout, ByteArrayOutputStream stderr) { String result = stdout.toString(); if (shave) { result = result.replace("\n", "").replace("\r", ""); From 399677a3cb0872578157bfbd2a92f0b036a494a5 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Mon, 12 May 2025 16:16:15 +0200 Subject: [PATCH 8/9] Naive attempt to fix ITs --- .../src/test/resources/mng-7045/pom.xml | 4 ++-- .../extension/pom.xml | 19 +++++++++++++++++++ .../resources/mng-7587-jsr330/plugin/pom.xml | 14 ++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/its/core-it-suite/src/test/resources/mng-7045/pom.xml b/its/core-it-suite/src/test/resources/mng-7045/pom.xml index 0ab9bb2c2704..564241cbac9e 100644 --- a/its/core-it-suite/src/test/resources/mng-7045/pom.xml +++ b/its/core-it-suite/src/test/resources/mng-7045/pom.xml @@ -43,13 +43,13 @@ javax.enterprise.inject.Instance.class.getDeclaredMethod("stream")]]> org.apache.groovy groovy-ant - 4.0.15 + 4.0.26 runtime org.apache.groovy groovy - 4.0.15 + 4.0.26 runtime diff --git a/its/core-it-suite/src/test/resources/mng-7160-extensionclassloader/extension/pom.xml b/its/core-it-suite/src/test/resources/mng-7160-extensionclassloader/extension/pom.xml index 084bf78b0900..a74b6932acb9 100644 --- a/its/core-it-suite/src/test/resources/mng-7160-extensionclassloader/extension/pom.xml +++ b/its/core-it-suite/src/test/resources/mng-7160-extensionclassloader/extension/pom.xml @@ -38,4 +38,23 @@ under the License. + + + + org.eclipse.sisu + sisu-maven-plugin + 0.9.0.M3 + + + index-project + + main-index + test-index + + + + + + + diff --git a/its/core-it-suite/src/test/resources/mng-7587-jsr330/plugin/pom.xml b/its/core-it-suite/src/test/resources/mng-7587-jsr330/plugin/pom.xml index 744b809e9c12..da13fa757abf 100644 --- a/its/core-it-suite/src/test/resources/mng-7587-jsr330/plugin/pom.xml +++ b/its/core-it-suite/src/test/resources/mng-7587-jsr330/plugin/pom.xml @@ -72,6 +72,20 @@ 17 + + org.eclipse.sisu + sisu-maven-plugin + 0.9.0.M3 + + + index-project + + main-index + test-index + + + + org.apache.maven.plugins maven-plugin-plugin From 6f472fa812929ba6d0b5d7195d897954b258a730 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Mon, 12 May 2025 20:41:58 +0200 Subject: [PATCH 9/9] Up PMD --- pom.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pom.xml b/pom.xml index 033a6e0315f9..4eed8fedbed6 100644 --- a/pom.xml +++ b/pom.xml @@ -829,6 +829,17 @@ under the License. + + org.apache.maven.plugins + maven-pmd-plugin + + + net.sourceforge.pmd + pmd-core + 7.12.0 + + +