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

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


The following commit(s) were added to refs/heads/branch-2.11 by this push:
     new ffd67a21166 [fix][cli] Fix CLI client produce don't able to use 
multiple -m send multiple messages (#18238)
ffd67a21166 is described below

commit ffd67a211660e56f5072dbf61cb866d53689b44f
Author: Cong Zhao <[email protected]>
AuthorDate: Fri Oct 28 21:06:20 2022 +0800

    [fix][cli] Fix CLI client produce don't able to use multiple -m send 
multiple messages (#18238)
---
 .../pulsar/client/cli/PulsarClientToolTest.java    | 22 ++++++++++++++++++++++
 .../org/apache/pulsar/client/cli/CmdProduce.java   |  5 ++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
index 5cc5e50b96d..2fae6330843 100644
--- 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
+++ 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/client/cli/PulsarClientToolTest.java
@@ -294,6 +294,28 @@ public class PulsarClientToolTest extends BrokerTestBase {
         assertEquals(pulsarClientTool.rootParams.getAuthPluginClassName(), 
authPlugin);
         assertEquals(pulsarClientTool.rootParams.getServiceURL(), url);
     }
+
+    @Test
+    public void testSendMultipleMessage() throws Exception {
+        Properties properties = new Properties();
+        properties.setProperty("serviceUrl", brokerUrl.toString());
+        properties.setProperty("useTls", "false");
+
+        final String topicName = getTopicWithRandomSuffix("test-multiple-msg");
+
+        @Cleanup
+        Consumer<byte[]> consumer = 
pulsarClient.newConsumer().topic(topicName).subscriptionName("sub").subscribe();
+
+        PulsarClientTool pulsarClientTool = new PulsarClientTool(properties);
+        String[] args1 = {"produce", "-m", "msg0", "-m", "msg1,msg2", 
topicName};
+        Assert.assertEquals(pulsarClientTool.run(args1), 0);
+
+        for (int i = 0; i < 3; i++) {
+            Message<byte[]> msg = consumer.receive(10, TimeUnit.SECONDS);
+            Assert.assertNotNull(msg);
+            Assert.assertEquals(new String(msg.getData()), "msg" + i);
+        }
+    }
     
     private static String getTopicWithRandomSuffix(String localNameBase) {
         return String.format("persistent://prop/ns-abc/test/%s-%s", 
localNameBase, UUID.randomUUID().toString());
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
index 53f7f0a16f9..dc6f2f43b20 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
@@ -31,15 +31,14 @@ import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Base64;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Stream;
 import org.apache.pulsar.client.api.Authentication;
 import org.apache.pulsar.client.api.AuthenticationDataProvider;
 import org.apache.pulsar.client.api.ClientBuilder;
@@ -205,7 +204,7 @@ public class CmdProduce {
         }
 
         if (messages.size() > 0){
-            messages = 
Collections.unmodifiableList(Arrays.asList(messages.get(0).split(separator)));
+            messages = messages.stream().map(str -> 
str.split(separator)).flatMap(Stream::of).toList();
         }
 
         if (messages.size() == 0 && messageFileNames.size() == 0) {

Reply via email to