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 {