Skip to content

Commit 1be9ced

Browse files
committed
fix:remove useless implement and the duplicate compareTo logic,use getPriotity instead
1 parent 05a98f3 commit 1be9ced

File tree

9 files changed

+27
-39
lines changed

9 files changed

+27
-39
lines changed

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Router.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232
* @see org.apache.dubbo.rpc.cluster.Directory#list(Invocation)
3333
*/
3434
public interface Router extends Comparable<Router> {
35+
36+
int DEFAULT_PRIORITY = Integer.MAX_VALUE;
37+
3538
/**
3639
* Get the router url.
3740
*
@@ -91,16 +94,6 @@ default int compareTo(Router o) {
9194
if (o == null) {
9295
throw new IllegalArgumentException();
9396
}
94-
if (this.getPriority() == o.getPriority()) {
95-
if (o.getUrl() == null) {
96-
return 1;
97-
}
98-
if (getUrl() == null) {
99-
return -1;
100-
}
101-
return getUrl().toFullString().compareTo(o.getUrl().toFullString());
102-
} else {
103-
return getPriority() > o.getPriority() ? 1 : -1;
104-
}
97+
return Integer.compare(this.getPriority(), o.getPriority());
10598
}
10699
}

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/AbstractRouter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.apache.dubbo.rpc.cluster.Router;
2222

2323
public abstract class AbstractRouter implements Router {
24-
protected int priority;
24+
protected int priority = DEFAULT_PRIORITY;
2525
protected boolean force = false;
2626
protected URL url;
2727

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/ConditionRouter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.apache.dubbo.rpc.Invocation;
2828
import org.apache.dubbo.rpc.Invoker;
2929
import org.apache.dubbo.rpc.RpcException;
30-
import org.apache.dubbo.rpc.cluster.Router;
3130
import org.apache.dubbo.rpc.cluster.router.AbstractRouter;
3231

3332
import java.text.ParseException;
@@ -44,7 +43,7 @@
4443
* ConditionRouter
4544
*
4645
*/
47-
public class ConditionRouter extends AbstractRouter implements Comparable<Router> {
46+
public class ConditionRouter extends AbstractRouter {
4847
public static final String NAME = "condition";
4948

5049
private static final Logger logger = LoggerFactory.getLogger(ConditionRouter.class);

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,13 @@
2525
*/
2626
public class AppRouter extends ListenableRouter {
2727
public static final String NAME = "APP_ROUTER";
28+
/**
29+
* AppRouter should after ServiceRouter
30+
*/
31+
private static final int APP_ROUTER_DEFAULT_PRIORITY = 150;
2832

2933
public AppRouter(DynamicConfiguration configuration, URL url) {
3034
super(configuration, url, url.getParameter(Constants.APPLICATION_KEY));
35+
this.priority = APP_ROUTER_DEFAULT_PRIORITY;
3136
}
3237
}

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
public abstract class ListenableRouter extends AbstractRouter implements ConfigurationListener {
4545
public static final String NAME = "LISTENABLE_ROUTER";
4646
private static final String RULE_SUFFIX = ".condition-router";
47-
public static final int DEFAULT_PRIORITY = 200;
47+
4848
private static final Logger logger = LoggerFactory.getLogger(ListenableRouter.class);
4949
private ConditionRouterRule routerRule;
5050
private List<ConditionRouter> conditionRouters = Collections.emptyList();

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,13 @@
2424
*/
2525
public class ServiceRouter extends ListenableRouter {
2626
public static final String NAME = "SERVICE_ROUTER";
27+
/**
28+
* ServiceRouter should before AppRouter
29+
*/
30+
private static final int SERVICE_ROUTER_DEFAULT_PRIORITY = 140;
2731

2832
public ServiceRouter(DynamicConfiguration configuration, URL url) {
2933
super(configuration, url, url.getEncodedServiceKey());
34+
this.priority = SERVICE_ROUTER_DEFAULT_PRIORITY;
3035
}
3136
}

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,15 @@
3030
/**
3131
* A specific Router designed to realize mock feature.
3232
* If a request is configured to use mock, then this router guarantees that only the invokers with protocol MOCK appear in final the invoker list, all other invokers will be excluded.
33-
*
3433
*/
3534
public class MockInvokersSelector extends AbstractRouter {
3635

3736
public static final String NAME = "MOCK_ROUTER";
37+
private static final int MOCK_INVOKERS_DEFAULT_PRIORITY = Integer.MIN_VALUE;
38+
39+
public MockInvokersSelector() {
40+
this.priority = MOCK_INVOKERS_DEFAULT_PRIORITY;
41+
}
3842

3943
@Override
4044
public <T> List<Invoker<T>> route(final List<Invoker<T>> invokers,
@@ -94,9 +98,4 @@ private <T> boolean hasMockProviders(final List<Invoker<T>> invokers) {
9498
return hasMockProvider;
9599
}
96100

97-
@Override
98-
public int getPriority() {
99-
return Integer.MAX_VALUE;
100-
}
101-
102101
}

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/script/ScriptRouter.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.apache.dubbo.rpc.Invoker;
2626
import org.apache.dubbo.rpc.RpcContext;
2727
import org.apache.dubbo.rpc.RpcException;
28-
import org.apache.dubbo.rpc.cluster.Router;
2928
import org.apache.dubbo.rpc.cluster.router.AbstractRouter;
3029

3130
import javax.script.Bindings;
@@ -46,6 +45,7 @@
4645
*/
4746
public class ScriptRouter extends AbstractRouter {
4847
public static final String NAME = "SCRIPT_ROUTER";
48+
private static final int SCRIPT_ROUTER_DEFAULT_PRIORITY = 0;
4949
private static final Logger logger = LoggerFactory.getLogger(ScriptRouter.class);
5050

5151
private static final Map<String, ScriptEngine> engines = new ConcurrentHashMap<>();
@@ -58,7 +58,7 @@ public class ScriptRouter extends AbstractRouter {
5858

5959
public ScriptRouter(URL url) {
6060
this.url = url;
61-
this.priority = url.getParameter(Constants.PRIORITY_KEY, 0);
61+
this.priority = url.getParameter(Constants.PRIORITY_KEY, SCRIPT_ROUTER_DEFAULT_PRIORITY);
6262

6363
engine = getEngine(url);
6464
rule = getRule(url);
@@ -150,12 +150,4 @@ public boolean isForce() {
150150
return url.getParameter(Constants.FORCE_KEY, false);
151151
}
152152

153-
@Override
154-
public int compareTo(Router o) {
155-
if (o == null || o.getClass() != ScriptRouter.class) {
156-
return 1;
157-
}
158-
ScriptRouter c = (ScriptRouter) o;
159-
return this.priority == c.priority ? rule.compareTo(c.rule) : (this.priority > c.priority ? 1 : -1);
160-
}
161153
}

dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.apache.dubbo.rpc.Invocation;
3030
import org.apache.dubbo.rpc.Invoker;
3131
import org.apache.dubbo.rpc.RpcException;
32-
import org.apache.dubbo.rpc.cluster.Router;
3332
import org.apache.dubbo.rpc.cluster.router.AbstractRouter;
3433
import org.apache.dubbo.rpc.cluster.router.tag.model.TagRouterRule;
3534
import org.apache.dubbo.rpc.cluster.router.tag.model.TagRuleParser;
@@ -44,9 +43,9 @@
4443
/**
4544
* TagRouter, "application.tag-router"
4645
*/
47-
public class TagRouter extends AbstractRouter implements Comparable<Router>, ConfigurationListener {
46+
public class TagRouter extends AbstractRouter implements ConfigurationListener {
4847
public static final String NAME = "TAG_ROUTER";
49-
private static final int DEFAULT_PRIORITY = 100;
48+
private static final int TAG_ROUTER_DEFAULT_PRIORITY = 100;
5049
private static final Logger logger = LoggerFactory.getLogger(TagRouter.class);
5150
private static final String RULE_SUFFIX = ".tag-router";
5251

@@ -55,6 +54,7 @@ public class TagRouter extends AbstractRouter implements Comparable<Router>, Con
5554

5655
public TagRouter(DynamicConfiguration configuration, URL url) {
5756
super(configuration, url);
57+
this.priority = TAG_ROUTER_DEFAULT_PRIORITY;
5858
}
5959

6060
@Override
@@ -172,11 +172,6 @@ private <T> List<Invoker<T>> filterUsingStaticTag(List<Invoker<T>> invokers, URL
172172
return result;
173173
}
174174

175-
@Override
176-
public int getPriority() {
177-
return DEFAULT_PRIORITY;
178-
}
179-
180175
@Override
181176
public boolean isRuntime() {
182177
return tagRouterRule != null && tagRouterRule.isRuntime();

0 commit comments

Comments
 (0)