From 2618003c0e9577611a1921eb827dbc8c0ab8a19f Mon Sep 17 00:00:00 2001 From: Zixuan Liu Date: Thu, 11 Sep 2025 12:08:57 +0800 Subject: [PATCH] [fix][client] Add description method to ClientBuilder --- .../client/api/SimpleProducerConsumerTest.java | 3 +-- .../apache/pulsar/client/api/ClientBuilder.java | 17 +++++++++++++++++ .../pulsar/client/impl/ClientBuilderImpl.java | 16 +--------------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/SimpleProducerConsumerTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/SimpleProducerConsumerTest.java index cc43bf06ded3b..2b1d83be59138 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/SimpleProducerConsumerTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/SimpleProducerConsumerTest.java @@ -98,7 +98,6 @@ import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.client.api.schema.GenericRecord; import org.apache.pulsar.client.impl.BatchMessageIdImpl; -import org.apache.pulsar.client.impl.ClientBuilderImpl; import org.apache.pulsar.client.impl.ConsumerBase; import org.apache.pulsar.client.impl.ConsumerImpl; import org.apache.pulsar.client.impl.MessageIdImpl; @@ -4868,7 +4867,7 @@ public void testClientVersion() throws Exception { assertEquals(stats.getPublishers().size(), 1); assertEquals(stats.getPublishers().get(0).getClientVersion(), defaultClientVersion); - PulsarClient client = ((ClientBuilderImpl) PulsarClient.builder()) + PulsarClient client = PulsarClient.builder() .description("my-java-client") .serviceUrl(lookupUrl.toString()) .build(); diff --git a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java index c1ef9ed819be2..034c167a9b3fa 100644 --- a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java +++ b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java @@ -717,4 +717,21 @@ ClientBuilder authentication(String authPluginClassName, Map aut * - The `loadManagerClassName` config in broker is a class that implements the `ExtensibleLoadManager` interface */ ClientBuilder lookupProperties(Map properties); + + /** + * Set the description. + * + *

By default, when the client connects to the broker, a version string like "Pulsar-Java-v" will be + * carried and saved by the broker. The client version string could be queried from the topic stats. + * + *

This method provides a way to add more description to a specific PulsarClient instance. If it's configured, + * the description will be appended to the original client version string, with '-' as the separator. + * + *

For example, if the client version is 3.0.0, and the description is "forked", the final client version string + * will be "Pulsar-Java-v3.0.0-forked". + * + * @param description the description of the current PulsarClient instance + * @throws IllegalArgumentException if the length of description exceeds 64 + */ + ClientBuilder description(String description); } diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java index 7d85136150595..d031c8e17104f 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java @@ -477,21 +477,7 @@ public ClientBuilder autoCertRefreshSeconds(int autoCertRefreshSeconds) { return this; } - /** - * Set the description. - * - *

By default, when the client connects to the broker, a version string like "Pulsar-Java-v" will be - * carried and saved by the broker. The client version string could be queried from the topic stats. - * - *

This method provides a way to add more description to a specific PulsarClient instance. If it's configured, - * the description will be appended to the original client version string, with '-' as the separator. - * - *

For example, if the client version is 3.0.0, and the description is "forked", the final client version string - * will be "Pulsar-Java-v3.0.0-forked". - * - * @param description the description of the current PulsarClient instance - * @throws IllegalArgumentException if the length of description exceeds 64 - */ + @Override public ClientBuilder description(String description) { if (description != null && description.length() > 64) { throw new IllegalArgumentException("description should be at most 64 characters");