You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/10/28 13:06:35 UTC
[pulsar] branch master updated: [fix][cli] Fix CLI client produce don't able to use multiple -m send multiple messages (#18238)
This is an automated email from the ASF dual-hosted git repository.
penghui 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 67a3de716d5 [fix][cli] Fix CLI client produce don't able to use multiple -m send multiple messages (#18238)
67a3de716d5 is described below
commit 67a3de716d5cbf959fe793fde1705e6577106513
Author: Cong Zhao <zh...@apache.org>
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 6b5b575f923..83a3268593e 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 50bc1ac2841..9aa7d684e91 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) {