This is an automated email from the ASF dual-hosted git repository. rxl pushed a commit to branch branch-2.6 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 1842f7c63645121ee910bb1047403e5a24681c24 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`. (cherry picked from commit 4f5b39a1f432a4eb9ae1fe6a6e1edde29075c6c6) --- .../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 196c557..670578b 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 d24b9b9..1484058 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|
