Repository: incubator-rocketmq
Updated Branches:
  refs/heads/spec 57e775a83 -> 92454311e


Develop a vendor-neutral open standard for distributed messaging: refactor 
package structure access


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/92454311
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/92454311
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/92454311

Branch: refs/heads/spec
Commit: 92454311e3cafa3f7aaeeadeb7d4db599a11ceac
Parents: 57e775a
Author: vintagewang <[email protected]>
Authored: Sun Dec 25 17:46:49 2016 +0800
Committer: vintagewang <[email protected]>
Committed: Sun Dec 25 17:46:49 2016 +0800

----------------------------------------------------------------------
 .../apache/openmessaging/MessagingEndPoint.java |  9 +++
 .../openmessaging/MessagingEndPointManager.java |  2 +-
 .../apache/openmessaging/MessagingFactory.java  | 25 -------
 .../java/org/apache/openmessaging/Producer.java |  2 -
 .../internal/MessagingEndPointAdapter.java      | 69 ++++++++++++++++++++
 .../internal/MessagingEndPointFactory.java      |  9 ++-
 .../internal/ServiceConstants.java              |  6 +-
 .../internal/ServiceEndPointAdapter.java        | 66 -------------------
 .../openmessaging/internal/URISpecParser.java   |  3 +-
 9 files changed, 92 insertions(+), 99 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/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 5d90ae2..1299857 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
