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(