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/25 09:47:00 UTC

incubator-rocketmq git commit: Develop a vendor-neutral open standard for distributed messaging: refactor package structure access

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 <vi...@apache.org>
Authored: Sun Dec 25 17:46:49 2016 +0800
Committer: vintagewang <vi...@apache.org>
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 vintagewang@apache.org
- * @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 vintagewang@apache.org
+ * @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 vintagewang@apache.org
+ * @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 vintagewang@apache.org
+ * @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 vintagewang@apache.org
+ * @since 2016-12-25
  */
 public class URISpecParser {
     public static Map<String, List<String>> parseURI(String uri) {


Re: incubator-rocketmq git commit: Develop a vendor-neutral open standard for distributed messaging: refactor package structure access

Posted by Roman Shtykh <rs...@yahoo.com.INVALID>.
+1 for removing the @author from the code. I think it is pretty common not to have it and use version control for tracking changes, as Willem proposed.
And this is one more item to go into "Contribution Guideline" ;)
-Roman
 

    On Monday, December 26, 2016 12:12 AM, Willem Jiang <wi...@gmail.com> wrote:
 

 Can we just remove the @author from the code ?
It always some merge conflicts about the @author, and it's easy to find out
whom we need to blame by using git blame.


Willem Jiang

Blog: http://willemjiang.blogspot.com (English)
          http://jnn.iteye.com  (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem

On Sun, Dec 25, 2016 at 5:47 PM, <vi...@apache.org> wrote:

> 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
>
> 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 vintagewang@apache.org
> + * @since 2016-12-25
>  */
>  public class URISpecParser {
>      public static Map<String, List<String>> parseURI(String uri) {
>
>

   

Re: incubator-rocketmq git commit: Develop a vendor-neutral open standard for distributed messaging: refactor package structure access

Posted by Willem Jiang <wi...@gmail.com>.
Can we just remove the @author from the code ?
It always some merge conflicts about the @author, and it's easy to find out
whom we need to blame by using git blame.


Willem Jiang

Blog: http://willemjiang.blogspot.com (English)
          http://jnn.iteye.com  (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem

On Sun, Dec 25, 2016 at 5:47 PM, <vi...@apache.org> wrote:

> 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
>
> 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 vintagewang@apache.org
> + * @since 2016-12-25
>   */
>  public class URISpecParser {
>      public static Map<String, List<String>> parseURI(String uri) {
>
>