@@ -22,4 +22,13 @@ package org.apache.openmessaging;
  * @since 2016-12-25
  */
 public interface MessagingEndPoint {
+    void start();
+
+    void shutdown();
+
+    Producer createProducer();
+
+    PushConsumer createPushConsumer();
+
+    PullConsumer createPullConsumer();
 }

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/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 3dfffb0..8909b71 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
@@ -38,6 +38,6 @@ public class MessagingEndPointManager {
         if (null == driverUrl || driverUrl.size() == 0) {
             throw new IllegalArgumentException("driver url parsed result.size 
==0");
         }
-        return MessagingEndPointFactory.createServiceEndPoint(driverUrl, 
properties);
+        return MessagingEndPointFactory.createMessagingEndPoint(driverUrl, 
properties);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java
----------------------------------------------------------------------
diff --git 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java
 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java
deleted file mode 100644
index 3720a01..0000000
--- 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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;
-
-/**
- * @author [email protected]
- * @since 2016-12-25
- */
-public class MessagingFactory {
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/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 4eb34a8..63c2abd 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
@@ -26,6 +26,4 @@ public interface Producer {
     void shutdown();
 
     void send(final Message message);
-
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointAdapter.java
----------------------------------------------------------------------
diff --git 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointAdapter.java
 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointAdapter.java
new file mode 100644
index 0000000..8220f5c
--- /dev/null
+++ 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/MessagingEndPointAdapter.java
@@ -0,0 +1,69 @@
+/*
+ * 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.internal;
+
+
+import org.apache.openmessaging.MessagingEndPoint;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * @author [email protected]
+ * @since 2016-12-25
+ */
+class MessagingEndPointAdapter {
+    private static Map<String, String> serviceEndPointClassMap = new 
HashMap<String, String>();
+
+    static {
+        serviceEndPointClassMap.put(ServiceConstants.DEFAULT_SERVICE_END_POINT,
+                ServiceConstants.DEFAULT_SERVICE_IMPL);
+    }
+
+    static MessagingEndPoint instantiateMessagingEndPoint(String url, 
Properties properties)
+            throws ClassNotFoundException, NoSuchMethodException, 
IllegalAccessException,
+            InvocationTargetException, InstantiationException {
+        String serviceImpl = ServiceConstants.DEFAULT_SERVICE_IMPL;
+        if (serviceEndPointClassMap.containsKey(url))
+            serviceImpl = serviceEndPointClassMap.get(url);
+        Class<?> serviceEndPointClass = Class.forName(serviceImpl);
+        if (serviceEndPointClass == null)
+            return null;
+
+        String serviceUrl = ServiceConstants.DEFAULT_SERVICE_DISCOVERY_URL;
+        if (properties.get(ServiceConstants.URL) != null) {
+            String[] propertySplits = ((String) 
properties.get(ServiceConstants.URL)).split(ServiceConstants.PARAM_SEPARATOR);
+            if (propertySplits.length > 0) {
+                serviceUrl = propertySplits[0];
+                for (int index = 1; index < propertySplits.length; index++) {
+                    String[] kv = 
propertySplits[index].split(ServiceConstants.KV_SEPARATOR);
+                    properties.put(kv[0], kv[1]);
+                }
+            }
+        }
+        properties.remove(ServiceConstants.URL);
+        properties.put(ServiceConstants.DISCOVERY_URL, serviceUrl);
+        Class[] paramTypes = {Properties.class};
+        Constructor constructor = 
serviceEndPointClass.getConstructor(paramTypes);
+        assert constructor != null;
+        return (MessagingEndPoint) constructor.newInstance(properties);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/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 5c4990a..f2f8eda 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
@@ -24,15 +24,18 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
-
+/**
+ * @author [email protected]
+ * @since 2016-12-25
+ */
 public class MessagingEndPointFactory {
-    public static MessagingEndPoint createServiceEndPoint(Map<String, 
List<String>> url, Properties properties)
+    public static MessagingEndPoint createMessagingEndPoint(Map<String, 
List<String>> url, Properties properties)
             throws ClassNotFoundException, NoSuchMethodException, 
InvocationTargetException,
             InstantiationException, IllegalAccessException {
         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 
ServiceEndPointAdapter.instantiateServiceEndPoint(driver.get(0), properties);
+        return 
MessagingEndPointAdapter.instantiateMessagingEndPoint(driver.get(0), 
properties);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceConstants.java
----------------------------------------------------------------------
diff --git 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceConstants.java
 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceConstants.java
index 42e867a..13cd376 100644
--- 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceConstants.java
+++ 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceConstants.java
@@ -17,7 +17,11 @@
 
 package org.apache.openmessaging.internal;
 
-public class ServiceConstants {
+/**
+ * @author [email protected]
+ * @since 2016-12-25
+ */
+class ServiceConstants {
     public static final String PROTOCOL_NAME = "protocol";
     public static final String SPI_NAME = "spi";
     public static final String URL_NAME = "urls";

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceEndPointAdapter.java
----------------------------------------------------------------------
diff --git 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceEndPointAdapter.java
 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceEndPointAdapter.java
deleted file mode 100644
index 19b5733..0000000
--- 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/ServiceEndPointAdapter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.internal;
-
-
-import org.apache.openmessaging.MessagingEndPoint;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-
-public class ServiceEndPointAdapter {
-    private static Map<String, String> serviceEndPointClassMap = new 
HashMap<String, String>();
-
-    static {
-        serviceEndPointClassMap.put(ServiceConstants.DEFAULT_SERVICE_END_POINT,
-                ServiceConstants.DEFAULT_SERVICE_IMPL);
-    }
-
-    static MessagingEndPoint instantiateServiceEndPoint(String url, Properties 
properties)
-            throws ClassNotFoundException, NoSuchMethodException, 
IllegalAccessException,
-            InvocationTargetException, InstantiationException {
-        String serviceImpl = ServiceConstants.DEFAULT_SERVICE_IMPL;
-        if (serviceEndPointClassMap.containsKey(url))
-            serviceImpl = serviceEndPointClassMap.get(url);
-        Class<?> serviceEndPointClass = Class.forName(serviceImpl);
-        if (serviceEndPointClass == null)
-            return null;
-
-        String serviceUrl = ServiceConstants.DEFAULT_SERVICE_DISCOVERY_URL;
-        if (properties.get(ServiceConstants.URL) != null) {
-            String[] propertySplits = ((String) 
properties.get(ServiceConstants.URL)).split(ServiceConstants.PARAM_SEPARATOR);
-            if (propertySplits.length > 0) {
-                serviceUrl = propertySplits[0];
-                for (int index = 1; index < propertySplits.length; index++) {
-                    String[] kv = 
propertySplits[index].split(ServiceConstants.KV_SEPARATOR);
-                    properties.put(kv[0], kv[1]);
-                }
-            }
-        }
-        properties.remove(ServiceConstants.URL);
-        properties.put(ServiceConstants.DISCOVERY_URL, serviceUrl);
-        Class[] paramTypes = {Properties.class};
-        Constructor constructor = 
serviceEndPointClass.getConstructor(paramTypes);
-        assert constructor != null;
-        return (MessagingEndPoint) constructor.newInstance(properties);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/92454311/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/URISpecParser.java
----------------------------------------------------------------------
diff --git 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/URISpecParser.java
 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/URISpecParser.java
index cbe07ba..1d7a8e1 100644
--- 
a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/URISpecParser.java
+++ 
b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/internal/URISpecParser.java
@@ -24,7 +24,8 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @author xuanyin
+ * @author [email protected]
+ * @since 2016-12-25
  */
 public class URISpecParser {
     public static Map<String, List<String>> parseURI(String uri) {

Reply via email to