You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/09/11 07:05:45 UTC

[incubator-dubbo] branch dev-metadata updated (7edb71c -> 49f1caa)

This is an automated email from the ASF dual-hosted git repository.

liujun pushed a change to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


    from 7edb71c  Fix compilation problem
     new e37319d  Support enabled property.
     new 49f1caa  Fix compilation problem

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/dubbo/rpc/cluster/Router.java  |  4 +
 .../dubbo/rpc/cluster/router/AbstractRouter.java   | 11 +--
 .../rpc/cluster/router/AbstractRouterRule.java     |  2 +-
 .../condition/config/ConfigConditionRouter.java    | 91 ++++++++++++++--------
 .../dubbo/rpc/cluster/router/tag/TagRouter.java    |  5 +-
 .../dynamic/AbstractDynamicConfiguration.java      |  2 +-
 .../java/org/apache/dubbo/registry/ZKTools.java    |  2 +-
 7 files changed, 71 insertions(+), 46 deletions(-)


[incubator-dubbo] 02/02: Fix compilation problem

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit 49f1caa69fb438d1fc9c8413da4a5bb517a63600
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Sep 11 15:05:08 2018 +0800

    Fix compilation problem
---
 .../org/apache/dubbo/config/dynamic/AbstractDynamicConfiguration.java   | 2 +-
 .../src/test/java/org/apache/dubbo/registry/ZKTools.java                | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dubbo-config/dubbo-config-dynamic/src/main/java/org/apache/dubbo/config/dynamic/AbstractDynamicConfiguration.java b/dubbo-config/dubbo-config-dynamic/src/main/java/org/apache/dubbo/config/dynamic/AbstractDynamicConfiguration.java
index e459bcc..5b8a189 100644
--- a/dubbo-config/dubbo-config-dynamic/src/main/java/org/apache/dubbo/config/dynamic/AbstractDynamicConfiguration.java
+++ b/dubbo-config/dubbo-config-dynamic/src/main/java/org/apache/dubbo/config/dynamic/AbstractDynamicConfiguration.java
@@ -29,7 +29,7 @@ public abstract class AbstractDynamicConfiguration<TargetConfigListener> impleme
     /**
      * One key can register multiple target listeners, but one target listener only maps to one configuration listener
      */
-    private ConcurrentMap<String, ConcurrentMap<ConfigurationListener, TargetConfigListener>> listenerToTargetListenerMap;
+    private ConcurrentMap<String, ConcurrentMap<ConfigurationListener, TargetConfigListener>> listenerToTargetListenerMap = new ConcurrentHashMap<>();
 
     public AbstractDynamicConfiguration() {
     }
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java
index 1072e31..e310349 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java
@@ -43,7 +43,7 @@ public class ZKTools {
                 new ExponentialBackoffRetry(1000, 3));
         client.start();
 
-        testConsumerConfig();
+        testProviderConfig();
 //        testPathCache();
 //        testTreeCache();
 //        testCuratorListener();


[incubator-dubbo] 01/02: Support enabled property.

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit e37319d3eaeeec9cf0d4b2c331e5c43b089eecf4
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Sep 11 14:56:58 2018 +0800

    Support enabled property.
---
 .../java/org/apache/dubbo/rpc/cluster/Router.java  |  4 +
 .../dubbo/rpc/cluster/router/AbstractRouter.java   | 11 +--
 .../rpc/cluster/router/AbstractRouterRule.java     |  2 +-
 .../condition/config/ConfigConditionRouter.java    | 91 ++++++++++++++--------
 .../dubbo/rpc/cluster/router/tag/TagRouter.java    |  5 +-
 5 files changed, 69 insertions(+), 44 deletions(-)

diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Router.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Router.java
index de1c251..65cf69f 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Router.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Router.java
@@ -75,4 +75,8 @@ public interface Router extends Comparable<Router> {
         return false;
     }
 
+    default int getPriority() {
+        return 0;
+    }
+
 }
