diff --git a/.github/workflows/codeql-java-analysis.yml b/.github/workflows/codeql-java-analysis.yml
index b7668b497fd..fb56ee54bbf 100644
--- a/.github/workflows/codeql-java-analysis.yml
+++ b/.github/workflows/codeql-java-analysis.yml
@@ -75,16 +75,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
# 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)
# - name: Autobuild
diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml
index f456026f505..f7c2a440004 100644
--- a/.github/workflows/deploy-docs.yml
+++ b/.github/workflows/deploy-docs.yml
@@ -145,11 +145,6 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-
- - name: 'Setup Maven'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.9
-
- name: Setup Temurin JDK
uses: actions/setup-java@v5
with:
diff --git a/.github/workflows/java-publish-snapshot.yml b/.github/workflows/java-publish-snapshot.yml
index c20d218e19e..111413f7af9 100644
--- a/.github/workflows/java-publish-snapshot.yml
+++ b/.github/workflows/java-publish-snapshot.yml
@@ -48,16 +48,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.8
-
- name: 'Deploy Maven snapshots'
env:
ASF_USERNAME: ${{ secrets.NEXUS_USER }}
diff --git a/.github/workflows/maven4.yml b/.github/workflows/maven4.yml
index f19c6dcd355..a574bdc8a67 100644
--- a/.github/workflows/maven4.yml
+++ b/.github/workflows/maven4.yml
@@ -28,6 +28,9 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
+env:
+ MAVEN4_VERSION: '4.0.0-rc-5'
+
jobs:
maven4:
runs-on: ubuntu-latest
@@ -50,20 +53,20 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-build-cache
- - name: 'Setup Temurin JDK 8, 11, 17 & 21'
+ - name: 'Setup Temurin JDK 11, 17 & 21'
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- name: Setup Maven 4
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 4.0.0-alpha-10
+ run: |
+ wget -q https://archive.apache.org/dist/maven/maven-4/${{ env.MAVEN4_VERSION }}/binaries/apache-maven-${{ env.MAVEN4_VERSION }}-bin.tar.gz
+ tar xzf apache-maven-${{ env.MAVEN4_VERSION }}-bin.tar.gz -C /opt
+ echo "/opt/apache-maven-${{ env.MAVEN4_VERSION }}/bin" >> $GITHUB_PATH
- name: Test
run: mvn clean verify
diff --git a/.github/workflows/rat.yml b/.github/workflows/rat.yml
index 96a9c0ec915..ec952a9d1a9 100644
--- a/.github/workflows/rat.yml
+++ b/.github/workflows/rat.yml
@@ -44,15 +44,9 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- 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..06cc7e2bd19 100644
--- a/.github/workflows/spotless.yml
+++ b/.github/workflows/spotless.yml
@@ -47,15 +47,9 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- 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..c9f0cdeea00 100644
--- a/.github/workflows/test-lang-c.yml
+++ b/.github/workflows/test-lang-c.yml
@@ -73,16 +73,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -PskipQuality
@@ -133,16 +127,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -PskipQuality
diff --git a/.github/workflows/test-lang-csharp.yml b/.github/workflows/test-lang-csharp.yml
index af5ddbc8e0c..47df0f56b78 100644
--- a/.github/workflows/test-lang-csharp.yml
+++ b/.github/workflows/test-lang-csharp.yml
@@ -103,16 +103,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -PskipQuality
diff --git a/.github/workflows/test-lang-java.yml b/.github/workflows/test-lang-java.yml
index 97d5111692f..4c3bf040dd3 100644
--- a/.github/workflows/test-lang-java.yml
+++ b/.github/workflows/test-lang-java.yml
@@ -63,11 +63,6 @@ jobs:
17
21
- - name: "Setup Maven 3.9.11"
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: "Install Java Avro Toplevel"
working-directory: ./
run: mvn -B install -PskipQuality -DskipTests
@@ -115,11 +110,6 @@ jobs:
17
21
- - name: "Setup Maven 3.9.11"
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: "Setup Python for Generating Input Data"
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
diff --git a/.github/workflows/test-lang-perl.yml b/.github/workflows/test-lang-perl.yml
index b92a13f1855..998cf111587 100644
--- a/.github/workflows/test-lang-perl.yml
+++ b/.github/workflows/test-lang-perl.yml
@@ -118,16 +118,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -PskipQuality
diff --git a/.github/workflows/test-lang-php.yml b/.github/workflows/test-lang-php.yml
index 4359f609dd6..c894f8bd081 100644
--- a/.github/workflows/test-lang-php.yml
+++ b/.github/workflows/test-lang-php.yml
@@ -114,16 +114,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -PskipQuality
diff --git a/.github/workflows/test-lang-py.yml b/.github/workflows/test-lang-py.yml
index 1db39c4e069..363d15fb22b 100644
--- a/.github/workflows/test-lang-py.yml
+++ b/.github/workflows/test-lang-py.yml
@@ -132,16 +132,10 @@ jobs:
with:
distribution: "temurin"
java-version: |
- 8
11
17
21
- - name: "Setup Maven 3.9.11"
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -PskipQuality
diff --git a/.github/workflows/test-lang-ruby.yml b/.github/workflows/test-lang-ruby.yml
index bf98f9ccb78..1a23690458e 100644
--- a/.github/workflows/test-lang-ruby.yml
+++ b/.github/workflows/test-lang-ruby.yml
@@ -122,16 +122,10 @@ jobs:
with:
distribution: 'temurin'
java-version: |
- 8
11
17
21
- - name: 'Setup Maven 3.9.11'
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
- with:
- maven-version: 3.9.11
-
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -PskipQuality
diff --git a/.gitignore b/.gitignore
index 437a035f0b3..c8da8c02c3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,5 +28,6 @@ test-output
vendor
composer.lock
.phpunit.result.cache
-.mvn/jvm.config # Maven JVM settings
+.mvn/jvm.config # Maven JVM settings
+.mvn/maven.config # Local Maven settings
**/*.run.xml # Intellij IDEA Run configurations
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/BUILD.md b/BUILD.md
index 217630b625d..a6021ac97bd 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.12 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/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..d847602d603 100644
--- a/lang/java/ipc-jetty/pom.xml
+++ b/lang/java/ipc-jetty/pom.xml
@@ -50,10 +50,8 @@
org.apache.maven.plugins
maven-surefire-plugin
-
1
false
- none
diff --git a/lang/java/ipc-netty/pom.xml b/lang/java/ipc-netty/pom.xml
index 420a96116b6..39e7449e06c 100644
--- a/lang/java/ipc-netty/pom.xml
+++ b/lang/java/ipc-netty/pom.xml
@@ -51,10 +51,8 @@
org.apache.maven.plugins
maven-surefire-plugin
-
1
false
- none
diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml
index 6f5fb359df9..65096c5aede 100644
--- a/lang/java/ipc/pom.xml
+++ b/lang/java/ipc/pom.xml
@@ -58,10 +58,8 @@
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 cc6940132a0..b02662eed1f 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.14
5.23.0
4.2.14.Final
4.35.0
@@ -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
diff --git a/pom.xml b/pom.xml
index 2b94296637c..b916c9915c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -250,7 +250,7 @@
21
- [3.9.6,)
+ [3.9.12,)
diff --git a/share/docker/Dockerfile b/share/docker/Dockerfile
index 5932e5be7b1..3e3d3d3e7d4 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.12
# 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/ \