diff --git a/.github/workflows/core-hadoop2-ci.yml b/.github/workflows/core-hadoop2-ci.yml
index ad891366c5..94e9333eff 100644
--- a/.github/workflows/core-hadoop2-ci.yml
+++ b/.github/workflows/core-hadoop2-ci.yml
@@ -42,6 +42,9 @@ jobs:
steps:
- uses: actions/checkout@v3
+ - name: Setup Docker for Testcontainers
+ uses: ./.github/workflows/setup-docker-java
+
- name: Set up JDK ${{ matrix.jdk }}
uses: actions/setup-java@v3
with:
diff --git a/.github/workflows/core-hadoop3-ci.yml b/.github/workflows/core-hadoop3-ci.yml
index e93a32aa4f..0871e0d36c 100644
--- a/.github/workflows/core-hadoop3-ci.yml
+++ b/.github/workflows/core-hadoop3-ci.yml
@@ -43,6 +43,9 @@ jobs:
steps:
- uses: actions/checkout@v3
+ - name: Setup Docker for Testcontainers
+ uses: ./.github/workflows/setup-docker-java
+
- name: Set up JDK ${{ matrix.jdk }}
uses: actions/setup-java@v3
with:
diff --git a/.github/workflows/setup-docker-java/action.yml b/.github/workflows/setup-docker-java/action.yml
new file mode 100644
index 0000000000..fe7154b8a5
--- /dev/null
+++ b/.github/workflows/setup-docker-java/action.yml
@@ -0,0 +1,39 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: 'Setup Docker Java'
+description: 'Fix docker-java API version for Testcontainers'
+runs:
+ using: 'composite'
+ steps:
+ - name: 'Docker version info'
+ shell: bash
+ run: |
+ docker version
+ docker info
+
+ # Workaround: Docker Engine 29+ requires API ≥ 1.44, but docker-java
+ # (used by Testcontainers) negotiates with 1.32 which gets rejected.
+ # docker-java reads ~/.docker-java.properties at startup.
+ # Remove this step once Testcontainers ships a docker-java version
+ # that negotiates properly (track: https://github.com/testcontainers/testcontainers-java/issues/11212)
+ - name: Fix docker-java API version for Testcontainers
+ shell: bash
+ run: |
+ mkdir -p $HOME
+ echo "api.version=1.44" > $HOME/.docker-java.properties
+ cat $HOME/.docker-java.properties
\ No newline at end of file
diff --git a/amoro-ams/pom.xml b/amoro-ams/pom.xml
index 9b0f96f4a4..3f83f5e021 100644
--- a/amoro-ams/pom.xml
+++ b/amoro-ams/pom.xml
@@ -450,14 +450,12 @@
org.testcontainers
testcontainers
- 1.17.2
test
org.testcontainers
junit-jupiter
- 1.17.2
test
@@ -471,14 +469,12 @@
org.testcontainers
k3s
- 1.20.1
test
org.testcontainers
mysql
- 1.19.6
test
diff --git a/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common-iceberg-bridge/pom.xml b/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common-iceberg-bridge/pom.xml
index eb6ed9e035..6d7dc5bc6f 100644
--- a/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common-iceberg-bridge/pom.xml
+++ b/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common-iceberg-bridge/pom.xml
@@ -32,7 +32,6 @@
3.21.0
- 1.18.1
1.18.1
@@ -327,14 +326,12 @@
org.testcontainers
kafka
- ${testcontainers.version}
test
org.testcontainers
junit-jupiter
- ${testcontainers.version}
test
diff --git a/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/pom.xml b/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/pom.xml
index 51f31421df..8b10b3f2f6 100644
--- a/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/pom.xml
+++ b/amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/pom.xml
@@ -34,7 +34,6 @@
3.21.0
- 1.18.1
1.18.1
@@ -394,14 +393,12 @@
org.testcontainers
kafka
- ${testcontainers.version}
test
org.testcontainers
junit-jupiter
- ${testcontainers.version}
test
diff --git a/amoro-format-mixed/amoro-mixed-flink/v1.16/amoro-mixed-flink-1.16/pom.xml b/amoro-format-mixed/amoro-mixed-flink/v1.16/amoro-mixed-flink-1.16/pom.xml
index 091110ee27..f8235e5a61 100644
--- a/amoro-format-mixed/amoro-mixed-flink/v1.16/amoro-mixed-flink-1.16/pom.xml
+++ b/amoro-format-mixed/amoro-mixed-flink/v1.16/amoro-mixed-flink-1.16/pom.xml
@@ -36,7 +36,6 @@
1.4.3
3.2.3
3.21.0
- 1.17.2
1.16.3
diff --git a/amoro-format-mixed/amoro-mixed-flink/v1.17/amoro-mixed-flink-1.17/pom.xml b/amoro-format-mixed/amoro-mixed-flink/v1.17/amoro-mixed-flink-1.17/pom.xml
index feefab87fa..2e349a5a5d 100644
--- a/amoro-format-mixed/amoro-mixed-flink/v1.17/amoro-mixed-flink-1.17/pom.xml
+++ b/amoro-format-mixed/amoro-mixed-flink/v1.17/amoro-mixed-flink-1.17/pom.xml
@@ -35,7 +35,6 @@
3.2.3
3.21.0
- 1.17.2
1.17.2
diff --git a/amoro-format-mixed/amoro-mixed-flink/v1.18/amoro-mixed-flink-1.18/pom.xml b/amoro-format-mixed/amoro-mixed-flink/v1.18/amoro-mixed-flink-1.18/pom.xml
index 3cc9c4f28e..69d90fc205 100644
--- a/amoro-format-mixed/amoro-mixed-flink/v1.18/amoro-mixed-flink-1.18/pom.xml
+++ b/amoro-format-mixed/amoro-mixed-flink/v1.18/amoro-mixed-flink-1.18/pom.xml
@@ -35,7 +35,6 @@
3.2.3
3.21.0
- 1.18.1
1.18.1
diff --git a/dev/deps/dependencies-hadoop-2-spark-3.3 b/dev/deps/dependencies-hadoop-2-spark-3.3
index d0e0464ac2..cd86dfc6f8 100644
--- a/dev/deps/dependencies-hadoop-2-spark-3.3
+++ b/dev/deps/dependencies-hadoop-2-spark-3.3
@@ -78,8 +78,9 @@ eclipse-collections-api/11.1.0//eclipse-collections-api-11.1.0.jar
eclipse-collections/11.1.0//eclipse-collections-11.1.0.jar
ehcache/3.3.1//ehcache-3.3.1.jar
endpoints-spi/2.24.12//endpoints-spi-2.24.12.jar
-error_prone_annotations/2.10.0//error_prone_annotations-2.10.0.jar
+error_prone_annotations/2.18.0//error_prone_annotations-2.18.0.jar
eventstream/1.0.1//eventstream-1.0.1.jar
+failureaccess/1.0.1//failureaccess-1.0.1.jar
flatbuffers-java/23.5.26//flatbuffers-java-23.5.26.jar
flink-annotations/1.20.3//flink-annotations-1.20.3.jar
flink-clients/1.20.3//flink-clients-1.20.3.jar
@@ -105,7 +106,7 @@ flink-streaming-java/1.20.3//flink-streaming-java-1.20.3.jar
geronimo-jcache_1.0_spec/1.0-alpha-1//geronimo-jcache_1.0_spec-1.0-alpha-1.jar
glue/2.24.12//glue-2.24.12.jar
gson/2.8.6//gson-2.8.6.jar
-guava/14.0.1//guava-14.0.1.jar
+guava/32.1.1-jre//guava-32.1.1-jre.jar
hadoop-annotations/2.10.2//hadoop-annotations-2.10.2.jar
hadoop-auth/2.10.2//hadoop-auth-2.10.2.jar
hadoop-aws/2.10.2//hadoop-aws-2.10.2.jar
@@ -162,6 +163,7 @@ iceberg-spark-extensions-3.3_2.12/1.6.1//iceberg-spark-extensions-3.3_2.12-1.6.1
icu4j/69.1//icu4j-69.1.jar
identity-spi/2.24.12//identity-spi-2.24.12.jar
ivy/2.5.1//ivy-2.5.1.jar
+j2objc-annotations/2.8//j2objc-annotations-2.8.jar
jackson-annotations/2.14.2//jackson-annotations-2.14.2.jar
jackson-core-asl/1.9.13//jackson-core-asl-1.9.13.jar
jackson-core/2.14.2//jackson-core-2.14.2.jar
@@ -282,6 +284,7 @@ kyuubi-hive-jdbc-shaded/1.10.2//kyuubi-hive-jdbc-shaded-1.10.2.jar
leveldbjni-all/1.8//leveldbjni-all-1.8.jar
libfb303/0.9.3//libfb303-0.9.3.jar
libthrift/0.9.3//libthrift-0.9.3.jar
+listenablefuture/9999.0-empty-to-avoid-conflict-with-guava//listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
log4j-1.2-api/2.20.0//log4j-1.2-api-2.20.0.jar
log4j-api/2.20.0//log4j-api-2.20.0.jar
log4j-core/2.20.0//log4j-core-2.20.0.jar
diff --git a/pom.xml b/pom.xml
index 2161a1b568..0cf9096086 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1281,6 +1281,14 @@
${mockito.version}
test
+
+
+ org.testcontainers
+ testcontainers-bom
+ 1.21.4
+ pom
+ import
+