You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by vi...@apache.org on 2016/12/28 06:06:59 UTC

[10/10] incubator-rocketmq git commit: [ROCKETMQ-17] Develop a vendor-neutral open standard for distributed messaging: add producer sample https://issues.apache.org/jira/browse/ROCKETMQ-17

[ROCKETMQ-17] Develop a vendor-neutral open standard for distributed messaging: add producer sample
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/13cba188
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/13cba188
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/13cba188

Branch: refs/heads/spec
Commit: 13cba18842604067e20d6c1048f83e614e4ac949
Parents: 3504967
Author: vintagewang <vi...@apache.org>
Authored: Wed Dec 28 14:06:14 2016 +0800
Committer: vintagewang <vi...@apache.org>
Committed: Wed Dec 28 14:06:14 2016 +0800

----------------------------------------------------------------------
 .../apache/openmessaging/MessagingEndPoint.java |  2 +
 .../openmessaging/MessagingEndPointManager.java |  4 +-
 .../internal/MessagingEndPointFactory.java      | 11 ++---
 .../messaging-user-level-samples/java/pom.xml   | 27 +++++++++++++
 .../apache/openmessaging/samples/Producer.java  | 42 ++++++++++++++++++++
 spec/code/pom.xml                               |  6 +++
 6 files changed, 85 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/13cba188/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 f06d7e5..f90cb62 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
@@ -30,4 +30,6 @@ 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/13cba188/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 5635893..0ecd870 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
@@ -28,11 +28,11 @@ import java.util.Properties;
  * @author vintagewang@apache.org
  */
 public class MessagingEndPointManager {
-    public static MessagingEndPoint getMessagingEndPoint(String url) throws Exception {
+    public static MessagingEndPoint getMessagingEndPoint(String url) {
         return getMessagingEndPoint(url, new Properties());
     }
 
-    public static MessagingEndPoint getMessagingEndPoint(String url, Properties properties) throws Exception {
+    public static MessagingEndPoint getMessagingEndPoint(String url, Properties properties) {
         Map<String, List<String>> driverUrl = URISpecParser.parseURI(url);
         if (null == driverUrl || driverUrl.size() == 0) {
             throw new IllegalArgumentException("driver url parsed result.size ==0");

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/13cba188/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointFactory.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointFactory.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointFactory.java
index 7d521ff..1dbc71d 100644
--- a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointFactory.java
+++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointFactory.java
@@ -19,7 +19,6 @@ package org.apache.openmessaging.internal;
 
 import org.apache.openmessaging.MessagingEndPoint;
 
-import java.lang.reflect.InvocationTargetException;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -28,13 +27,15 @@ import java.util.Properties;
  * @author vintagewang@apache.org
  */
 public class MessagingEndPointFactory {
-    public static MessagingEndPoint createMessagingEndPoint(Map<String, List<String>> url, Properties properties)
-            throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException,
-            InstantiationException, IllegalAccessException {
+    public static MessagingEndPoint createMessagingEndPoint(Map<String, List<String>> url, Properties properties) {
         List<String> driver = url.get(ServiceConstants.SPI_NAME);
         List<String> urls = url.get(ServiceConstants.URL_NAME);
         if (urls != null && urls.size() > 0)
             properties.put(ServiceConstants.URL, urls.get(0));
-        return MessagingEndPointAdapter.instantiateMessagingEndPoint(driver.get(0), properties);
+        try {
+            return MessagingEndPointAdapter.instantiateMessagingEndPoint(driver.get(0), properties);
+        } catch (Exception e) {
+            throw new RuntimeException("createMessagingEndPoint exception", e);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/13cba188/spec/code/messaging-user-level-samples/java/pom.xml
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-samples/java/pom.xml b/spec/code/messaging-user-level-samples/java/pom.xml
new file mode 100644
index 0000000..67f4151
--- /dev/null
+++ b/spec/code/messaging-user-level-samples/java/pom.xml
@@ -0,0 +1,27 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>open-standard-all</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>messaging-user-level-samples</artifactId>
+    <name>messaging-user-level-samples ${project.version}</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>messaging-user-level-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/13cba188/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
new file mode 100644
index 0000000..30a0d78
--- /dev/null
+++ b/spec/code/messaging-user-level-samples/java/src/main/java/org/apache/openmessaging/samples/Producer.java
@@ -0,0 +1,42 @@
+/**
+ * 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.samples;
+
+
+import org.apache.openmessaging.MessagingEndPoint;
+import org.apache.openmessaging.MessagingEndPointManager;
+
+import java.nio.charset.Charset;
+
+public class Producer {
+    public static void main(String[] args) {
+        final MessagingEndPoint messagingEndPoint = MessagingEndPointManager.getMessagingEndPoint("openmessaging:rocketmq://localhost:10911/namespace");
+
+        final org.apache.openmessaging.Producer producer = messagingEndPoint.createProducer();
+
+        producer.start();
+
+        producer.send(messagingEndPoint.createBytesMessage("HELLO_TOPIC", "HELLO_BODY".getBytes(Charset.forName("UTF-8"))));
+
+        Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
+            @Override
+            public void run() {
+                producer.shutdown();
+            }
+        }));
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/13cba188/spec/code/pom.xml
----------------------------------------------------------------------
diff --git a/spec/code/pom.xml b/spec/code/pom.xml
index fe83fc5..097431b 100644
--- a/spec/code/pom.xml
+++ b/spec/code/pom.xml
@@ -11,6 +11,7 @@
 
     <modules>
         <module>messaging-user-level-api/java</module>
+        <module>messaging-user-level-samples/java</module>
         <module>messaging-wire-level-api</module>
     </modules>
 
@@ -86,6 +87,11 @@
         <dependencies>
             <dependency>
                 <groupId>${project.groupId}</groupId>
+                <artifactId>messaging-user-level-samples</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
                 <artifactId>messaging-user-level-api</artifactId>
                 <version>${project.version}</version>
             </dependency>