[ROCKETMQ-17] Develop a vendor-neutral open standard for distributed messaging: refactor message class and add new class KeyValue ASF JIRA: https://issues.apache.org/jira/browse/ROCKETMQ-17
Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/58acef9e Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/58acef9e Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/58acef9e Branch: refs/heads/spec Commit: 58acef9ef9bf6be62918d7293af7bc8c962c6bfb Parents: 9f232be Author: vintagewang <[email protected]> Authored: Wed Dec 28 15:57:21 2016 +0800 Committer: vintagewang <[email protected]> Committed: Wed Dec 28 15:57:21 2016 +0800 ---------------------------------------------------------------------- .../org/apache/openmessaging/BytesMessage.java | 12 ++++++++ .../java/org/apache/openmessaging/KeyValue.java | 32 ++++++++++++++++++++ .../java/org/apache/openmessaging/Message.java | 8 ++--- .../openmessaging/MessagingEndPointManager.java | 4 +++ .../java/org/apache/openmessaging/Producer.java | 2 +- .../openmessaging/samples/ProducerApp.java | 8 +++-- 6 files changed, 56 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/58acef9e/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/BytesMessage.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/BytesMessage.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/BytesMessage.java index 47e18d4..629cca2 100644 --- a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/BytesMessage.java +++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/BytesMessage.java @@ -18,6 +18,18 @@ package org.apache.openmessaging; public interface BytesMessage extends Message { + BytesMessage putHeader(final String key, final int value); + + BytesMessage putHeader(final String key, final long value); + + BytesMessage putHeader(final String key, final String value); + + BytesMessage putProperties(final String key, final int value); + + BytesMessage putProperties(final String key, final long value); + + BytesMessage putProperties(final String key, final String value); + byte[] getBody(); void setBody(final byte[] body); http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/58acef9e/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/KeyValue.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/KeyValue.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/KeyValue.java new file mode 100644 index 0000000..c3f44f5 --- /dev/null +++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/KeyValue.java @@ -0,0 +1,32 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openmessaging; + + +public interface KeyValue { + KeyValue put(final String key, final int value); + + KeyValue put(final String key, final long value); + + KeyValue put(final String key, final String value); + + int getInt(final String key); + + long getLong(final String key); + + String getString(final String key); +} http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/58acef9e/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java index 9e8c6be..5563c46 100644 --- a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java +++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java @@ -18,11 +18,7 @@ package org.apache.openmessaging; public interface Message { - Message putHeader(final String name, final String value); + KeyValue headers(); - Message putProperty(final String name, final String value); - - String getHeader(final String name); - - String getProperty(final String name); + KeyValue properties(); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/58acef9e/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPointManager.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPointManager.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPointManager.java index 39c202d..8196658 100644 --- a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPointManager.java +++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPointManager.java @@ -36,4 +36,8 @@ public class MessagingEndPointManager { } return MessagingEndPointFactory.createMessagingEndPoint(driverUrl, properties); } + + public static KeyValue buildKeyValue() { + return null; + } } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/58acef9e/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java index c7a3020..05eb15c 100644 --- a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java +++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java @@ -22,5 +22,5 @@ public interface Producer extends MessageFactory { void shutdown(); - void send(final Message message); + void send(final BytesMessage message); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/58acef9e/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/ProducerApp.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/ProducerApp.java b/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/ProducerApp.java index f820f3f..051fc22 100644 --- a/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/ProducerApp.java +++ b/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/ProducerApp.java @@ -30,8 +30,10 @@ public class ProducerApp { final Producer producer = messagingEndPoint.createProducer(); messagingEndPoint.start(); + System.out.println("messagingEndPoint startup OK"); producer.start(); + System.out.println("producer startup OK"); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override @@ -45,9 +47,9 @@ public class ProducerApp { System.out.println("send first message OK"); producer.send(producer.createBytesMessage("HELLO_TOPIC", "HELLO_BODY".getBytes(Charset.forName("UTF-8"))) - .putProperty("KEY1", "value1")// - .putProperty("KEY2", "value2")// - .putProperty("KEY3", "value3")// + .putProperties("KEY1", "value1")// + .putProperties("KEY2", "value2")// + .putProperties("KEY3", "value3")// ); System.out.println("send second message OK"); }
