From 5af1c2166e698758a953c8f3529a1792a41e5ea2 Mon Sep 17 00:00:00 2001 From: Brian Collins Date: Sat, 26 Oct 2024 21:49:04 -0700 Subject: [PATCH 1/3] deps: Update google-cloud-pubsublite-parent version to 1.14.5 deps: Remove explicit version of pubsublite libraries. Depend on version inherited from parent chore: disable GuardedBy where CloseableMonitor is used. Newer versions of ErrorProne do not recognize CloseableMonitor as satisfying GuardedBy --- pom.xml | 25 ++++++++----------- pubsublite-kafka/pom.xml | 5 ---- .../kafka/SinglePartitionSubscriber.java | 10 ++++---- .../kafka/SingleSubscriptionConsumerImpl.java | 5 ++-- .../kafka/SinglePartitionSubscriberTest.java | 1 - .../SingleSubscriptionConsumerImplTest.java | 1 - .../pubsublite/kafka/StatusTestHelpers.java | 1 - 7 files changed, 19 insertions(+), 29 deletions(-) diff --git a/pom.xml b/pom.xml index 818da5dc..cdfa939a 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.google.cloud google-cloud-pubsublite-parent - 1.12.1 + 1.14.5 4.0.0 com.google.cloud @@ -17,22 +17,9 @@ pubsublite-kafka pubsublite-kafka-auth - - 1.12.1 - - - com.google.api.grpc - proto-google-cloud-pubsublite-v1 - ${psl.version} - - - com.google.cloud - google-cloud-pubsublite - ${psl.version} - org.apache.kafka kafka-clients @@ -40,4 +27,14 @@ + + + com.google.api.grpc + proto-google-cloud-pubsublite-v1 + + + com.google.cloud + google-cloud-pubsublite + + diff --git a/pubsublite-kafka/pom.xml b/pubsublite-kafka/pom.xml index d6abffee..d347f5e3 100644 --- a/pubsublite-kafka/pom.xml +++ b/pubsublite-kafka/pom.xml @@ -69,11 +69,6 @@ truth test - - com.google.truth.extensions - truth-java8-extension - test - org.mockito mockito-core diff --git a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java index 4c34be0e..101244bc 100644 --- a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java +++ b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java @@ -31,7 +31,6 @@ import com.google.cloud.pubsublite.proto.SequencedMessage; import com.google.common.collect.Iterables; import com.google.common.util.concurrent.MoreExecutors; -import com.google.errorprone.annotations.concurrent.GuardedBy; import java.util.ArrayDeque; import java.util.Optional; @@ -44,13 +43,14 @@ class SinglePartitionSubscriber extends ProxyService { private final CloseableMonitor monitor = new CloseableMonitor(); - @GuardedBy("monitor.monitor") + // New versions of ErrorProne do not recognize CloseableMonitor + // @GuardedBy("monitor.monitor") private BlockingPullSubscriber subscriber; - @GuardedBy("monitor.monitor") + // @GuardedBy("monitor.monitor") private boolean needsCommitting = false; - @GuardedBy("monitor.monitor") + // @GuardedBy("monitor.monitor") private Optional lastReceived = Optional.empty(); SinglePartitionSubscriber( @@ -99,7 +99,7 @@ ApiFuture onData() { } } - @GuardedBy("monitor.monitor") + // @GuardedBy("monitor.monitor") private ArrayDeque pullMessages() throws CheckedApiException { ArrayDeque messages = new ArrayDeque<>(); for (Optional message = subscriber.messageIfAvailable(); diff --git a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java index 323b2c0e..580b484c 100644 --- a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java +++ b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java @@ -67,11 +67,12 @@ class SingleSubscriptionConsumerImpl implements SingleSubscriptionConsumer { private final CloseableMonitor monitor = new CloseableMonitor(); - @GuardedBy("monitor.monitor") + // New versions of ErrorProne do not recognize CloseableMonitor + // @GuardedBy("monitor.monitor") private final Map partitions = new HashMap<>(); // When the set of assignments changes, this future will be set and swapped with a new future to // let ongoing pollers know that they should pick up new assignments. - @GuardedBy("monitor.monitor") + // @GuardedBy("monitor.monitor") private SettableApiFuture assignmentChanged = SettableApiFuture.create(); // Set when wakeup() has been called once. diff --git a/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriberTest.java b/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriberTest.java index e35278bf..3e7ba0cd 100644 --- a/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriberTest.java +++ b/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriberTest.java @@ -17,7 +17,6 @@ package com.google.cloud.pubsublite.kafka; import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth8.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.times; diff --git a/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImplTest.java b/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImplTest.java index fd00d0d4..0166c04b 100644 --- a/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImplTest.java +++ b/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImplTest.java @@ -18,7 +18,6 @@ import static com.google.cloud.pubsublite.internal.testing.UnitTestExamples.example; import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth8.assertThat; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; diff --git a/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/StatusTestHelpers.java b/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/StatusTestHelpers.java index 7d343dd0..7dd1737a 100755 --- a/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/StatusTestHelpers.java +++ b/pubsublite-kafka/src/test/java/com/google/cloud/pubsublite/kafka/StatusTestHelpers.java @@ -17,7 +17,6 @@ package com.google.cloud.pubsublite.kafka; import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth8.assertThat; import static org.junit.Assert.assertThrows; import com.google.api.gax.rpc.StatusCode.Code; From 7408065f39050f99ba7ac6111a52e3491302ef81 Mon Sep 17 00:00:00 2001 From: Brian Collins Date: Mon, 28 Oct 2024 07:20:18 -0700 Subject: [PATCH 2/3] deps: errorprone-annotations is no longer used since updates to GuardedBy stopped recognizing our existing locking --- pubsublite-kafka/pom.xml | 4 ---- .../cloud/pubsublite/kafka/SinglePartitionSubscriber.java | 5 ----- .../pubsublite/kafka/SingleSubscriptionConsumerImpl.java | 6 ------ 3 files changed, 15 deletions(-) diff --git a/pubsublite-kafka/pom.xml b/pubsublite-kafka/pom.xml index d347f5e3..c0670165 100644 --- a/pubsublite-kafka/pom.xml +++ b/pubsublite-kafka/pom.xml @@ -54,10 +54,6 @@ com.google.auto.value auto-value-annotations - - com.google.errorprone - error_prone_annotations - junit diff --git a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java index 101244bc..72f00bdd 100644 --- a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java +++ b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SinglePartitionSubscriber.java @@ -43,14 +43,10 @@ class SinglePartitionSubscriber extends ProxyService { private final CloseableMonitor monitor = new CloseableMonitor(); - // New versions of ErrorProne do not recognize CloseableMonitor - // @GuardedBy("monitor.monitor") private BlockingPullSubscriber subscriber; - // @GuardedBy("monitor.monitor") private boolean needsCommitting = false; - // @GuardedBy("monitor.monitor") private Optional lastReceived = Optional.empty(); SinglePartitionSubscriber( @@ -99,7 +95,6 @@ ApiFuture onData() { } } - // @GuardedBy("monitor.monitor") private ArrayDeque pullMessages() throws CheckedApiException { ArrayDeque messages = new ArrayDeque<>(); for (Optional message = subscriber.messageIfAvailable(); diff --git a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java index 580b484c..e23354e0 100644 --- a/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java +++ b/pubsublite-kafka/src/main/java/com/google/cloud/pubsublite/kafka/SingleSubscriptionConsumerImpl.java @@ -37,7 +37,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.flogger.GoogleLogger; import com.google.common.util.concurrent.MoreExecutors; -import com.google.errorprone.annotations.concurrent.GuardedBy; import java.time.Duration; import java.util.AbstractMap.SimpleEntry; import java.util.ArrayList; @@ -67,12 +66,9 @@ class SingleSubscriptionConsumerImpl implements SingleSubscriptionConsumer { private final CloseableMonitor monitor = new CloseableMonitor(); - // New versions of ErrorProne do not recognize CloseableMonitor - // @GuardedBy("monitor.monitor") private final Map partitions = new HashMap<>(); // When the set of assignments changes, this future will be set and swapped with a new future to // let ongoing pollers know that they should pick up new assignments. - // @GuardedBy("monitor.monitor") private SettableApiFuture assignmentChanged = SettableApiFuture.create(); // Set when wakeup() has been called once. @@ -90,7 +86,6 @@ class SingleSubscriptionConsumerImpl implements SingleSubscriptionConsumer { } @Override - @SuppressWarnings("GuardedBy") public void setAssignment(Set assignment) { try (CloseableMonitor.Hold h = monitor.enter()) { @@ -215,7 +210,6 @@ public ApiFuture> commitAll() { } @Override - @SuppressWarnings("GuardedBy") public ApiFuture commit(Map commitOffsets) { try (CloseableMonitor.Hold h = monitor.enter()) { ImmutableList.Builder> commitFutures = ImmutableList.builder(); From 8fb03793dc58d9c9aae5c1f7f78ba3cc90af89e2 Mon Sep 17 00:00:00 2001 From: Brian Collins Date: Mon, 28 Oct 2024 09:15:56 -0700 Subject: [PATCH 3/3] chore: dependency-plugin is now complaining about duplicate deps in pubsublite-kafka-auth --- pubsublite-kafka-auth/pom.xml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/pubsublite-kafka-auth/pom.xml b/pubsublite-kafka-auth/pom.xml index 980ac414..d2417f99 100644 --- a/pubsublite-kafka-auth/pom.xml +++ b/pubsublite-kafka-auth/pom.xml @@ -1,5 +1,7 @@ - + com.google.cloud pubsublite-kafka-parent @@ -31,4 +33,18 @@ guava - + + + + org.apache.maven.plugins + maven-dependency-plugin + + + com.google.flogger:google-extensions + com.google.api.grpc:proto-google-cloud-pubsublite-v1 + + + + + + \ No newline at end of file