\ No newline at end of file
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouter.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouter.java
index ff87e34..f814336 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouter.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouter.java
@@ -35,7 +35,6 @@ public abstract class AbstractRouter implements Router {
     protected int priority;
     protected boolean force;
     protected boolean enabled;
-    protected boolean dynamic;
     protected RouterChain routerChain;
     protected URL url;
 
@@ -57,7 +56,7 @@ public abstract class AbstractRouter implements Router {
     public <T> Map<String, List<Invoker<T>>> preRoute(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {
         Map<String, List<Invoker<T>>> map = new HashMap<>();
 
-        if (CollectionUtils.isEmpty(invokers)) {
+        if (CollectionUtils.isEmpty(invokers) || !isEnabled()) {
             return map;
         }
 
@@ -91,14 +90,6 @@ public abstract class AbstractRouter implements Router {
         this.enabled = enabled;
     }
 
-    public boolean isDynamic() {
-        return dynamic;
-    }
-
-    public void setDynamic(boolean dynamic) {
-        this.dynamic = dynamic;
-    }
-
     public int getPriority() {
         return priority;
     }
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouterRule.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouterRule.java
index cb6fa9c..b5755e9 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouterRule.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouterRule.java
@@ -21,7 +21,7 @@ package org.apache.dubbo.rpc.cluster.router;
  */
 public abstract class AbstractRouterRule {
     private String rawRule;
-    private boolean runtime = false;
+    private boolean runtime = true;
     private boolean force = false;
     private boolean valid = true;
     private boolean enabled = true;
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ConfigConditionRouter.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ConfigConditionRouter.java
index fb6e731..f6f1cc3 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ConfigConditionRouter.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ConfigConditionRouter.java
@@ -116,11 +116,15 @@ public class ConfigConditionRouter extends AbstractRouter implements Configurati
         }
 
         // only one branch, always use the failover key
-        for (Router router : appConditionRouters) {
-            invokers = router.route(invokers, url, invocation);
+        if (isAppRuleEnabled()) {
+            for (Router router : appConditionRouters) {
+                invokers = router.route(invokers, url, invocation);
+            }
         }
-        for (Router router : conditionRouters) {
-            invokers = router.route(invokers, url, invocation);
+        if (isRuleEnabled()) {
+            for (Router router : conditionRouters) {
+                invokers = router.route(invokers, url, invocation);
+            }
         }
         map.put(TreeNode.FAILOVER_KEY, invokers);
 
@@ -131,45 +135,32 @@ public class ConfigConditionRouter extends AbstractRouter implements Configurati
     public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {
         if (CollectionUtils.isEmpty(invokers)
                 || (conditionRouters.size() == 0 && appConditionRouters.size() == 0)
-                ) {
+                || !isEnabled()) {
             return invokers;
         }
 
-        for (Router router : appConditionRouters) {
-            invokers = router.route(invokers, url, invocation);
+
+        if (isAppRuleEnabled()) {
+            for (Router router : appConditionRouters) {
+                invokers = router.route(invokers, url, invocation);
+            }
         }
-        for (Router router : conditionRouters) {
-            invokers = router.route(invokers, url, invocation);
+        if (isRuleEnabled()) {
+            for (Router router : conditionRouters) {
+                invokers = router.route(invokers, url, invocation);
+            }
         }
         return invokers;
     }
 
     @Override
     public boolean isRuntime() {
-        return (routerRule != null && routerRule.isValid() && routerRule.isRuntime())
-                || (appRouterRule != null && appRouterRule.isValid() && appRouterRule.isRuntime());
-    }
-
-    private void generateConditions() {
-        if (routerRule != null && routerRule.isValid()) {
-            conditionRouters.clear();
-            routerRule.getConditions().forEach(condition -> {
-                // All sub rules have the same force, runtime value.
-                ConditionRouter subRouter = new ConditionRouter(condition, routerRule.isForce());
-                conditionRouters.add(subRouter);
-            });
-        }
+        return isRuleRuntime() || isAppRuleRuntime();
     }
 
-    private void generateAppConditions() {
-        if (appRouterRule != null && appRouterRule.isValid()) {
-            appConditionRouters.clear();
-            appRouterRule.getConditions().forEach(condition -> {
-                // All sub rules have the same force, runtime value.
-                ConditionRouter subRouter = new ConditionRouter(condition, appRouterRule.isForce());
-                appConditionRouters.add(subRouter);
-            });
-        }
+    @Override
+    public boolean isEnabled() {
+        return isAppRuleEnabled() || isRuleEnabled();
     }
 
     @Override
@@ -195,4 +186,42 @@ public class ConfigConditionRouter extends AbstractRouter implements Configurati
     public int compareTo(Router o) {
         return 0;
     }
+
+    private boolean isAppRuleEnabled() {
+        return appRouterRule != null && appRouterRule.isValid() && appRouterRule.isEnabled();
+    }
+
+    private boolean isRuleEnabled() {
+        return routerRule != null && routerRule.isValid() && routerRule.isEnabled();
+    }
+
+    private boolean isAppRuleRuntime() {
+        return appRouterRule != null && appRouterRule.isValid() && appRouterRule.isRuntime();
+    }
+
+    private boolean isRuleRuntime() {
+        return routerRule != null && routerRule.isValid() && routerRule.isRuntime();
+    }
+
+    private void generateConditions() {
+        if (routerRule != null && routerRule.isValid()) {
+            conditionRouters.clear();
+            routerRule.getConditions().forEach(condition -> {
+                // All sub rules have the same force, runtime value.
+                ConditionRouter subRouter = new ConditionRouter(condition, routerRule.isForce());
+                conditionRouters.add(subRouter);
+            });
+        }
+    }
+
+    private void generateAppConditions() {
+        if (appRouterRule != null && appRouterRule.isValid()) {
+            appConditionRouters.clear();
+            appRouterRule.getConditions().forEach(condition -> {
+                // All sub rules have the same force, runtime value.
+                ConditionRouter subRouter = new ConditionRouter(condition, appRouterRule.isForce());
+                appConditionRouters.add(subRouter);
+            });
+        }
+    }
 }
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java
index 9d14d96..8dd11fa 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java
@@ -112,7 +112,8 @@ public class TagRouter extends AbstractRouter implements Comparable<Router>, Con
 
         checkAndInit(invokers.get(0).getUrl());
 
-        if (tagRouterRule == null || !tagRouterRule.isValid()) {
+        if (tagRouterRule == null || !tagRouterRule.isValid() || !tagRouterRule.isEnabled()) {
+
             return invokers;
         }
 
@@ -172,7 +173,7 @@ public class TagRouter extends AbstractRouter implements Comparable<Router>, Con
 
         checkAndInit(invokers.get(0).getUrl());
 
-        if (tagRouterRule == null || !tagRouterRule.isValid() || isRuntime()) {
+        if (tagRouterRule == null || !tagRouterRule.isValid() || !tagRouterRule.isEnabled() || isRuntime()) {
             map.put(TreeNode.FAILOVER_KEY, invokers);
             return map;
         }