Fix Dubbo 2.7.5 compatibility problem of sentinel-apache-dubbo-adapter (#1296)

This commit is contained in:
于玉桔 2020-02-21 23:47:15 +08:00 committed by GitHub
parent 5f203aa79f
commit 2bdeccf723
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 11 deletions

View File

@ -15,7 +15,7 @@
<properties> <properties>
<java.source.version>1.8</java.source.version> <java.source.version>1.8</java.source.version>
<java.target.version>1.8</java.target.version> <java.target.version>1.8</java.target.version>
<apache.dubbo.version>2.7.3</apache.dubbo.version> <apache.dubbo.version>2.7.5</apache.dubbo.version>
</properties> </properties>
<dependencies> <dependencies>

View File

@ -22,11 +22,7 @@ import com.alibaba.csp.sentinel.adapter.dubbo.config.DubboConfig;
import com.alibaba.csp.sentinel.context.ContextUtil; import com.alibaba.csp.sentinel.context.ContextUtil;
import org.apache.dubbo.common.URL; import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.*;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.ListenableFilter;
import org.apache.dubbo.rpc.Result;
import org.apache.dubbo.rpc.RpcContext;
/** /**
* Base Class of the {@link SentinelDubboProviderFilter} and {@link SentinelDubboConsumerFilter}. * Base Class of the {@link SentinelDubboProviderFilter} and {@link SentinelDubboConsumerFilter}.
@ -41,8 +37,16 @@ public abstract class BaseSentinelDubboFilter extends ListenableFilter {
static class SentinelDubboListener implements Listener { static class SentinelDubboListener implements Listener {
@Override
public void onResponse(Result appResponse, Invoker<?> invoker, Invocation invocation) { public void onResponse(Result appResponse, Invoker<?> invoker, Invocation invocation) {
onSuccess(appResponse, invoker);
}
//for compatible dubbo 2.7.5 rename onResponse to onMessage
public void onMessage(Result appResponse, Invoker<?> invoker, Invocation invocation) {
onSuccess(appResponse, invoker);
}
private void onSuccess(Result appResponse, Invoker<?> invoker) {
if (DubboConfig.getDubboBizExceptionTraceEnabled()) { if (DubboConfig.getDubboBizExceptionTraceEnabled()) {
traceAndExit(appResponse.getException(), invoker.getUrl()); traceAndExit(appResponse.getException(), invoker.getUrl());
} else { } else {

View File

@ -70,6 +70,6 @@ public class DubboAppContextFilterTest extends BaseTest {
verify(invoker).invoke(invocation); verify(invoker).invoke(invocation);
String application = RpcContext.getContext().getAttachment(DubboUtils.SENTINEL_DUBBO_APPLICATION_KEY); String application = RpcContext.getContext().getAttachment(DubboUtils.SENTINEL_DUBBO_APPLICATION_KEY);
assertNull(application); assertEquals(application, "");
} }
} }

View File

@ -227,7 +227,7 @@ public class SentinelDubboConsumerFilterTest extends BaseTest {
} }
public Result responseBack(Result result) { public Result responseBack(Result result) {
filter.listener().onResponse(result, invoker, invocation); filter.listener().onMessage(result, invoker, invocation);
return result; return result;
} }
@ -265,7 +265,7 @@ public class SentinelDubboConsumerFilterTest extends BaseTest {
filter.invoke(invoker, invocation); filter.invoke(invoker, invocation);
verify(invoker).invoke(invocation); verify(invoker).invoke(invocation);
filter.listener().onResponse(result, invoker, invocation); filter.listener().onMessage(result, invoker, invocation);
Context context = ContextUtil.getContext(); Context context = ContextUtil.getContext();
assertNull(context); assertNull(context);
} }

View File

@ -89,7 +89,7 @@ public class SentinelDubboProviderFilterTest extends BaseTest {
filter.invoke(invoker, invocation); filter.invoke(invoker, invocation);
verify(invoker).invoke(invocation); verify(invoker).invoke(invocation);
filter.listener().onResponse(result, invoker, invocation); filter.listener().onMessage(result, invoker, invocation);
Context context = ContextUtil.getContext(); Context context = ContextUtil.getContext();
assertNull(context); assertNull(context);
} }