diff --git a/CHANGES.md b/CHANGES.md index bb2a3626facf..0a4dc68afb41 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -67,6 +67,11 @@ ## Breaking Changes +* The Java artifacts "beam-sdks-java-io-kinesis", "beam-sdks-java-io-google-cloud-platform", and + "beam-sdks-java-extensions-sql-zetasql" declare Guava 30.1-jre dependency (It was 25.1-jre in Beam 2.27.0). + This new Guava version may introduce dependency conflicts if your project or dependencies rely + on removed APIs. If affected, ensure to use an appropriate Guava version via `dependencyManagement` in Maven and + `force` in Gradle. * X behavior was changed ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)). ## Deprecations 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 68b56393aa6c..dbf81b020c58 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -83,6 +83,14 @@ class BeamModulePlugin implements Plugin { """ static AtomicInteger startingExpansionPortNumber = new AtomicInteger(18091) + /** List of paths to the projects that require Guava 25. Hadoop and Cassandra have dependency to + * methods available in the old Guava version (BEAM-11626) */ + static List guava25Projects = [ + ":sdks:java:io:cassandra", + ":sdks:java:io:hadoop-format", + ":sdks:java:io:hadoop-file-system", + ] + /** A class defining the set of configurable properties accepted by applyJavaNature. */ class JavaNatureConfiguration { /** Controls whether the spotbugs plugin is enabled and configured. */ @@ -436,7 +444,7 @@ class BeamModulePlugin implements Plugin { def google_oauth_clients_version = "1.31.0" // Try to keep grpc_version consistent with gRPC version in google_cloud_platform_libraries_bom def grpc_version = "1.32.2" - def guava_version = "25.1-jre" + def guava_version = guava25Projects.contains(project.path) ? "25.1-jre" : "30.1-jre" def hadoop_version = "2.10.1" def hamcrest_version = "2.1" def influxdb_version = "2.19"