You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/08/31 00:43:30 UTC

[incubator-servicecomb-saga] 04/07: SCB-876 Refactor CallbackContext class.

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 7009575c09a370d4ddf3fe4f44b0b2de4dfbb39b
Author: cherrylzhao <zh...@126.com>
AuthorDate: Wed Aug 29 19:40:38 2018 +0800

    SCB-876 Refactor CallbackContext class.
---
 .../saga/omega/context/CallbackContext.java        | 27 +++++++++++-----------
 .../transaction/spring/MethodCheckingCallback.java |  2 +-
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java b/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java
index f5dbf6d..4f803c2 100644
--- a/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java
+++ b/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java
@@ -22,39 +22,38 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class CallbackContext {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  private final Map<String, CompensationContextInternal> contexts = new ConcurrentHashMap<>();
+  private final Map<String, CallbackContextInternal> contexts = new ConcurrentHashMap<>();
   private final OmegaContext omegaContext;
 
   public CallbackContext(OmegaContext omegaContext) {
     this.omegaContext = omegaContext;
   }
 
-  public void addCompensationContext(Method compensationMethod, Object target) {
+  public void addCallbackContext(Method compensationMethod, Object target) {
     compensationMethod.setAccessible(true);
-    contexts.put(compensationMethod.toString(), new CompensationContextInternal(target, compensationMethod));
+    contexts.put(compensationMethod.toString(), new CallbackContextInternal(target, compensationMethod));
   }
 
-  public void apply(String globalTxId, String localTxId, String compensationMethod, Object... payloads) {
-    CompensationContextInternal contextInternal = contexts.get(compensationMethod);
+  public void apply(String globalTxId, String localTxId, String callbackMethod, Object... payloads) {
+    CallbackContextInternal contextInternal = contexts.get(callbackMethod);
 
     String oldGlobalTxId = omegaContext.globalTxId();
     String oldLocalTxId= omegaContext.localTxId();
     try {
       omegaContext.setGlobalTxId(globalTxId);
       omegaContext.setLocalTxId(localTxId);
-      contextInternal.compensationMethod.invoke(contextInternal.target, payloads);
-      LOG.info("Compensated transaction with global tx id [{}], local tx id [{}]", globalTxId, localTxId);
+      contextInternal.callbackMethod.invoke(contextInternal.target, payloads);
+      LOG.info("Callback transaction with global tx id [{}], local tx id [{}]", globalTxId, localTxId);
     } catch (IllegalAccessException | InvocationTargetException e) {
       LOG.error(
-          "Pre-checking for compensation method " + contextInternal.compensationMethod.toString()
-              + " was somehow skipped, did you forget to configure compensable method checking on service startup?",
+          "Pre-checking for callback method " + contextInternal.callbackMethod.toString()
+              + " was somehow skipped, did you forget to configure callback method checking on service startup?",
           e);
     } finally {
       omegaContext.setGlobalTxId(oldGlobalTxId);
@@ -62,14 +61,14 @@ public class CallbackContext {
     }
   }
 
-  private static final class CompensationContextInternal {
+  private static final class CallbackContextInternal {
     private final Object target;
 
-    private final Method compensationMethod;
+    private final Method callbackMethod;
 
-    private CompensationContextInternal(Object target, Method compensationMethod) {
+    private CallbackContextInternal(Object target, Method callbackMethod) {
       this.target = target;
-      this.compensationMethod = compensationMethod;
+      this.callbackMethod = callbackMethod;
     }
   }
 }
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java
index 0dbcebe..b5aa988 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java
@@ -45,7 +45,7 @@ public abstract class MethodCheckingCallback implements MethodCallback {
     for (String each : candidates) {
       try {
         Method signature = bean.getClass().getDeclaredMethod(each, method.getParameterTypes());
-        callbackContext.addCompensationContext(signature, bean);
+        callbackContext.addCallbackContext(signature, bean);
         LOG.debug("Found callback method [{}] in {}", each, bean.getClass().getCanonicalName());
       } catch (NoSuchMethodException ex) {
         throw new OmegaException(