[ROCKETMQ-17] Develop a vendor-neutral open standard for distributed messaging: add MessageFactory interface 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/5668d250 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/5668d250 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/5668d250 Branch: refs/heads/spec Commit: 5668d250e8c9c2f4da6cf2be00eed6f26f7b5543 Parents: 2c3121b Author: vintagewang <[email protected]> Authored: Wed Dec 28 14:41:52 2016 +0800 Committer: vintagewang <[email protected]> Committed: Wed Dec 28 14:41:52 2016 +0800 ---------------------------------------------------------------------- .../apache/openmessaging/MessageFactory.java | 22 ++++++++++++++++++++ .../apache/openmessaging/MessagingEndPoint.java | 2 -- .../java/org/apache/openmessaging/Producer.java | 2 +- .../apache/openmessaging/samples/Producer.java | 5 ++++- 4 files changed, 27 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/5668d250/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessageFactory.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessageFactory.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessageFactory.java new file mode 100644 index 0000000..94e8ecf --- /dev/null +++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessageFactory.java @@ -0,0 +1,22 @@ +/** + * 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 MessageFactory { + BytesMessage createBytesMessage(final String topic, final byte[] body); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/5668d250/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPoint.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPoint.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPoint.java index 12fa172..634f552 100644 --- a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPoint.java +++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingEndPoint.java @@ -27,6 +27,4 @@ public interface MessagingEndPoint { PushConsumer createPushConsumer(); PullConsumer createPullConsumer(); - - BytesMessage createBytesMessage(final String topic, final byte[] body); } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/5668d250/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 a8fc70d..c7a3020 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 @@ -17,7 +17,7 @@ package org.apache.openmessaging; -public interface Producer { +public interface Producer extends MessageFactory { void start(); void shutdown(); http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/5668d250/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/Producer.java ---------------------------------------------------------------------- diff --git a/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/Producer.java b/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/Producer.java index 30a0d78..a8bbb5d 100644 --- a/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/Producer.java +++ b/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/Producer.java @@ -28,14 +28,17 @@ public class Producer { final org.apache.openmessaging.Producer producer = messagingEndPoint.createProducer(); + messagingEndPoint.start(); + producer.start(); - producer.send(messagingEndPoint.createBytesMessage("HELLO_TOPIC", "HELLO_BODY".getBytes(Charset.forName("UTF-8")))); + producer.send(producer.createBytesMessage("HELLO_TOPIC", "HELLO_BODY".getBytes(Charset.forName("UTF-8")))); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override public void run() { producer.shutdown(); + messagingEndPoint.shutdown(); } })); }
