This is an automated email from the ASF dual-hosted git repository.
Abacn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 455075b436f Upgrade to Avro 1.12 (#38373)
455075b436f is described below
commit 455075b436ff16803a1d04d358da3b2485c621b1
Author: Yi Hu <[email protected]>
AuthorDate: Wed May 6 11:50:41 2026 -0400
Upgrade to Avro 1.12 (#38373)
---
.github/workflows/README.md | 3 --
.../org/apache/beam/gradle/BeamModulePlugin.groovy | 4 +--
sdks/java/extensions/avro/build.gradle | 4 +--
.../extensions/avro/schemas/utils/AvroUtils.java | 2 ++
.../avro/AvroVersionVerificationTest.java | 5 ++-
.../sdk/extensions/avro/coders/AvroCoderTest.java | 5 +--
.../avro/io/AvroGeneratedUserFactory.java | 4 +--
.../sdk/extensions/avro/io/AvroSourceTest.java | 11 +++----
.../avro/io/SerializableAvroCodecFactoryTest.java | 4 +--
.../avro/schemas/TestAvroConversionFactory.java | 5 ++-
.../extensions/avro/schemas/TestAvroFactory.java | 4 +--
.../avro/schemas/utils/AvroUtilsTest.java | 4 +--
.../extensions/avro/vendored-test/build.gradle | 38 ----------------------
sdks/java/io/expansion-service/build.gradle | 2 --
.../expansion-service/build.gradle | 6 ----
.../beam/sdk/io/gcp/pubsub/PubsubClientTest.java | 3 +-
settings.gradle.kts | 1 -
17 files changed, 26 insertions(+), 79 deletions(-)
diff --git a/.github/workflows/README.md b/.github/workflows/README.md
index 68b6a6bb7eb..a6539d18f36 100644
--- a/.github/workflows/README.md
+++ b/.github/workflows/README.md
@@ -290,7 +290,6 @@ PreCommit Jobs run in a schedule and also get triggered in
a PR if relevant sour
| [ PreCommit RAT
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_RAT.yml) |
N/A | `Run RAT PreCommit` |
[](https://github.com/apache/beam/actions/workflows/beam_PreCommit_RAT.yml?query=event%3Aschedule)
|
| [ PreCommit Spotless
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Spotless.yml)
| N/A | `Run Spotless PreCommit` |
[](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Spotless.yml?query=event%3Aschedule)
|
| [ PreCommit SQL
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL.yml) |
N/A |`Run SQL PreCommit`|
[](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL.yml?query=event%3Aschedule)
|
-| [ PreCommit SQL Java8
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL_Java8.yml)
| N/A |`Run SQL_Java8 PreCommit`|
[](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL_Java8.yml?query=event%3Aschedule)
|
| [ PreCommit SQL Java17
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL_Java17.yml)
| N/A |`Run SQL_Java17 PreCommit`|
[](https://github.com/apache/beam/actions/workflows/beam_PreCommit_SQL_Java17.yml?query=event%3Aschedule)
|
| [ PreCommit Typescript
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Typescript.yml)
| N/A |`Run Typescript PreCommit`|
[](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Typescript.yml?query=event%3Aschedule)
|
| [ PreCommit Website
](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Website.yml)
| N/A |`Run Website PreCommit`|
[](https://github.com/apache/beam/actions/workflows/beam_PreCommit_Website.yml?query=event%3Aschedule)
|
@@ -368,9 +367,7 @@ PostCommit Jobs run in a schedule against master branch and
generally do not get
| [ PostCommit Java ValidatesRunner Dataflow
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Dataflow.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_Dataflow.json`|
[](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_
[...]
| [ PostCommit Java ValidatesRunner Direct JavaVersions
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Direct_JavaVersions.yml)
| ['8','25'] |`beam_PostCommit_Java_ValidatesRunner_Direct_JavaVersions.json`|
[](https://github.com/apach
[...]
| [ PostCommit Java ValidatesRunner Direct
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Direct.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_Direct.json`|
[](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Direct.yml
[...]
-| [ PostCommit Java ValidatesRunner Flink Java8
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Flink_Java8.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_Flink_Java8.json`|
[](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_V
[...]
| [ PostCommit Java ValidatesRunner Flink
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Flink.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_Flink.json`|
[](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Flink.yml?query
[...]
-| [ PostCommit Java ValidatesRunner Spark Java8
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Spark_Java8.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_Spark_Java8.json`|
[](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_V
[...]
| [ PostCommit Java ValidatesRunner Spark
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Spark.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_Spark.json`|
[](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Spark.yml?query
[...]
| [ PostCommit Java ValidatesRunner SparkStructuredStreaming
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_SparkStructuredStreaming.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_SparkStructuredStreaming.json`|
[](https:
[...]
| [ PostCommit Java ValidatesRunner Twister2
](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_Twister2.yml)
| N/A |`beam_PostCommit_Java_ValidatesRunner_Twister2.json`|
[](https://github.com/apache/beam/actions/workflows/beam_PostCommit_Java_ValidatesRunner_
[...]
diff --git
a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
index 362eef05243..e32d1c9afb7 100644
--- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
+++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
@@ -682,8 +682,8 @@ class BeamModulePlugin implements Plugin<Project> {
aircompressor :
"io.airlift:aircompressor:2.0.3",
args4j : "args4j:args4j:2.33",
auto_value_annotations :
"com.google.auto.value:auto-value-annotations:$autovalue_version",
- // TODO: https://github.com/apache/beam/issues/34993 after stopping
supporting Java 8
- avro :
"org.apache.avro:avro:1.11.4",
+ // TODO: upgrade post 1.12.1 once
https://issues.apache.org/jira/browse/AVRO-4209 resolved
+ avro :
"org.apache.avro:avro:1.12.0",
aws_java_sdk2_apache_client :
"software.amazon.awssdk:apache-client:$aws_java_sdk2_version",
aws_java_sdk2_netty_client :
"software.amazon.awssdk:netty-nio-client:$aws_java_sdk2_version",
aws_java_sdk2_auth :
"software.amazon.awssdk:auth:$aws_java_sdk2_version",
diff --git a/sdks/java/extensions/avro/build.gradle
b/sdks/java/extensions/avro/build.gradle
index 6b24bf693df..718f07c0366 100644
--- a/sdks/java/extensions/avro/build.gradle
+++ b/sdks/java/extensions/avro/build.gradle
@@ -40,7 +40,7 @@ def avroVersions = [
'182' : "1.8.2",
'192' : "1.9.2",
'1102': "1.10.2",
- '1120': "1.12.0",
+ '1113': "1.11.3",
]
avroVersions.each { k, v ->
@@ -73,7 +73,7 @@ dependencies {
// Exclude Avro dependencies from "core" since Avro support moved to this
extension
exclude group: "org.apache.avro", module: "avro"
}
- testImplementation project(path: ":sdks:java:extensions:avro:vendored-test",
configuration: "shadowTest")
+ testImplementation(library.java.avro + ':tests')
testImplementation library.java.junit
testImplementation "org.tukaani:xz:1.9" // marked as optional in avro
testImplementation "com.esotericsoftware:kryo:5.6.2" // Used by Avro coder
test
diff --git
a/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtils.java
b/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtils.java
index 45726564642..99eb7f96190 100644
---
a/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtils.java
+++
b/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtils.java
@@ -156,6 +156,8 @@ import org.joda.time.ReadableInstant;
"rawtypes"
})
public class AvroUtils {
+ public static final String VERSION_AVRO =
+ org.apache.avro.Schema.class.getPackage().getImplementationVersion();
private static final ForLoadedType BYTES = new ForLoadedType(byte[].class);
private static final ForLoadedType JAVA_INSTANT = new
ForLoadedType(java.time.Instant.class);
private static final ForLoadedType JAVA_LOCALE_DATE =
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/AvroVersionVerificationTest.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/AvroVersionVerificationTest.java
index f9e9a54b053..ac17afadae2 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/AvroVersionVerificationTest.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/AvroVersionVerificationTest.java
@@ -17,9 +17,9 @@
*/
package org.apache.beam.sdk.extensions.avro;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
import static org.junit.Assert.assertEquals;
-import org.apache.avro.Schema;
import org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.base.Strings;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.junit.Assume;
@@ -33,7 +33,6 @@ public class AvroVersionVerificationTest {
public void testAvroVersion() {
@Nullable String targetVer =
System.getProperty("beam.target.avro.version");
Assume.assumeTrue(!Strings.isNullOrEmpty(targetVer));
- String actualVer = Schema.class.getPackage().getImplementationVersion();
- assertEquals(targetVer, actualVer);
+ assertEquals(targetVer, VERSION_AVRO);
}
}
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/coders/AvroCoderTest.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/coders/AvroCoderTest.java
index 69dfe71ee0b..e1843d79eff 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/coders/AvroCoderTest.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/coders/AvroCoderTest.java
@@ -17,6 +17,7 @@
*/
package org.apache.beam.sdk.extensions.avro.coders;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
@@ -131,8 +132,6 @@ public class AvroCoderTest {
ImmutableList.of(AVRO_NESTED_SPECIFIC_RECORD,
AVRO_NESTED_SPECIFIC_RECORD),
ImmutableMap.of("k1", AVRO_NESTED_SPECIFIC_RECORD, "k2",
AVRO_NESTED_SPECIFIC_RECORD));
- private static final String VERSION_AVRO =
Schema.class.getPackage().getImplementationVersion();
-
@DefaultCoder(AvroCoder.class)
private static class Pojo {
public String text;
@@ -875,6 +874,7 @@ public class AvroCoderTest {
@Test
public void testDeterminismCyclicClass() {
+ // Note: this test fails on Avro 1.12.1 due to
https://issues.apache.org/jira/browse/AVRO-4209
assertNonDeterministic(
AvroCoder.of(Cyclic.class),
reasonField(Cyclic.class, "cyclicField", "appears recursively"));
@@ -1164,6 +1164,7 @@ public class AvroCoderTest {
@Test
public void testNullableNonDeterministicField() {
+ // Note: this test fails on Avro 1.12.1 due to
https://issues.apache.org/jira/browse/AVRO-4209
assertNonDeterministic(
AvroCoder.of(NullableCyclic.class),
reasonField(
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroGeneratedUserFactory.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroGeneratedUserFactory.java
index 65552b705df..8f16141443e 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroGeneratedUserFactory.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroGeneratedUserFactory.java
@@ -17,15 +17,15 @@
*/
package org.apache.beam.sdk.extensions.avro.io;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
+
import java.lang.reflect.Constructor;
-import org.apache.avro.Schema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** Create a {@link AvroGeneratedUser} instance with different constructors. */
public class AvroGeneratedUserFactory {
private static final Logger LOG =
LoggerFactory.getLogger(AvroGeneratedUserFactory.class);
- private static final String VERSION_AVRO =
Schema.class.getPackage().getImplementationVersion();
public static AvroGeneratedUser newInstance(
String name, Integer favoriteNumber, String favoriteColor) {
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroSourceTest.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroSourceTest.java
index f4841f1cdc0..27d070d6920 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroSourceTest.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroSourceTest.java
@@ -17,6 +17,7 @@
*/
package org.apache.beam.sdk.extensions.avro.io;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
import static
org.apache.beam.sdk.transforms.display.DisplayDataMatchers.hasDisplayItem;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
@@ -74,9 +75,6 @@ import org.junit.runners.JUnit4;
/** Tests for AvroSource. */
@RunWith(JUnit4.class)
public class AvroSourceTest {
- private static final String VERSION_AVRO =
- org.apache.avro.Schema.class.getPackage().getImplementationVersion();
-
@Rule public TemporaryFolder tmpFolder = new TemporaryFolder();
@Rule public ExpectedException expectedException = ExpectedException.none();
@@ -560,10 +558,11 @@ public class AvroSourceTest {
AvroSource.DatumReaderFactory<GenericRecord> factory =
(writer, reader) ->
- new GenericDatumReader<GenericRecord>(writer, reader) {
+ new GenericDatumReader<>(writer, reader) {
@Override
- protected Object readString(Object old, Decoder in) throws
IOException {
- return super.readString(old, in) + "_custom";
+ protected Object readString(Object old, Schema schema, Decoder
in)
+ throws IOException {
+ return super.readString(old, schema, in) + "_custom";
}
};
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/SerializableAvroCodecFactoryTest.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/SerializableAvroCodecFactoryTest.java
index 52f7a670027..19141a82148 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/SerializableAvroCodecFactoryTest.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/SerializableAvroCodecFactoryTest.java
@@ -22,6 +22,7 @@ import static
org.apache.avro.file.DataFileConstants.DEFLATE_CODEC;
import static org.apache.avro.file.DataFileConstants.NULL_CODEC;
import static org.apache.avro.file.DataFileConstants.SNAPPY_CODEC;
import static org.apache.avro.file.DataFileConstants.XZ_CODEC;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
@@ -40,9 +41,6 @@ import org.junit.runners.JUnit4;
/** Tests of SerializableAvroCodecFactory. */
@RunWith(JUnit4.class)
public class SerializableAvroCodecFactoryTest {
- private static final String VERSION_AVRO =
- org.apache.avro.Schema.class.getPackage().getImplementationVersion();
-
private static final List<String> avroCodecs = new ArrayList<>();
static {
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroConversionFactory.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroConversionFactory.java
index d6d6aeaffa3..cdf16f71a69 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroConversionFactory.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroConversionFactory.java
@@ -17,15 +17,14 @@
*/
package org.apache.beam.sdk.extensions.avro.schemas;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
+
import java.lang.reflect.Constructor;
-import org.apache.avro.Schema;
import org.joda.time.LocalDate;
/** Create a {@link TestAvroConversion} instance with different constructors.
*/
public class TestAvroConversionFactory {
- private static final String VERSION_AVRO =
Schema.class.getPackage().getImplementationVersion();
-
public static TestAvroConversion newInstance(LocalDate date) throws
Exception {
if (VERSION_AVRO.equals("1.8.2")) {
Constructor<?> constructor =
TestAvroConversion.class.getDeclaredConstructor(LocalDate.class);
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroFactory.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroFactory.java
index 4d52a35543e..ab1fdee9269 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroFactory.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroFactory.java
@@ -17,11 +17,12 @@
*/
package org.apache.beam.sdk.extensions.avro.schemas;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
+
import java.lang.reflect.Constructor;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;
-import org.apache.avro.Schema;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.slf4j.Logger;
@@ -30,7 +31,6 @@ import org.slf4j.LoggerFactory;
/** Create a {@link TestAvro} instance with different constructors. */
public class TestAvroFactory {
private static final Logger LOG =
LoggerFactory.getLogger(TestAvroFactory.class);
- private static final String VERSION_AVRO =
Schema.class.getPackage().getImplementationVersion();
public static TestAvro newInstance(
Boolean boolNonNullable,
diff --git
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtilsTest.java
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtilsTest.java
index 282158bec03..6db5206c3cf 100644
---
a/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtilsTest.java
+++
b/sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroUtilsTest.java
@@ -17,6 +17,7 @@
*/
package org.apache.beam.sdk.extensions.avro.schemas.utils;
+import static
org.apache.beam.sdk.extensions.avro.schemas.utils.AvroUtils.VERSION_AVRO;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -86,9 +87,6 @@ public class AvroUtilsTest {
private static final org.apache.avro.Schema NULL_SCHEMA =
org.apache.avro.Schema.create(org.apache.avro.Schema.Type.NULL);
- private static final String VERSION_AVRO =
- org.apache.avro.Schema.class.getPackage().getImplementationVersion();
-
private Iterable<?> randomData(org.apache.avro.Schema schema, int maxLength)
throws Exception {
Iterable<?> data;
if (VERSION_AVRO.equals("1.8.2")) {
diff --git a/sdks/java/extensions/avro/vendored-test/build.gradle
b/sdks/java/extensions/avro/vendored-test/build.gradle
deleted file mode 100644
index b0489c27a13..00000000000
--- a/sdks/java/extensions/avro/vendored-test/build.gradle
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.
- */
-plugins { id 'org.apache.beam.module' }
-applyJavaNature(
- automaticModuleName: 'org.apache.beam.sdk.extensions.avro',
- exportJavadoc: false,
- shadowClosure: {
- dependencies {
- include(dependency("org.apache.avro:avro:1.11.3:tests"))
- }
- },
-)
-
-configurations.all {
- resolutionStrategy.force "org.apache.avro:avro:1.11.3:tests"
-}
-
-dependencies {
- testRuntimeOnly "org.apache.avro:avro:1.11.3:tests"
-}
-
-description = "Apache Beam :: SDKs :: Java :: Extensions :: Avro :: Vendored
Tests"
-ext.summary = "Vendor Avro 1.11.3 tests for Beam, a workaround of Avro 1.11.4
not release test jar"
diff --git a/sdks/java/io/expansion-service/build.gradle
b/sdks/java/io/expansion-service/build.gradle
index a6a99c52d71..4e4c15f367c 100644
--- a/sdks/java/io/expansion-service/build.gradle
+++ b/sdks/java/io/expansion-service/build.gradle
@@ -35,8 +35,6 @@ applyJavaNature(
configurations.runtimeClasspath {
// Pin kafka-clients version due to <3.4.0 missing auth callback classes.
resolutionStrategy.force 'org.apache.kafka:kafka-clients:3.9.0'
- // iceberg needs avro:1.12.0
- resolutionStrategy.force 'org.apache.avro:avro:1.12.0'
// force parquet-avro:1.15.2 to fix CVE-2025-46762
resolutionStrategy.force 'org.apache.parquet:parquet-avro:1.15.2'
diff --git a/sdks/java/io/google-cloud-platform/expansion-service/build.gradle
b/sdks/java/io/google-cloud-platform/expansion-service/build.gradle
index d1f65c88bdc..824a2659b84 100644
--- a/sdks/java/io/google-cloud-platform/expansion-service/build.gradle
+++ b/sdks/java/io/google-cloud-platform/expansion-service/build.gradle
@@ -26,12 +26,6 @@ applyJavaNature(
shadowClosure: {},
)
-configurations.runtimeClasspath {
- // Pin avro to 1.11.4 due to https://github.com/apache/beam/issues/34968
- // cannot upgrade this to the latest version due to
https://github.com/apache/beam/issues/34993
- resolutionStrategy.force 'org.apache.avro:avro:1.11.4'
-}
-
description = "Apache Beam :: SDKs :: Java :: IO :: Google Cloud Platform ::
Expansion Service"
ext.summary = "Expansion service serving GCP Java IOs"
diff --git
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/pubsub/PubsubClientTest.java
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/pubsub/PubsubClientTest.java
index 9d7bc65f595..e834d4eef5e 100644
---
a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/pubsub/PubsubClientTest.java
+++
b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/pubsub/PubsubClientTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertThrows;
import com.google.pubsub.v1.Schema;
import java.util.Map;
+import org.apache.avro.AvroTypeException;
import org.apache.avro.SchemaParseException;
import org.apache.beam.sdk.io.gcp.pubsub.PubsubClient.ProjectPath;
import org.apache.beam.sdk.io.gcp.pubsub.PubsubClient.SchemaPath;
@@ -262,7 +263,7 @@ public class PubsubClientTest {
assertThrows(
"'notatype' Avro type should throw an exception",
- SchemaParseException.class,
+ AvroTypeException.class,
() ->
PubsubClient.fromPubsubSchema(
new com.google.api.services.pubsub.model.Schema()
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 4080206bb54..60ff1cf8ce1 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -174,7 +174,6 @@ include(":sdks:java:expansion-service:container")
include(":sdks:java:expansion-service:app")
include(":sdks:java:extensions:arrow")
include(":sdks:java:extensions:avro")
-include("sdks:java:extensions:avro:vendored-test")
include(":sdks:java:extensions:euphoria")
include(":sdks:java:extensions:kryo")
include(":sdks:java:extensions:google-cloud-platform-core")