From da52a20b7177c04c8fed6e1f4b2ca13eb041c802 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 25 Apr 2026 15:10:03 +0000 Subject: [PATCH 1/3] AVRO-XXXX [Java] Make build system fully parallel --- .mvn/build-cache-config.xml | 75 +++++++++++++++++++++++++++++++++++++ .mvn/extensions.xml | 2 +- lang/java/avro/pom.xml | 3 -- lang/java/compiler/pom.xml | 4 -- lang/java/ipc-jetty/pom.xml | 6 --- lang/java/ipc-netty/pom.xml | 6 --- lang/java/ipc/pom.xml | 4 +- lang/java/mapred/pom.xml | 4 -- lang/java/pom.xml | 1 + lang/java/tools/pom.xml | 4 -- lang/java/trevni/pom.xml | 4 -- 11 files changed, 78 insertions(+), 35 deletions(-) create mode 100644 .mvn/build-cache-config.xml diff --git a/.mvn/build-cache-config.xml b/.mvn/build-cache-config.xml new file mode 100644 index 00000000000..422f7fe031a --- /dev/null +++ b/.mvn/build-cache-config.xml @@ -0,0 +1,75 @@ + + + + + true + SHA-256 + true + + 3 + + + + + + + {*.java,*.groovy,*.yaml,*.svcd,*.proto,*assembly.xml,assembly*.xml,*logback.xml,*.vm,*.ini,*.jks,*.properties,*.sh,*.bat} + + + src/ + + + pom.xml + + + + + + + + + install + + + + + deploy + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml index e2e84018d96..f1d20a28816 100644 --- a/.mvn/extensions.xml +++ b/.mvn/extensions.xml @@ -20,6 +20,6 @@ org.apache.maven.extensions maven-build-cache-extension - 1.0.1 + 1.2.2 diff --git a/lang/java/avro/pom.xml b/lang/java/avro/pom.xml index 8cab8b75f5c..5101d5c4320 100644 --- a/lang/java/avro/pom.xml +++ b/lang/java/avro/pom.xml @@ -88,9 +88,6 @@ org.apache.maven.plugins maven-surefire-plugin - - none - test-with-custom-coders diff --git a/lang/java/compiler/pom.xml b/lang/java/compiler/pom.xml index be3163cac0a..fb1b56cbe97 100644 --- a/lang/java/compiler/pom.xml +++ b/lang/java/compiler/pom.xml @@ -109,10 +109,6 @@ org.apache.maven.plugins maven-surefire-plugin - - 1 - false - none ${project.basedir}/src/test/idl diff --git a/lang/java/ipc-jetty/pom.xml b/lang/java/ipc-jetty/pom.xml index fdc2a258bdc..54d15c5d0e6 100644 --- a/lang/java/ipc-jetty/pom.xml +++ b/lang/java/ipc-jetty/pom.xml @@ -49,12 +49,6 @@ org.apache.maven.plugins maven-surefire-plugin - - - 1 - false - none - org.apache.maven.plugins diff --git a/lang/java/ipc-netty/pom.xml b/lang/java/ipc-netty/pom.xml index 420a96116b6..a8f16f51bae 100644 --- a/lang/java/ipc-netty/pom.xml +++ b/lang/java/ipc-netty/pom.xml @@ -50,12 +50,6 @@ org.apache.maven.plugins maven-surefire-plugin - - - 1 - false - none - org.apache.maven.plugins diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml index 6f5fb359df9..4ea58dae427 100644 --- a/lang/java/ipc/pom.xml +++ b/lang/java/ipc/pom.xml @@ -58,9 +58,7 @@ org.apache.maven.plugins maven-surefire-plugin - - 1 - false + none diff --git a/lang/java/mapred/pom.xml b/lang/java/mapred/pom.xml index 91982cfd110..9ffb4097b25 100644 --- a/lang/java/mapred/pom.xml +++ b/lang/java/mapred/pom.xml @@ -88,10 +88,6 @@ org.apache.maven.plugins maven-surefire-plugin - - 1 - false - none -Djava.security.manager=allow diff --git a/lang/java/pom.xml b/lang/java/pom.xml index f6d04ccc9e9..f8cce60b341 100644 --- a/lang/java/pom.xml +++ b/lang/java/pom.xml @@ -179,6 +179,7 @@ false false random + 1C all true diff --git a/lang/java/tools/pom.xml b/lang/java/tools/pom.xml index 50f1bae2a8b..3581428e2dc 100644 --- a/lang/java/tools/pom.xml +++ b/lang/java/tools/pom.xml @@ -161,10 +161,6 @@ org.apache.maven.plugins maven-surefire-plugin - - 1 - false - none -Djava.security.manager=allow diff --git a/lang/java/trevni/pom.xml b/lang/java/trevni/pom.xml index 64fd16c10f6..12b326a1ec8 100644 --- a/lang/java/trevni/pom.xml +++ b/lang/java/trevni/pom.xml @@ -51,10 +51,6 @@ maven-surefire-plugin false - - 1 - false - none -Djava.security.manager=allow From 26b73e6af3fd78314c160a355bd07ef6909748b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Tue, 5 May 2026 01:55:48 +0200 Subject: [PATCH 2/3] AVRO-XXXX: [Java] Upgrade Maven to 3.9.15, drop Java 8 from CI Update Maven version from 3.9.6/3.9.8/3.9.9/3.9.11 to 3.9.15 across all build configurations (pom.xml enforcer rule, maven-core dependency, Dockerfile, CI workflows, and docs). Replace pinned SHA references for stCarolas/setup-maven with the @v5 tag. Remove Java 8 from setup-java version lists since it is no longer supported. Update maven 4 to RC 5 version --- .github/workflows/codeql-java-analysis.yml | 7 +++---- .github/workflows/deploy-docs.yml | 4 ++-- .github/workflows/java-publish-snapshot.yml | 5 ++--- .github/workflows/maven4.yml | 5 ++--- .github/workflows/rat.yml | 7 +++---- .github/workflows/spotless.yml | 7 +++---- .github/workflows/test-lang-c.yml | 14 ++++++-------- .github/workflows/test-lang-csharp.yml | 7 +++---- .github/workflows/test-lang-java.yml | 12 ++++++------ .github/workflows/test-lang-perl.yml | 7 +++---- .github/workflows/test-lang-php.yml | 7 +++---- .github/workflows/test-lang-py.yml | 7 +++---- .github/workflows/test-lang-ruby.yml | 7 +++---- BUILD.md | 2 +- lang/java/pom.xml | 2 +- pom.xml | 2 +- share/docker/Dockerfile | 2 +- 17 files changed, 46 insertions(+), 58 deletions(-) diff --git a/.github/workflows/codeql-java-analysis.yml b/.github/workflows/codeql-java-analysis.yml index b7668b497fd..045c461defe 100644 --- a/.github/workflows/codeql-java-analysis.yml +++ b/.github/workflows/codeql-java-analysis.yml @@ -75,15 +75,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index f456026f505..d48224c58da 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -146,9 +146,9 @@ jobs: ${{ runner.os }}-maven- - name: 'Setup Maven' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.9 + maven-version: 3.9.15 - name: Setup Temurin JDK uses: actions/setup-java@v5 diff --git a/.github/workflows/java-publish-snapshot.yml b/.github/workflows/java-publish-snapshot.yml index c20d218e19e..33af089f1a7 100644 --- a/.github/workflows/java-publish-snapshot.yml +++ b/.github/workflows/java-publish-snapshot.yml @@ -48,15 +48,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - name: 'Setup Maven' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.8 + maven-version: 3.9.15 - name: 'Deploy Maven snapshots' env: diff --git a/.github/workflows/maven4.yml b/.github/workflows/maven4.yml index f19c6dcd355..ebc39e0de02 100644 --- a/.github/workflows/maven4.yml +++ b/.github/workflows/maven4.yml @@ -55,15 +55,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - name: Setup Maven 4 - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + uses: stCarolas/setup-maven@v5 with: - maven-version: 4.0.0-alpha-10 + maven-version: 4.0.0-rc-5 - name: Test run: mvn clean verify diff --git a/.github/workflows/rat.yml b/.github/workflows/rat.yml index 96a9c0ec915..eb55f98f31d 100644 --- a/.github/workflows/rat.yml +++ b/.github/workflows/rat.yml @@ -44,15 +44,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Run Rat run: mvn test -Dmaven.main.skip=true -Dmaven.test.skip=true -DskipTests=true -Dinvoker.skip=true -P rat -pl :avro-toplevel diff --git a/.github/workflows/spotless.yml b/.github/workflows/spotless.yml index 2b4f8bdedf8..fec7cbdc335 100644 --- a/.github/workflows/spotless.yml +++ b/.github/workflows/spotless.yml @@ -47,15 +47,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Run Spotless Check run: mvn spotless:check diff --git a/.github/workflows/test-lang-c.yml b/.github/workflows/test-lang-c.yml index e3afece7c55..4687ec32987 100644 --- a/.github/workflows/test-lang-c.yml +++ b/.github/workflows/test-lang-c.yml @@ -73,15 +73,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Install Java Avro for Interop Test working-directory: . @@ -133,15 +132,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Install Java Avro for Interop Test working-directory: . diff --git a/.github/workflows/test-lang-csharp.yml b/.github/workflows/test-lang-csharp.yml index af5ddbc8e0c..98f06e684d5 100644 --- a/.github/workflows/test-lang-csharp.yml +++ b/.github/workflows/test-lang-csharp.yml @@ -103,15 +103,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Install Java Avro for Interop Test working-directory: . diff --git a/.github/workflows/test-lang-java.yml b/.github/workflows/test-lang-java.yml index 97d5111692f..7c6e9fb37f9 100644 --- a/.github/workflows/test-lang-java.yml +++ b/.github/workflows/test-lang-java.yml @@ -63,10 +63,10 @@ jobs: 17 21 - - name: "Setup Maven 3.9.11" - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: "Setup Maven 3.9.15" + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: "Install Java Avro Toplevel" working-directory: ./ @@ -115,10 +115,10 @@ jobs: 17 21 - - name: "Setup Maven 3.9.11" - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: "Setup Maven 3.9.15" + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: "Setup Python for Generating Input Data" uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 diff --git a/.github/workflows/test-lang-perl.yml b/.github/workflows/test-lang-perl.yml index b92a13f1855..bb585cbb844 100644 --- a/.github/workflows/test-lang-perl.yml +++ b/.github/workflows/test-lang-perl.yml @@ -118,15 +118,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Install Java Avro for Interop Test working-directory: . diff --git a/.github/workflows/test-lang-php.yml b/.github/workflows/test-lang-php.yml index e8e56d25a46..d5014851105 100644 --- a/.github/workflows/test-lang-php.yml +++ b/.github/workflows/test-lang-php.yml @@ -114,15 +114,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Install Java Avro for Interop Test working-directory: . diff --git a/.github/workflows/test-lang-py.yml b/.github/workflows/test-lang-py.yml index 1db39c4e069..9bfc2a1cef9 100644 --- a/.github/workflows/test-lang-py.yml +++ b/.github/workflows/test-lang-py.yml @@ -132,15 +132,14 @@ jobs: with: distribution: "temurin" java-version: | - 8 11 17 21 - - name: "Setup Maven 3.9.11" - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: "Setup Maven 3.9.15" + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Install Java Avro for Interop Test working-directory: . diff --git a/.github/workflows/test-lang-ruby.yml b/.github/workflows/test-lang-ruby.yml index bf98f9ccb78..a07d26484d8 100644 --- a/.github/workflows/test-lang-ruby.yml +++ b/.github/workflows/test-lang-ruby.yml @@ -122,15 +122,14 @@ jobs: with: distribution: 'temurin' java-version: | - 8 11 17 21 - - name: 'Setup Maven 3.9.11' - uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5 + - name: 'Setup Maven 3.9.15' + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.11 + maven-version: 3.9.15 - name: Install Java Avro for Interop Test working-directory: . diff --git a/BUILD.md b/BUILD.md index 217630b625d..b361fd37eb3 100644 --- a/BUILD.md +++ b/BUILD.md @@ -4,7 +4,7 @@ The following packages must be installed before Avro can be built: - - Java: 11, 17 and 21 with the appropriate toolchain config, Maven 3.9.6 or better, protobuf-compile + - Java: 11, 17 and 21 with the appropriate toolchain config, Maven 3.9.15 or better, protobuf-compile - PHP: php8, phpunit, php8-gmp - Python 3: 3.10 or greater, tox (tox will install other dependencies as needed) - C: gcc, cmake, asciidoc, source-highlight, Jansson, pkg-config diff --git a/lang/java/pom.xml b/lang/java/pom.xml index f8cce60b341..89c2507a28a 100644 --- a/lang/java/pom.xml +++ b/lang/java/pom.xml @@ -49,7 +49,7 @@ 9.4.58.v20250814 5.0.4 5.14.4 - 3.9.6 + 3.9.15 5.23.0 4.2.12.Final 4.34.1 diff --git a/pom.xml b/pom.xml index 46d91f21c1f..5cbd17b9e46 100644 --- a/pom.xml +++ b/pom.xml @@ -250,7 +250,7 @@ 21 - [3.9.6,) + [3.9.15,) diff --git a/share/docker/Dockerfile b/share/docker/Dockerfile index 5932e5be7b1..6f87fe74d82 100644 --- a/share/docker/Dockerfile +++ b/share/docker/Dockerfile @@ -72,7 +72,7 @@ RUN apt-get -qqy update \ # Install a maven release ------------------------------------------- # Inspired from https://github.com/apache/accumulo-docker/blob/bbb9892e165d40fb35fa19f38929effc5d0c709b/Dockerfile#L30 -ENV MAVEN_VERSION=3.9.11 +ENV MAVEN_VERSION=3.9.15 # Ideally we use the 1st URL only, but if the version is outdated (or we're grabbing the .asc file), we might have to pull from the dist/archive :/ ENV APACHE_DIST_URLS="https://www.apache.org/dyn/closer.cgi?action=download&filename= \ https://www-us.apache.org/dist/ \ From d1759a985354f95a8c68e9225ddb8fb4564ad45a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Tue, 5 May 2026 02:10:15 +0200 Subject: [PATCH 3/3] Disable parallelism for IPC --- lang/java/ipc-jetty/pom.xml | 4 ++++ lang/java/ipc-netty/pom.xml | 4 ++++ lang/java/ipc/pom.xml | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lang/java/ipc-jetty/pom.xml b/lang/java/ipc-jetty/pom.xml index 54d15c5d0e6..d847602d603 100644 --- a/lang/java/ipc-jetty/pom.xml +++ b/lang/java/ipc-jetty/pom.xml @@ -49,6 +49,10 @@ org.apache.maven.plugins maven-surefire-plugin + + 1 + false + org.apache.maven.plugins diff --git a/lang/java/ipc-netty/pom.xml b/lang/java/ipc-netty/pom.xml index a8f16f51bae..39e7449e06c 100644 --- a/lang/java/ipc-netty/pom.xml +++ b/lang/java/ipc-netty/pom.xml @@ -50,6 +50,10 @@ org.apache.maven.plugins maven-surefire-plugin + + 1 + false + org.apache.maven.plugins diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml index 4ea58dae427..65096c5aede 100644 --- a/lang/java/ipc/pom.xml +++ b/lang/java/ipc/pom.xml @@ -58,8 +58,8 @@ org.apache.maven.plugins maven-surefire-plugin - - none + 1 + false