You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ma...@apache.org on 2022/07/15 09:52:27 UTC

[pulsar] branch branch-2.9 updated: Fix: Make DeadLetterPolicy deserializable (#16513)

This is an automated email from the ASF dual-hosted git repository.

mattisonchao pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-2.9 by this push:
     new 91bebddf78a Fix: Make DeadLetterPolicy deserializable (#16513)
91bebddf78a is described below

commit 91bebddf78aa0766b65c7860f27076c8799c9acd
Author: Cong Zhao <zh...@apache.org>
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 645c7674b00..22b224990ed 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,19 +18,26 @@
  */
 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.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.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.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,12 +45,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 {
 
@@ -615,4 +616,16 @@ public class DeadLetterTopicTest extends ProducerConsumerBase {
 
         checkConsumer.close();
     }
+
+    @Test
+    public void testDeadLetterPolicyDeserialize() {
+        ConsumerBuilder<String> consumerBuilder = pulsarClient.newConsumer(Schema.STRING);
+        DeadLetterPolicy policy =
+                DeadLetterPolicy.builder().deadLetterTopic("a").retryLetterTopic("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 279a5c508f5..91a53c99409 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 {