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:29 UTC

[incubator-servicecomb-saga] 03/07: SCB-876 Resolve test case error after refactor compensation Context.

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 0886a86a548c777d5b1f10917b1bea907a9df719
Author: cherrylzhao <zh...@126.com>
AuthorDate: Wed Aug 29 19:24:53 2018 +0800

    SCB-876 Resolve test case error after refactor compensation Context.
---
 .../spring/CompensableMethodCheckingCallback.java  |  2 +-
 .../transaction/spring/MethodCheckingCallback.java |  7 ++-
 .../spring/ParticipateMethodCheckingCallback.java  |  2 +-
 .../spring/TransactionInterceptionTest.java        | 57 +++++++++++++++++++++-
 4 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableMethodCheckingCallback.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableMethodCheckingCallback.java
index 540074c..18a6b32 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableMethodCheckingCallback.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableMethodCheckingCallback.java
@@ -25,7 +25,7 @@ import org.springframework.util.ReflectionUtils.MethodCallback;
 class CompensableMethodCheckingCallback extends MethodCheckingCallback implements MethodCallback {
 
   public CompensableMethodCheckingCallback(Object bean, CallbackContext callbackContext) {
-    super(bean, callbackContext);
+    super(bean, callbackContext, "compensation");
   }
 
   @Override
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 286ff2c..0dbcebe 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
@@ -33,9 +33,12 @@ public abstract class MethodCheckingCallback implements MethodCallback {
 
   private final CallbackContext callbackContext;
 
-  public MethodCheckingCallback(Object bean, CallbackContext callbackContext) {
+  private final String callbackType;
+
+  public MethodCheckingCallback(Object bean, CallbackContext callbackContext, String callbackType) {
     this.bean = bean;
     this.callbackContext = callbackContext;
+    this.callbackType = callbackType;
   }
 
   protected void loadMethodContext(Method method, String ... candidates) {
@@ -46,7 +49,7 @@ public abstract class MethodCheckingCallback implements MethodCallback {
         LOG.debug("Found callback method [{}] in {}", each, bean.getClass().getCanonicalName());
       } catch (NoSuchMethodException ex) {
         throw new OmegaException(
-            "No such callback method [" + each + "] found in " + bean.getClass().getCanonicalName(), ex);
+            "No such " + callbackType + " method [" + each + "] found in " + bean.getClass().getCanonicalName(), ex);
       }
     }
   }
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/ParticipateMethodCheckingCallback.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/ParticipateMethodCheckingCallback.java
index a96aad2..e8b4b77 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/ParticipateMethodCheckingCallback.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/ParticipateMethodCheckingCallback.java
@@ -25,7 +25,7 @@ import org.springframework.util.ReflectionUtils.MethodCallback;
 public class ParticipateMethodCheckingCallback extends MethodCheckingCallback implements MethodCallback {
 
   public ParticipateMethodCheckingCallback(Object bean, CallbackContext callbackContext) {
-    super(bean, callbackContext);
+    super(bean, callbackContext, "coordinate");
   }
 
   @Override
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
index 123dc1f..f340bfe 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
@@ -53,6 +53,11 @@ import org.apache.servicecomb.saga.omega.transaction.TxEvent;
 import org.apache.servicecomb.saga.omega.transaction.TxStartedEvent;
 import org.apache.servicecomb.saga.omega.transaction.spring.TransactionInterceptionTest.MessageConfig;
 import org.apache.servicecomb.saga.omega.transaction.spring.annotations.OmegaContextAware;
+import org.apache.servicecomb.saga.omega.transaction.tcc.TccEventService;
+import org.apache.servicecomb.saga.omega.transaction.tcc.events.CoordinatedEvent;
+import org.apache.servicecomb.saga.omega.transaction.tcc.events.ParticipatedEvent;
+import org.apache.servicecomb.saga.omega.transaction.tcc.events.TccEndedEvent;
+import org.apache.servicecomb.saga.omega.transaction.tcc.events.TccStartedEvent;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -407,8 +412,13 @@ public class TransactionInterceptionTest {
   static class MessageConfig {
     private final List<String> messages = new ArrayList<>();
 
-    @Bean
-    CallbackContext recoveryContext(OmegaContext omegaContext) {
+    @Bean(name = "compensationContext")
+    CallbackContext recoveryCompensationContext(OmegaContext omegaContext) {
+      return new CallbackContext(omegaContext);
+    }
+
+    @Bean(name = "coordinateContext")
+    CallbackContext recoveryCoordinateContext(OmegaContext omegaContext) {
       return new CallbackContext(omegaContext);
     }
 
@@ -452,5 +462,48 @@ public class TransactionInterceptionTest {
         }
       };
     }
+
+    @Bean
+    TccEventService tccEventService() {
+      return new TccEventService() {
+        @Override
+        public void onConnected() {
+        }
+
+        @Override
+        public void onDisconnected() {
+
+        }
+
+        @Override
+        public void close() {
+        }
+
+        @Override
+        public String target() {
+          return "UNKNOWN";
+        }
+
+        @Override
+        public AlphaResponse participate(ParticipatedEvent participateEvent) {
+          return null;
+        }
+
+        @Override
+        public AlphaResponse tccTransactionStart(TccStartedEvent tccStartEvent) {
+          return null;
+        }
+
+        @Override
+        public AlphaResponse tccTransactionStop(TccEndedEvent tccEndEvent) {
+          return null;
+        }
+
+        @Override
+        public AlphaResponse coordinate(CoordinatedEvent coordinatedEvent) {
+          return null;
+        }
+      };
+    }
   }
 }