This is an automated email from the ASF dual-hosted git repository. penghui pushed a commit to branch branch-2.10 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit de54ef6791dd329728a7c9edf5cad396f090a8b4 Author: Cong Zhao <[email protected]> AuthorDate: Wed Jul 13 21:16:41 2022 +0800 Fix: Make DeadLetterPolicy deserializable (#16513) (cherry picked from commit abe4350d46c7a4dc82b17f3c552d3d69c3a878f9) --- .../pulsar/client/api/DeadLetterTopicTest.java | 29 ++++++++++++++++------ .../apache/pulsar/client/api/DeadLetterPolicy.java | 4 +++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/DeadLetterTopicTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/DeadLetterTopicTest.java index 03a29e1884e..2c780cc999c 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/DeadLetterTopicTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/DeadLetterTopicTest.java @@ -18,21 +18,28 @@ */ package org.apache.pulsar.client.api; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; import java.time.Duration; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; - +import lombok.Cleanup; import lombok.Data; import org.apache.avro.reflect.Nullable; import org.apache.pulsar.client.api.schema.GenericRecord; -import lombok.Cleanup; +import org.apache.pulsar.client.impl.ConsumerBuilderImpl; import org.apache.pulsar.client.util.RetryMessageUtil; import org.awaitility.Awaitility; import org.slf4j.Logger; @@ -41,12 +48,6 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; - @Test(groups = "flaky") public class DeadLetterTopicTest extends ProducerConsumerBase { @@ -794,4 +795,16 @@ public class DeadLetterTopicTest extends ProducerConsumerBase { otherConsumer.close(); consumer.close(); } + + @Test + public void testDeadLetterPolicyDeserialize() throws Exception { + ConsumerBuilder<String> consumerBuilder = pulsarClient.newConsumer(Schema.STRING); + DeadLetterPolicy policy = + DeadLetterPolicy.builder().deadLetterTopic("a").retryLetterTopic("a").initialSubscriptionName("a") + .maxRedeliverCount(1).build(); + consumerBuilder.deadLetterPolicy(policy); + Map<String, Object> config = new HashMap<>(); + consumerBuilder.loadConf(config); + assertEquals(((ConsumerBuilderImpl)consumerBuilder).getConf().getDeadLetterPolicy(), policy); + } } diff --git a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/DeadLetterPolicy.java b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/DeadLetterPolicy.java index e9982381390..ed70ca31e2c 100644 --- a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/DeadLetterPolicy.java +++ b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/DeadLetterPolicy.java @@ -18,8 +18,10 @@ */ package org.apache.pulsar.client.api; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import org.apache.pulsar.common.classification.InterfaceAudience; import org.apache.pulsar.common.classification.InterfaceStability; @@ -30,6 +32,8 @@ import org.apache.pulsar.common.classification.InterfaceStability; */ @Builder @Data +@NoArgsConstructor +@AllArgsConstructor @InterfaceAudience.Public @InterfaceStability.Stable public class DeadLetterPolicy {
