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 04:49:27 UTC

[incubator-servicecomb-saga] branch master updated: SCB-876 Polish the code to fix some minor issues

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


The following commit(s) were added to refs/heads/master by this push:
     new bdf8efe  SCB-876 Polish the code to fix some minor issues
bdf8efe is described below

commit bdf8efe8155661582c32ca737d6f8122a6072680
Author: Willem Jiang <ji...@huawei.com>
AuthorDate: Fri Aug 31 11:06:48 2018 +0800

    SCB-876 Polish the code to fix some minor issues
---
 ...thodCheckingCallback.java => CallbackType.java} | 27 ++++++++--------------
 .../spring/CompensableMethodCheckingCallback.java  |  2 +-
 .../transaction/spring/MethodCheckingCallback.java |  4 ++--
 .../spring/ParticipateMethodCheckingCallback.java  |  2 +-
 .../spring/CompensableAnnotationCheckingTest.java  |  2 +-
 .../omega/transaction/spring/TccUserService.java   | 19 +++++++--------
 .../transaction/spring/TccUserServiceMain.java     |  4 ----
 7 files changed, 24 insertions(+), 36 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/CallbackType.java
similarity index 55%
copy from omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableMethodCheckingCallback.java
copy to omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CallbackType.java
index e9bbd42..70d9c82 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/CallbackType.java
@@ -17,22 +17,13 @@
 
 package org.apache.servicecomb.saga.omega.transaction.spring;
 
-import java.lang.reflect.Method;
-import org.apache.servicecomb.saga.omega.context.CallbackContext;
-import org.apache.servicecomb.saga.omega.transaction.annotations.Compensable;
-
-class CompensableMethodCheckingCallback extends MethodCheckingCallback {
-
-  public CompensableMethodCheckingCallback(Object bean, CallbackContext callbackContext) {
-    super(bean, callbackContext, "compensation");
-  }
-
-  @Override
-  public void doWith(Method method) throws IllegalArgumentException {
-    if (!method.isAnnotationPresent(Compensable.class)) {
-      return;
-    }
-    String compensationMethod = method.getAnnotation(Compensable.class).compensationMethod();
-    loadMethodContext(method, compensationMethod);
-  }
+public enum CallbackType {
+  /**
+   * Compensation is for the Saga pattern
+   */
+  Compensation,
+  /**
+   * Coordination is for the TCC pattern
+   */
+  Coordination
 }
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 e9bbd42..e3f4907 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
@@ -24,7 +24,7 @@ import org.apache.servicecomb.saga.omega.transaction.annotations.Compensable;
 class CompensableMethodCheckingCallback extends MethodCheckingCallback {
 
   public CompensableMethodCheckingCallback(Object bean, CallbackContext callbackContext) {
-    super(bean, callbackContext, "compensation");
+    super(bean, callbackContext, CallbackType.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 b5aa988..8a2ac13 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,9 @@ public abstract class MethodCheckingCallback implements MethodCallback {
 
   private final CallbackContext callbackContext;
 
-  private final String callbackType;
+  private final CallbackType callbackType;
 
-  public MethodCheckingCallback(Object bean, CallbackContext callbackContext, String callbackType) {
+  public MethodCheckingCallback(Object bean, CallbackContext callbackContext, CallbackType callbackType) {
     this.bean = bean;
     this.callbackContext = callbackContext;
     this.callbackType = callbackType;
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 b704f89..98a2cec 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
@@ -24,7 +24,7 @@ import org.apache.servicecomb.saga.omega.transaction.annotations.Participate;
 public class ParticipateMethodCheckingCallback extends MethodCheckingCallback {
 
   public ParticipateMethodCheckingCallback(Object bean, CallbackContext callbackContext) {
-    super(bean, callbackContext, "coordinate");
+    super(bean, callbackContext, CallbackType.Compensation);
   }
 
   @Override
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationCheckingTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationCheckingTest.java
index d2abfc9..0bf6dce 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationCheckingTest.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationCheckingTest.java
@@ -37,7 +37,7 @@ public class CompensableAnnotationCheckingTest {
         expectFailing(BeanCreationException.class);
       }
     } catch (BeanCreationException e) {
-      assertThat(e.getCause().getMessage(), startsWith("No such compensation method [none]"));
+      assertThat(e.getCause().getMessage(), startsWith("No such Compensation method [none]"));
     }
   }
 
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserService.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserService.java
index eefe749..8223a87 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserService.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserService.java
@@ -17,9 +17,13 @@
 
 package org.apache.servicecomb.saga.omega.transaction.spring;
 
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.servicecomb.saga.omega.context.OmegaContext;
 import org.apache.servicecomb.saga.omega.transaction.annotations.Participate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -29,19 +33,14 @@ class TccUserService {
   static final String ILLEGAL_USER = "Illegal User";
   private final UserRepository userRepository;
 
-  private int count = 0;
-
   @Autowired
   TccUserService(UserRepository userRepository) {
     this.userRepository = userRepository;
   }
 
-  void resetCount() {
-    this.count = 0;
-  }
-
   @Participate(confirmMethod = "confirm", cancelMethod = "cancel")
   User add(User user) {
+    // Only for the validation check
     if (ILLEGAL_USER.equals(user.username())) {
       throw new IllegalArgumentException("User is illegal");
     }
@@ -49,7 +48,9 @@ class TccUserService {
   }
 
   void confirm(User user) {
-    userRepository.findByUsername(user.username());
+    User result = userRepository.findByUsername(user.username());
+    // Just make sure we can get the resource and keep doing other business
+    assertThat(result, is(user));
   }
 
   void cancel(User user) {
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserServiceMain.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserServiceMain.java
index 94e5232..4d09dec 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserServiceMain.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TccUserServiceMain.java
@@ -27,10 +27,6 @@ public class TccUserServiceMain {
   @Autowired
   private TccUserService tccUserService;
 
-  void resetCount() {
-    tccUserService.resetCount();
-  }
-
   @TccStart
   void add(User A, User B) {
     tccUserService.add(A);