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

rxl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 4f5b39a  Support to set listener name for client cli (#7621)
4f5b39a is described below

commit 4f5b39a1f432a4eb9ae1fe6a6e1edde29075c6c6
Author: Fangbin Sun <[email protected]>
AuthorDate: Tue Jul 28 15:42:53 2020 +0800

    Support to set listener name for client cli (#7621)
    
    ### Motivation
    
    Currently, CLI tools `pulsar-client` and `pulsar-perf` cann't specify 
required listener name when using `advertisedListeners`.
    
    ### Modifications
    
    Add option `--listener-name` for `pulsar-client` and `pulsar-perf`.
---
 .../main/java/org/apache/pulsar/client/cli/PulsarClientTool.java   | 6 ++++++
 .../java/org/apache/pulsar/testclient/PerformanceConsumer.java     | 7 +++++++
 .../java/org/apache/pulsar/testclient/PerformanceProducer.java     | 7 +++++++
 .../main/java/org/apache/pulsar/testclient/PerformanceReader.java  | 7 +++++++
 site2/docs/reference-cli-tools.md                                  | 4 ++++
 5 files changed, 31 insertions(+)

diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
index 0ba7227..e2cd8db 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/PulsarClientTool.java
@@ -53,6 +53,9 @@ public class PulsarClientTool {
     @Parameter(names = { "--auth-plugin" }, description = "Authentication 
plugin class name.")
     String authPluginClassName = null;
 
+    @Parameter(names = { "--listener-name" }, description = "Listener name for 
the broker.")
+    String listenerName = null;
+
     @Parameter(
         names = { "--auth-params" },
         description = "Authentication parameters, whose format is determined 
by the implementation " +
@@ -115,6 +118,9 @@ public class PulsarClientTool {
             authentication = AuthenticationFactory.create(authPluginClassName, 
authParams);
             clientBuilder.authentication(authentication);
         }
+        if (isNotBlank(this.listenerName)) {
+            clientBuilder.listenerName(this.listenerName);
+        }
         
clientBuilder.allowTlsInsecureConnection(this.tlsAllowInsecureConnection);
         clientBuilder.tlsTrustCertsFilePath(this.tlsTrustCertsFilePath);
         clientBuilder.serviceUrl(serviceURL);
diff --git 
a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceConsumer.java
 
b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceConsumer.java
index dd68e35..f118c12 100644
--- 
a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceConsumer.java
+++ 
b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceConsumer.java
@@ -119,6 +119,9 @@ public class PerformanceConsumer {
         @Parameter(names = { "--auth_plugin" }, description = "Authentication 
plugin class name")
         public String authPluginClassName;
 
+        @Parameter(names = { "--listener-name" }, description = "Listener name 
for the broker.")
+        String listenerName = null;
+
         @Parameter(names = { "-mc", "--max_chunked_msg" }, description = "Max 
pending chunk messages")
         private int maxPendingChuckedMessage = 0;
 
@@ -267,6 +270,10 @@ public class PerformanceConsumer {
             
clientBuilder.allowTlsInsecureConnection(arguments.tlsAllowInsecureConnection);
         }
 
+        if (isNotBlank(arguments.listenerName)) {
+            clientBuilder.listenerName(arguments.listenerName);
+        }
+
         PulsarClient pulsarClient = clientBuilder.build();
 
         class EncKeyReader implements CryptoKeyReader {
diff --git 
a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceProducer.java
 
b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceProducer.java
index b845eb8..2f64c18 100644
--- 
a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceProducer.java
+++ 
b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceProducer.java
@@ -122,6 +122,9 @@ public class PerformanceProducer {
         @Parameter(names = { "--auth_plugin" }, description = "Authentication 
plugin class name")
         public String authPluginClassName;
 
+        @Parameter(names = { "--listener-name" }, description = "Listener name 
for the broker.")
+        String listenerName = null;
+
         @Parameter(names = { "-ch",
                 "--chunking" }, description = "Should split the message and 
publish in chunks if message size is larger than allowed max size")
         private boolean chunkingAllowed = false;
@@ -428,6 +431,10 @@ public class PerformanceProducer {
                 
clientBuilder.allowTlsInsecureConnection(arguments.tlsAllowInsecureConnection);
             }
 
+            if (isNotBlank(arguments.listenerName)) {
+                clientBuilder.listenerName(arguments.listenerName);
+            }
+
             client = clientBuilder.build();
             ProducerBuilder<byte[]> producerBuilder = client.newProducer() //
                     .sendTimeout(0, TimeUnit.SECONDS) //
diff --git 
a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceReader.java
 
b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceReader.java
index 218ea30..694b667 100644
--- 
a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceReader.java
+++ 
b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/PerformanceReader.java
@@ -92,6 +92,9 @@ public class PerformanceReader {
         @Parameter(names = { "--auth-plugin" }, description = "Authentication 
plugin class name")
         public String authPluginClassName;
 
+        @Parameter(names = { "--listener-name" }, description = "Listener name 
for the broker.")
+        String listenerName = null;
+
         @Parameter(
             names = { "--auth-params" },
             description = "Authentication parameters, whose format is 
determined by the implementation " +
@@ -220,6 +223,10 @@ public class PerformanceReader {
             
clientBuilder.allowTlsInsecureConnection(arguments.tlsAllowInsecureConnection);
         }
 
+        if (isNotBlank(arguments.listenerName)) {
+            clientBuilder.listenerName(arguments.listenerName);
+        }
+
         PulsarClient pulsarClient = clientBuilder.build();
 
         List<CompletableFuture<Reader<byte[]>>> futures = Lists.newArrayList();
diff --git a/site2/docs/reference-cli-tools.md 
b/site2/docs/reference-cli-tools.md
index eb3a989..29b5842 100644
--- a/site2/docs/reference-cli-tools.md
+++ b/site2/docs/reference-cli-tools.md
@@ -291,6 +291,7 @@ Options
 |---|---|---|
 |`--auth-params`|Authentication parameters, whose format is determined by the 
implementation of method `configure` in authentication plugin class, for 
example "key1:val1,key2:val2" or 
"{\"key1\":\"val1\",\"key2\":\"val2\"}"|{"saslJaasClientSectionName":"PulsarClient",
 "serverType":"broker"}|
 |`--auth-plugin`|Authentication plugin class 
name|org.apache.pulsar.client.impl.auth.AuthenticationSasl|
+|`--listener-name`|Listener name for the broker||
 |`--url`|Broker URL to which to connect|pulsar://localhost:6650/ </br> 
ws://localhost:8080 |
 
 
@@ -415,6 +416,7 @@ Options
 |---|---|---|
 |`--auth_params`|Authentication parameters, whose format is determined by the 
implementation of method `configure` in authentication plugin class, for 
example "key1:val1,key2:val2" or "{"key1":"val1","key2":"val2"}.||
 |`--auth_plugin`|Authentication plugin class name||
+|`--listener-name`|Listener name for the broker||
 |`--acks-delay-millis`|Acknowlegments grouping delay in millis|100|
 |`-k`, `--encryption-key-name`|The private key name to decrypt payload||
 |`-v`, `--encryption-key-value-file`|The file which contains the private key 
to decrypt payload||
@@ -448,6 +450,7 @@ Options
 |---|---|---|
 |`--auth_params`|Authentication parameters, whose format is determined by the 
implementation of method `configure` in authentication plugin class, for 
example "key1:val1,key2:val2" or "{"key1":"val1","key2":"val2"}.||
 |`--auth_plugin`|Authentication plugin class name||
+|`--listener-name`|Listener name for the broker||
 |`-b`, `--batch-time-window`|Batch messages in a window of the specified 
number of milliseconds|1|
 |`-z`, `--compression`|Compress messages’ payload. Possible values are NONE, 
LZ4, ZLIB, ZSTD or SNAPPY.||
 |`--conf-file`|Configuration file||
@@ -485,6 +488,7 @@ Options
 |---|---|---|
 |`--auth_params`|Authentication parameters, whose format is determined by the 
implementation of method `configure` in authentication plugin class, for 
example "key1:val1,key2:val2" or "{"key1":"val1","key2":"val2"}.||
 |`--auth_plugin`|Authentication plugin class name||
+|`--listener-name`|Listener name for the broker||
 |`--conf-file`|Configuration file||
 |`-h`, `--help`|Help message|false|
 |`-c`, `--max-connections`|Max number of TCP connections to a single 
broker|100|

Reply via email to