diff --git a/sop-support/sop-service-support/pom.xml b/sop-support/sop-service-support/pom.xml index 91dbfd49..878df406 100755 --- a/sop-support/sop-service-support/pom.xml +++ b/sop-support/sop-service-support/pom.xml @@ -15,11 +15,6 @@ - - com.alibaba - transmittable-thread-local - 2.14.5 - org.apache.dubbo dubbo diff --git a/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/OpenContext.java b/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/OpenContext.java index ced300d0..2b7b5185 100755 --- a/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/OpenContext.java +++ b/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/OpenContext.java @@ -1,7 +1,5 @@ package com.gitee.sop.support.context; -import com.alibaba.ttl.TransmittableThreadLocal; - import java.util.Locale; /** @@ -9,7 +7,7 @@ import java.util.Locale; */ public abstract class OpenContext { - private static final ThreadLocal THREAD_LOCAL = new TransmittableThreadLocal<>(); + private static final ThreadLocal THREAD_LOCAL = new InheritableThreadLocal<>(); /** * 获取appId diff --git a/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/WebContext.java b/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/WebContext.java index f818f4f6..e0ec4e42 100644 --- a/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/WebContext.java +++ b/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/context/WebContext.java @@ -1,7 +1,5 @@ package com.gitee.sop.support.context; -import com.alibaba.ttl.TransmittableThreadLocal; - import java.util.List; import java.util.Locale; import java.util.Map; @@ -11,7 +9,7 @@ import java.util.Map; */ public abstract class WebContext { - private static final ThreadLocal THREAD_LOCAL = new TransmittableThreadLocal<>(); + private static final ThreadLocal THREAD_LOCAL = new InheritableThreadLocal<>(); public abstract String getMethod(); diff --git a/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/dubbo/SopPenetrateAttachmentSelector.java b/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/dubbo/SopPenetrateAttachmentSelector.java new file mode 100644 index 00000000..404d0bd8 --- /dev/null +++ b/sop-support/sop-service-support/src/main/java/com/gitee/sop/support/dubbo/SopPenetrateAttachmentSelector.java @@ -0,0 +1,34 @@ +package com.gitee.sop.support.dubbo; + +import com.gitee.sop.support.constant.SopConstants; +import org.apache.dubbo.rpc.Invocation; +import org.apache.dubbo.rpc.PenetrateAttachmentSelector; +import org.apache.dubbo.rpc.RpcContextAttachment; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +/** + * @author 六如 + */ +public class SopPenetrateAttachmentSelector implements PenetrateAttachmentSelector { + @Override + public Map select(Invocation invocation, RpcContextAttachment clientAttachment, RpcContextAttachment serverAttachment) { + Map map = new HashMap<>(4); + Object openContext = serverAttachment.getObjectAttachment(SopConstants.OPEN_CONTEXT); + if (openContext != null) { + map.put(SopConstants.OPEN_CONTEXT, openContext); + } + Object webContext = serverAttachment.getObjectAttachment(SopConstants.WEB_CONTEXT); + if (webContext != null) { + map.put(SopConstants.WEB_CONTEXT, webContext); + } + return map; + } + + @Override + public Map selectReverse(Invocation invocation, RpcContextAttachment clientResponseContext, RpcContextAttachment serverResponseContext) { + return Collections.emptyMap(); + } +} diff --git a/sop-support/sop-service-support/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.PenetrateAttachmentSelector.PenetrateAttachmentSelector b/sop-support/sop-service-support/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.PenetrateAttachmentSelector.PenetrateAttachmentSelector new file mode 100644 index 00000000..db86c3c3 --- /dev/null +++ b/sop-support/sop-service-support/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.PenetrateAttachmentSelector.PenetrateAttachmentSelector @@ -0,0 +1 @@ +sopPenetrateAttachmentSelector=com.gitee.sop.support.dubbo.SopPenetrateAttachmentSelector