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

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git

commit 00cfad97b4a7c33dbed3f68b6c58a3e0f0a80c4a
Author: Willem Jiang <jiangni...@huawei.com>
AuthorDate: Thu May 10 16:56:13 2018 +0800

    SCB-571 Decouple OmegaContext in omega-transport-dubbo
    
    SCB-571 Decouple OmegaContext in omega-transport-dubbo
---
 .../omega/transport/dubbo/SagaDubboConsumerFilter.java |  2 +-
 .../omega/transport/dubbo/SagaDubboProviderFilter.java | 18 ++++++++++--------
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git 
a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java
 
b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java
index 40605e8..a6a73e8 100644
--- 
a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java
+++ 
b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java
@@ -37,13 +37,13 @@ import static 
org.apache.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID
 
 /**
  * add saga transaction id to dubbo invocation
-* @date 03/05/2018 10:44 AM
 */
 @Activate(group = {Constants.CONSUMER})
 public class SagaDubboConsumerFilter implements Filter {
     private static final Logger LOG = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws 
RpcException {
+        // TODO not sure if it's a good way to look up OmegaContext during 
every invoke
         OmegaContext omegaContext = (OmegaContext) (new 
SpringExtensionFactory()).getExtension(OmegaContext.class, "omegaContext");
         if(omegaContext != null){
             invocation.getAttachments().put(GLOBAL_TX_ID_KEY, 
omegaContext.globalTxId());
diff --git 
a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java
 
b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java
index a426880..32d253b 100644
--- 
a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java
+++ 
b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java
@@ -31,7 +31,6 @@ import static 
org.apache.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID
 
 /**
  * get saga transaction id from dubbo invocation and set into omega context
-* @date 03/05/2018 10:44 AM
 */
 @Activate(group = Constants.PROVIDER)
 public class SagaDubboProviderFilter implements Filter {
@@ -40,18 +39,21 @@ public class SagaDubboProviderFilter implements Filter {
 
     @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws 
RpcException {
+        // TODO not sure if it's a good way to look up OmegaContext during 
every invoke
         OmegaContext omegaContext = new 
SpringExtensionFactory().getExtension(OmegaContext.class, "omegaContext");
-        String globalTxId = invocation.getAttachment(GLOBAL_TX_ID_KEY);
-        if (globalTxId == null) {
+        if (omegaContext != null) {
+          String globalTxId = invocation.getAttachment(GLOBAL_TX_ID_KEY);
+          if (globalTxId == null) {
             LOG.info("no such omega context global id: {}", GLOBAL_TX_ID_KEY);
-        }else{
+          } else {
             omegaContext.setGlobalTxId(globalTxId);
             
omegaContext.setLocalTxId(invocation.getAttachment(LOCAL_TX_ID_KEY));
-            LOG.info("Added {} {} and {} {} to omegaContext", new 
Object[]{GLOBAL_TX_ID_KEY, omegaContext.globalTxId(),
-                    LOCAL_TX_ID_KEY, omegaContext.localTxId()});
+            LOG.info("Added {} {} and {} {} to omegaContext", new Object[] 
{GLOBAL_TX_ID_KEY, omegaContext.globalTxId(),
+                LOCAL_TX_ID_KEY, omegaContext.localTxId()});
+          }
+          invocation.getAttachments().put(GLOBAL_TX_ID_KEY, null);
+          invocation.getAttachments().put(LOCAL_TX_ID_KEY, null);
         }
-        invocation.getAttachments().put(GLOBAL_TX_ID_KEY,null);
-        invocation.getAttachments().put(LOCAL_TX_ID_KEY,null);
 
         if(invoker != null){
             return invoker.invoke(invocation);

-- 
To stop receiving notification emails like this one, please contact
ningji...@apache.org.

Reply via email to