From 4bb9590653ed2c4f6e36f874d26b02e7354ff914 Mon Sep 17 00:00:00 2001 From: tiecheng <18768171164@163.com> Date: Wed, 17 Jun 2020 14:19:39 +0800 Subject: [PATCH 1/6] Customized handler parser in Dubbo provider filter. --- .../dubbo/SentinelDubboProviderFilter.java | 5 +- .../dubbo/origin/DefaultDubboOrigin.java | 20 +++++++ .../adapter/dubbo/origin/DubboOrigin.java | 24 +++++++++ .../dubbo/origin/DubboOriginRegistry.java | 23 ++++++++ .../dubbo/origin/DubboOriginRegistryTest.java | 54 +++++++++++++++++++ 5 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java create mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java create mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java create mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java index 85d566ad99..ff2fb4c63e 100755 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java @@ -22,6 +22,7 @@ import com.alibaba.csp.sentinel.Tracer; import com.alibaba.csp.sentinel.adapter.dubbo.config.DubboConfig; import com.alibaba.csp.sentinel.adapter.dubbo.fallback.DubboFallbackRegistry; +import com.alibaba.csp.sentinel.adapter.dubbo.origin.DubboOriginRegistry; import com.alibaba.csp.sentinel.context.ContextUtil; import com.alibaba.csp.sentinel.log.RecordLog; import com.alibaba.csp.sentinel.slots.block.BlockException; @@ -55,14 +56,14 @@ public SentinelDubboProviderFilter() { @Override public Result invoke(Invoker invoker, Invocation invocation) throws RpcException { // Get origin caller. - String application = DubboUtils.getApplication(invocation, ""); + String origin = DubboOriginRegistry.getDubboOrigin().handler(invoker, invocation); Entry interfaceEntry = null; Entry methodEntry = null; try { String resourceName = getResourceName(invoker, invocation, DubboConfig.getDubboProviderPrefix()); String interfaceName = invoker.getInterface().getName(); - ContextUtil.enter(resourceName, application); + ContextUtil.enter(resourceName, origin); interfaceEntry = SphU.entry(interfaceName, ResourceTypeConstants.COMMON_RPC, EntryType.IN); methodEntry = SphU.entry(resourceName, ResourceTypeConstants.COMMON_RPC, EntryType.IN, invocation.getArguments()); diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java new file mode 100644 index 0000000000..eb0032270a --- /dev/null +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java @@ -0,0 +1,20 @@ +package com.alibaba.csp.sentinel.adapter.dubbo.origin; + +import com.alibaba.csp.sentinel.adapter.dubbo.DubboUtils; +import com.alibaba.dubbo.rpc.Invocation; +import com.alibaba.dubbo.rpc.Invoker; + +/** + * Default Dubbo origin handler. + * + * @author tc + * @date 2020/6/10 + */ +public class DefaultDubboOrigin implements DubboOrigin { + + @Override + public String handler(Invoker invoker, Invocation invocation) { + return DubboUtils.getApplication(invocation, ""); + } + +} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java new file mode 100644 index 0000000000..6b69a37d1d --- /dev/null +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java @@ -0,0 +1,24 @@ +package com.alibaba.csp.sentinel.adapter.dubbo.origin; + +import com.alibaba.csp.sentinel.context.Context; +import com.alibaba.dubbo.rpc.Invocation; +import com.alibaba.dubbo.rpc.Invoker; + +/** + * Customized handler parser in Dubbo provider filter. {@link Context#getOrigin()} + * + * @author tc + * @date 2020/6/10 + */ +public interface DubboOrigin { + + /** + * Handle the handler parser. + * + * @param invoker Dubbo invoker + * @param invocation Dubbo invocation + * @return handler result + */ + String handler(Invoker invoker, Invocation invocation); + +} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java new file mode 100644 index 0000000000..47b28760ca --- /dev/null +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java @@ -0,0 +1,23 @@ +package com.alibaba.csp.sentinel.adapter.dubbo.origin; + +/** + * Global handler registry for Dubbo. + * + * @author tc + * @date 2020/6/10 + */ +public final class DubboOriginRegistry { + + private static volatile DubboOrigin dubboOrigin = new DefaultDubboOrigin(); + + public static DubboOrigin getDubboOrigin() { + return dubboOrigin; + } + + public static void setDubboOrigin(DubboOrigin dubboOrigin) { + DubboOriginRegistry.dubboOrigin = dubboOrigin; + } + + private DubboOriginRegistry() {} + +} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java new file mode 100644 index 0000000000..1c81adcdfe --- /dev/null +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java @@ -0,0 +1,54 @@ +package com.alibaba.csp.sentinel.adapter.dubbo.origin; + +import com.alibaba.csp.sentinel.adapter.dubbo.DubboUtils; +import com.alibaba.dubbo.rpc.Invocation; +import com.alibaba.dubbo.rpc.Invoker; +import com.alibaba.dubbo.rpc.RpcInvocation; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author tc + * @date 2020/6/10 + */ +public class DubboOriginRegistryTest { + + @Test(expected = IllegalArgumentException.class) + public void testDefaultOriginFail() { + DubboOriginRegistry.getDubboOrigin().handler(null, null); + } + + @Test + public void testDefaultOriginSuccess() { + RpcInvocation invocation = new RpcInvocation(); + String dubboName = "sentinel"; + invocation.setAttachment(DubboUtils.DUBBO_APPLICATION_KEY, dubboName); + String origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + Assert.assertEquals(dubboName, origin); + } + + @Test + public void testCustomOrigin() { + DubboOriginRegistry.setDubboOrigin(new DubboOrigin() { + @Override + public String handler(Invoker invoker, Invocation invocation) { + return invocation.getAttachment(DubboUtils.DUBBO_APPLICATION_KEY, "default") + "_" + invocation + .getMethodName(); + } + }); + + RpcInvocation invocation = new RpcInvocation(); + String origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + Assert.assertEquals("default_null", origin); + + String dubboName = "sentinel"; + invocation.setAttachment(DubboUtils.DUBBO_APPLICATION_KEY, dubboName); + origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + Assert.assertEquals(dubboName + "_null", origin); + + invocation.setMethodName("hello"); + origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + Assert.assertEquals(dubboName + "_hello", origin); + } + +} From f2b7759828729e3e5f9a156924ae93fc1c1e0d53 Mon Sep 17 00:00:00 2001 From: tiecheng <18768171164@163.com> Date: Wed, 17 Jun 2020 18:55:21 +0800 Subject: [PATCH 2/6] 1. rename to DubboOriginParser#parse 2. add DubboOriginParser feature to README.md --- .../sentinel-dubbo-adapter/README.md | 8 ++++++- .../dubbo/SentinelDubboProviderFilter.java | 7 ++++-- ...gin.java => DefaultDubboOriginParser.java} | 6 ++--- ...ubboOrigin.java => DubboOriginParser.java} | 10 ++++---- .../origin/DubboOriginParserRegistry.java | 23 +++++++++++++++++++ .../dubbo/origin/DubboOriginRegistry.java | 23 ------------------- .../dubbo/origin/DubboOriginRegistryTest.java | 14 +++++------ 7 files changed, 50 insertions(+), 41 deletions(-) rename sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/{DefaultDubboOrigin.java => DefaultDubboOriginParser.java} (65%) rename sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/{DubboOrigin.java => DubboOriginParser.java} (58%) create mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java delete mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java diff --git a/sentinel-adapter/sentinel-dubbo-adapter/README.md b/sentinel-adapter/sentinel-dubbo-adapter/README.md index cbeb0e2e98..f6eeb18ea9 100755 --- a/sentinel-adapter/sentinel-dubbo-adapter/README.md +++ b/sentinel-adapter/sentinel-dubbo-adapter/README.md @@ -65,4 +65,10 @@ flow control, degrade or system load protection. You can implement your own `Dub and then register to `DubboFallbackRegistry`. If no fallback is configured, Sentinel will wrap the `BlockException` then directly throw it out. -Besides, we can also leverage [Dubbo mock mechanism](http://dubbo.apache.org/en-us/docs/user/demos/local-mock.html) to provide fallback implementation of degraded Dubbo services. \ No newline at end of file +Besides, we can also leverage [Dubbo mock mechanism](http://dubbo.apache.org/en-us/docs/user/demos/local-mock.html) to provide fallback implementation of degraded Dubbo services. + +## Global dubbo provider origin parse + +Sentinel Dubbo Adapter supports global origin parse for provider. +You can implement your own `DubboOriginParser` interface +and then register to `DubboOriginRegistry`. If no originParse is configured, Sentinel will user dubbo url property application. \ No newline at end of file diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java index ff2fb4c63e..959281ac06 100755 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java @@ -22,7 +22,7 @@ import com.alibaba.csp.sentinel.Tracer; import com.alibaba.csp.sentinel.adapter.dubbo.config.DubboConfig; import com.alibaba.csp.sentinel.adapter.dubbo.fallback.DubboFallbackRegistry; -import com.alibaba.csp.sentinel.adapter.dubbo.origin.DubboOriginRegistry; +import com.alibaba.csp.sentinel.adapter.dubbo.origin.DubboOriginParserRegistry; import com.alibaba.csp.sentinel.context.ContextUtil; import com.alibaba.csp.sentinel.log.RecordLog; import com.alibaba.csp.sentinel.slots.block.BlockException; @@ -56,7 +56,10 @@ public SentinelDubboProviderFilter() { @Override public Result invoke(Invoker invoker, Invocation invocation) throws RpcException { // Get origin caller. - String origin = DubboOriginRegistry.getDubboOrigin().handler(invoker, invocation); + String origin = DubboOriginParserRegistry.getDubboOriginParser().parse(invoker, invocation); + if (null == origin) { + origin = ""; + } Entry interfaceEntry = null; Entry methodEntry = null; diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java similarity index 65% rename from sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java rename to sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java index eb0032270a..6c0ddea2e6 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java @@ -5,15 +5,15 @@ import com.alibaba.dubbo.rpc.Invoker; /** - * Default Dubbo origin handler. + * Default Dubbo origin parse. * * @author tc * @date 2020/6/10 */ -public class DefaultDubboOrigin implements DubboOrigin { +public class DefaultDubboOriginParser implements DubboOriginParser { @Override - public String handler(Invoker invoker, Invocation invocation) { + public String parse(Invoker invoker, Invocation invocation) { return DubboUtils.getApplication(invocation, ""); } diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java similarity index 58% rename from sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java rename to sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java index 6b69a37d1d..d11d5bdddb 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java @@ -5,20 +5,20 @@ import com.alibaba.dubbo.rpc.Invoker; /** - * Customized handler parser in Dubbo provider filter. {@link Context#getOrigin()} + * Customized origin parse in Dubbo provider filter. {@link Context#getOrigin()} * * @author tc * @date 2020/6/10 */ -public interface DubboOrigin { +public interface DubboOriginParser { /** - * Handle the handler parser. + * Handle the origin parse. * * @param invoker Dubbo invoker * @param invocation Dubbo invocation - * @return handler result + * @return parse result */ - String handler(Invoker invoker, Invocation invocation); + String parse(Invoker invoker, Invocation invocation); } diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java new file mode 100644 index 0000000000..a2909e157c --- /dev/null +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java @@ -0,0 +1,23 @@ +package com.alibaba.csp.sentinel.adapter.dubbo.origin; + +/** + * Global origin parser registry for Dubbo. + * + * @author tc + * @date 2020/6/10 + */ +public final class DubboOriginParserRegistry { + + private static volatile DubboOriginParser dubboOriginParser = new DefaultDubboOriginParser(); + + public static DubboOriginParser getDubboOriginParser() { + return dubboOriginParser; + } + + public static void setDubboOriginParser(DubboOriginParser dubboOrigin) { + DubboOriginParserRegistry.dubboOriginParser = dubboOrigin; + } + + private DubboOriginParserRegistry() {} + +} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java deleted file mode 100644 index 47b28760ca..0000000000 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.alibaba.csp.sentinel.adapter.dubbo.origin; - -/** - * Global handler registry for Dubbo. - * - * @author tc - * @date 2020/6/10 - */ -public final class DubboOriginRegistry { - - private static volatile DubboOrigin dubboOrigin = new DefaultDubboOrigin(); - - public static DubboOrigin getDubboOrigin() { - return dubboOrigin; - } - - public static void setDubboOrigin(DubboOrigin dubboOrigin) { - DubboOriginRegistry.dubboOrigin = dubboOrigin; - } - - private DubboOriginRegistry() {} - -} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java index 1c81adcdfe..220a6abe35 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java @@ -15,7 +15,7 @@ public class DubboOriginRegistryTest { @Test(expected = IllegalArgumentException.class) public void testDefaultOriginFail() { - DubboOriginRegistry.getDubboOrigin().handler(null, null); + DubboOriginParserRegistry.getDubboOriginParser().parse(null, null); } @Test @@ -23,31 +23,31 @@ public void testDefaultOriginSuccess() { RpcInvocation invocation = new RpcInvocation(); String dubboName = "sentinel"; invocation.setAttachment(DubboUtils.DUBBO_APPLICATION_KEY, dubboName); - String origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + String origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName, origin); } @Test public void testCustomOrigin() { - DubboOriginRegistry.setDubboOrigin(new DubboOrigin() { + DubboOriginParserRegistry.setDubboOriginParser(new DubboOriginParser() { @Override - public String handler(Invoker invoker, Invocation invocation) { + public String parse(Invoker invoker, Invocation invocation) { return invocation.getAttachment(DubboUtils.DUBBO_APPLICATION_KEY, "default") + "_" + invocation .getMethodName(); } }); RpcInvocation invocation = new RpcInvocation(); - String origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + String origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals("default_null", origin); String dubboName = "sentinel"; invocation.setAttachment(DubboUtils.DUBBO_APPLICATION_KEY, dubboName); - origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName + "_null", origin); invocation.setMethodName("hello"); - origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName + "_hello", origin); } From 9396092a185935d3de29f1097dabf477a26b6ff2 Mon Sep 17 00:00:00 2001 From: tiecheng <18768171164@163.com> Date: Wed, 17 Jun 2020 18:57:03 +0800 Subject: [PATCH 3/6] 1. rename to DubboOriginParser#parse 2. add DubboOriginParser feature to README.md --- .../sentinel-dubbo-adapter/README.md | 8 ++++++- .../dubbo/SentinelDubboProviderFilter.java | 7 ++++-- ...gin.java => DefaultDubboOriginParser.java} | 6 ++--- ...ubboOrigin.java => DubboOriginParser.java} | 10 ++++---- .../origin/DubboOriginParserRegistry.java | 23 +++++++++++++++++++ .../dubbo/origin/DubboOriginRegistry.java | 23 ------------------- .../dubbo/origin/DubboOriginRegistryTest.java | 14 +++++------ 7 files changed, 50 insertions(+), 41 deletions(-) rename sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/{DefaultDubboOrigin.java => DefaultDubboOriginParser.java} (65%) rename sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/{DubboOrigin.java => DubboOriginParser.java} (58%) create mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java delete mode 100644 sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java diff --git a/sentinel-adapter/sentinel-dubbo-adapter/README.md b/sentinel-adapter/sentinel-dubbo-adapter/README.md index cbeb0e2e98..f72fca45d4 100755 --- a/sentinel-adapter/sentinel-dubbo-adapter/README.md +++ b/sentinel-adapter/sentinel-dubbo-adapter/README.md @@ -65,4 +65,10 @@ flow control, degrade or system load protection. You can implement your own `Dub and then register to `DubboFallbackRegistry`. If no fallback is configured, Sentinel will wrap the `BlockException` then directly throw it out. -Besides, we can also leverage [Dubbo mock mechanism](http://dubbo.apache.org/en-us/docs/user/demos/local-mock.html) to provide fallback implementation of degraded Dubbo services. \ No newline at end of file +Besides, we can also leverage [Dubbo mock mechanism](http://dubbo.apache.org/en-us/docs/user/demos/local-mock.html) to provide fallback implementation of degraded Dubbo services. + +## Global dubbo provider origin parse + +Sentinel Dubbo Adapter supports global origin parse for provider. +You can implement your own `DubboOriginParser` interface +and then register to `DubboOriginParserRegistry`. If no originParse is configured, Sentinel will user dubbo url property application. \ No newline at end of file diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java index ff2fb4c63e..959281ac06 100755 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java @@ -22,7 +22,7 @@ import com.alibaba.csp.sentinel.Tracer; import com.alibaba.csp.sentinel.adapter.dubbo.config.DubboConfig; import com.alibaba.csp.sentinel.adapter.dubbo.fallback.DubboFallbackRegistry; -import com.alibaba.csp.sentinel.adapter.dubbo.origin.DubboOriginRegistry; +import com.alibaba.csp.sentinel.adapter.dubbo.origin.DubboOriginParserRegistry; import com.alibaba.csp.sentinel.context.ContextUtil; import com.alibaba.csp.sentinel.log.RecordLog; import com.alibaba.csp.sentinel.slots.block.BlockException; @@ -56,7 +56,10 @@ public SentinelDubboProviderFilter() { @Override public Result invoke(Invoker invoker, Invocation invocation) throws RpcException { // Get origin caller. - String origin = DubboOriginRegistry.getDubboOrigin().handler(invoker, invocation); + String origin = DubboOriginParserRegistry.getDubboOriginParser().parse(invoker, invocation); + if (null == origin) { + origin = ""; + } Entry interfaceEntry = null; Entry methodEntry = null; diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java similarity index 65% rename from sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java rename to sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java index eb0032270a..6c0ddea2e6 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOrigin.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java @@ -5,15 +5,15 @@ import com.alibaba.dubbo.rpc.Invoker; /** - * Default Dubbo origin handler. + * Default Dubbo origin parse. * * @author tc * @date 2020/6/10 */ -public class DefaultDubboOrigin implements DubboOrigin { +public class DefaultDubboOriginParser implements DubboOriginParser { @Override - public String handler(Invoker invoker, Invocation invocation) { + public String parse(Invoker invoker, Invocation invocation) { return DubboUtils.getApplication(invocation, ""); } diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java similarity index 58% rename from sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java rename to sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java index 6b69a37d1d..d11d5bdddb 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOrigin.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java @@ -5,20 +5,20 @@ import com.alibaba.dubbo.rpc.Invoker; /** - * Customized handler parser in Dubbo provider filter. {@link Context#getOrigin()} + * Customized origin parse in Dubbo provider filter. {@link Context#getOrigin()} * * @author tc * @date 2020/6/10 */ -public interface DubboOrigin { +public interface DubboOriginParser { /** - * Handle the handler parser. + * Handle the origin parse. * * @param invoker Dubbo invoker * @param invocation Dubbo invocation - * @return handler result + * @return parse result */ - String handler(Invoker invoker, Invocation invocation); + String parse(Invoker invoker, Invocation invocation); } diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java new file mode 100644 index 0000000000..a2909e157c --- /dev/null +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java @@ -0,0 +1,23 @@ +package com.alibaba.csp.sentinel.adapter.dubbo.origin; + +/** + * Global origin parser registry for Dubbo. + * + * @author tc + * @date 2020/6/10 + */ +public final class DubboOriginParserRegistry { + + private static volatile DubboOriginParser dubboOriginParser = new DefaultDubboOriginParser(); + + public static DubboOriginParser getDubboOriginParser() { + return dubboOriginParser; + } + + public static void setDubboOriginParser(DubboOriginParser dubboOrigin) { + DubboOriginParserRegistry.dubboOriginParser = dubboOrigin; + } + + private DubboOriginParserRegistry() {} + +} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java deleted file mode 100644 index 47b28760ca..0000000000 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistry.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.alibaba.csp.sentinel.adapter.dubbo.origin; - -/** - * Global handler registry for Dubbo. - * - * @author tc - * @date 2020/6/10 - */ -public final class DubboOriginRegistry { - - private static volatile DubboOrigin dubboOrigin = new DefaultDubboOrigin(); - - public static DubboOrigin getDubboOrigin() { - return dubboOrigin; - } - - public static void setDubboOrigin(DubboOrigin dubboOrigin) { - DubboOriginRegistry.dubboOrigin = dubboOrigin; - } - - private DubboOriginRegistry() {} - -} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java index 1c81adcdfe..220a6abe35 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java @@ -15,7 +15,7 @@ public class DubboOriginRegistryTest { @Test(expected = IllegalArgumentException.class) public void testDefaultOriginFail() { - DubboOriginRegistry.getDubboOrigin().handler(null, null); + DubboOriginParserRegistry.getDubboOriginParser().parse(null, null); } @Test @@ -23,31 +23,31 @@ public void testDefaultOriginSuccess() { RpcInvocation invocation = new RpcInvocation(); String dubboName = "sentinel"; invocation.setAttachment(DubboUtils.DUBBO_APPLICATION_KEY, dubboName); - String origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + String origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName, origin); } @Test public void testCustomOrigin() { - DubboOriginRegistry.setDubboOrigin(new DubboOrigin() { + DubboOriginParserRegistry.setDubboOriginParser(new DubboOriginParser() { @Override - public String handler(Invoker invoker, Invocation invocation) { + public String parse(Invoker invoker, Invocation invocation) { return invocation.getAttachment(DubboUtils.DUBBO_APPLICATION_KEY, "default") + "_" + invocation .getMethodName(); } }); RpcInvocation invocation = new RpcInvocation(); - String origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + String origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals("default_null", origin); String dubboName = "sentinel"; invocation.setAttachment(DubboUtils.DUBBO_APPLICATION_KEY, dubboName); - origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName + "_null", origin); invocation.setMethodName("hello"); - origin = DubboOriginRegistry.getDubboOrigin().handler(null, invocation); + origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName + "_hello", origin); } From 0ade21b47d932eda4385db27506cb71cbfc45776 Mon Sep 17 00:00:00 2001 From: tiecheng <18768171164@163.com> Date: Wed, 17 Jun 2020 21:17:38 +0800 Subject: [PATCH 4/6] 1. add license header 2. remove date --- .../dubbo/origin/DefaultDubboOriginParser.java | 18 ++++++++++++++++-- .../dubbo/origin/DubboOriginParser.java | 18 ++++++++++++++++-- .../origin/DubboOriginParserRegistry.java | 18 ++++++++++++++++-- .../dubbo/origin/DubboOriginRegistryTest.java | 18 ++++++++++++++++-- 4 files changed, 64 insertions(+), 8 deletions(-) diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java index 6c0ddea2e6..015fd2efbf 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DefaultDubboOriginParser.java @@ -1,3 +1,18 @@ +/* + * Copyright 1999-2020 Alibaba Group Holding Ltd. + * + * Licensed 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 + * + * https://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 com.alibaba.csp.sentinel.adapter.dubbo.origin; import com.alibaba.csp.sentinel.adapter.dubbo.DubboUtils; @@ -7,8 +22,7 @@ /** * Default Dubbo origin parse. * - * @author tc - * @date 2020/6/10 + * @author tiecheng */ public class DefaultDubboOriginParser implements DubboOriginParser { diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java index d11d5bdddb..ecaca0d2ec 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParser.java @@ -1,3 +1,18 @@ +/* + * Copyright 1999-2020 Alibaba Group Holding Ltd. + * + * Licensed 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 + * + * https://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 com.alibaba.csp.sentinel.adapter.dubbo.origin; import com.alibaba.csp.sentinel.context.Context; @@ -7,8 +22,7 @@ /** * Customized origin parse in Dubbo provider filter. {@link Context#getOrigin()} * - * @author tc - * @date 2020/6/10 + * @author tiecheng */ public interface DubboOriginParser { diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java index a2909e157c..b07a8f9215 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java @@ -1,10 +1,24 @@ +/* + * Copyright 1999-2020 Alibaba Group Holding Ltd. + * + * Licensed 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 + * + * https://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 com.alibaba.csp.sentinel.adapter.dubbo.origin; /** * Global origin parser registry for Dubbo. * - * @author tc - * @date 2020/6/10 + * @author tiecheng */ public final class DubboOriginParserRegistry { diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java index 220a6abe35..d4a6ae347b 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java @@ -1,3 +1,18 @@ +/* + * Copyright 1999-2020 Alibaba Group Holding Ltd. + * + * Licensed 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 + * + * https://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 com.alibaba.csp.sentinel.adapter.dubbo.origin; import com.alibaba.csp.sentinel.adapter.dubbo.DubboUtils; @@ -8,8 +23,7 @@ import org.junit.Test; /** - * @author tc - * @date 2020/6/10 + * @author tiecheng */ public class DubboOriginRegistryTest { From d2e5f51894dd3c7a6a502d2127c24d209624bf02 Mon Sep 17 00:00:00 2001 From: tiecheng <18768171164@163.com> Date: Fri, 19 Jun 2020 09:53:54 +0800 Subject: [PATCH 5/6] effect on SentinelDubboProviderFilterTest when mvn integration-test, so set default parser when run testCustomOriginParser. --- .../adapter/dubbo/origin/DubboOriginRegistryTest.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java index d4a6ae347b..a826886f2d 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java @@ -28,12 +28,12 @@ public class DubboOriginRegistryTest { @Test(expected = IllegalArgumentException.class) - public void testDefaultOriginFail() { + public void testDefaultOriginParserFail() { DubboOriginParserRegistry.getDubboOriginParser().parse(null, null); } @Test - public void testDefaultOriginSuccess() { + public void testDefaultOriginParserSuccess() { RpcInvocation invocation = new RpcInvocation(); String dubboName = "sentinel"; invocation.setAttachment(DubboUtils.DUBBO_APPLICATION_KEY, dubboName); @@ -42,7 +42,7 @@ public void testDefaultOriginSuccess() { } @Test - public void testCustomOrigin() { + public void testCustomOriginParser() { DubboOriginParserRegistry.setDubboOriginParser(new DubboOriginParser() { @Override public String parse(Invoker invoker, Invocation invocation) { @@ -63,6 +63,9 @@ public String parse(Invoker invoker, Invocation invocation) { invocation.setMethodName("hello"); origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName + "_hello", origin); + + // if not set default, effect on SentinelDubboProviderFilterTest when mvn integration-test + DubboOriginParserRegistry.setDubboOriginParser(new DefaultDubboOriginParser()); } } From aa5e8f6eb7fa36dba6a25452a2eb089ce361fbf0 Mon Sep 17 00:00:00 2001 From: tiecheng <18768171164@163.com> Date: Fri, 19 Jun 2020 18:03:40 +0800 Subject: [PATCH 6/6] make code clearer. --- .../adapter/dubbo/origin/DubboOriginParserRegistry.java | 4 ++-- .../adapter/dubbo/origin/DubboOriginRegistryTest.java | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java index b07a8f9215..a25a9c0ab3 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginParserRegistry.java @@ -28,8 +28,8 @@ public static DubboOriginParser getDubboOriginParser() { return dubboOriginParser; } - public static void setDubboOriginParser(DubboOriginParser dubboOrigin) { - DubboOriginParserRegistry.dubboOriginParser = dubboOrigin; + public static void setDubboOriginParser(DubboOriginParser dubboOriginParser) { + DubboOriginParserRegistry.dubboOriginParser = dubboOriginParser; } private DubboOriginParserRegistry() {} diff --git a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java index a826886f2d..e5a1eff111 100644 --- a/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java +++ b/sentinel-adapter/sentinel-dubbo-adapter/src/test/java/com/alibaba/csp/sentinel/adapter/dubbo/origin/DubboOriginRegistryTest.java @@ -19,6 +19,7 @@ import com.alibaba.dubbo.rpc.Invocation; import com.alibaba.dubbo.rpc.Invoker; import com.alibaba.dubbo.rpc.RpcInvocation; +import org.junit.After; import org.junit.Assert; import org.junit.Test; @@ -27,6 +28,11 @@ */ public class DubboOriginRegistryTest { + @After + public void cleanUp() { + DubboOriginParserRegistry.setDubboOriginParser(new DefaultDubboOriginParser()); + } + @Test(expected = IllegalArgumentException.class) public void testDefaultOriginParserFail() { DubboOriginParserRegistry.getDubboOriginParser().parse(null, null); @@ -63,9 +69,6 @@ public String parse(Invoker invoker, Invocation invocation) { invocation.setMethodName("hello"); origin = DubboOriginParserRegistry.getDubboOriginParser().parse(null, invocation); Assert.assertEquals(dubboName + "_hello", origin); - - // if not set default, effect on SentinelDubboProviderFilterTest when mvn integration-test - DubboOriginParserRegistry.setDubboOriginParser(new DefaultDubboOriginParser()); } }