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 2019/07/22 11:20:24 UTC

[servicecomb-pack] 04/05: SCB-1385 Polish the code with suggestion of Daniel Qian

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/servicecomb-pack.git

commit 04f051012354eff49c50f5d2f50b40a02fca58e5
Author: Willem Jiang <wi...@gmail.com>
AuthorDate: Mon Jul 22 09:05:00 2019 +0800

    SCB-1385 Polish the code with suggestion of Daniel Qian
---
 ...extWrapper.java => TransactionContextProperties.java} | 10 ++++++----
 .../pack/omega/transaction/TransactionAspect.java        |  7 ++++---
 .../pack/omega/transaction/TransactionAspectTest.java    | 16 +++++++++-------
 3 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/TransactionContextWrapper.java b/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/TransactionContextProperties.java
similarity index 77%
rename from omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/TransactionContextWrapper.java
rename to omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/TransactionContextProperties.java
index ccfe099..2266c68 100644
--- a/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/TransactionContextWrapper.java
+++ b/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/TransactionContextProperties.java
@@ -17,9 +17,11 @@
 package org.apache.servicecomb.pack.omega.context;
 
 /**
- * Once the user business class implement this TransactionContextWrapper, Omega could extract the TransactionContext instance
- * out of the business class, and set up the OmegaContext before calling sub transaction method.
+ * Once the user business class implement this TransactionContextWrapper, Omega could extract the GlobalTransactionId
+ * and LocalTransactionId out of the business class, and set up the OmegaContext before calling sub transaction method.
  */
-public interface TransactionContextWrapper {
-  TransactionContext getTransactionContext();
+public interface TransactionContextProperties {
+  String getGloableTxId();
+  String getLocalTxId();
+
 }
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspect.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspect.java
index e7b3425..81cc343 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspect.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspect.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Method;
 
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.context.TransactionContext;
-import org.apache.servicecomb.pack.omega.context.TransactionContextWrapper;
+import org.apache.servicecomb.pack.omega.context.TransactionContextProperties;
 import org.apache.servicecomb.pack.omega.transaction.annotations.Compensable;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
@@ -83,8 +83,9 @@ public class TransactionAspect {
         if (arg instanceof TransactionContext) {
           return (TransactionContext) arg;
         }
-        if (arg instanceof TransactionContextWrapper) {
-          return ((TransactionContextWrapper) arg).getTransactionContext();
+        if (arg instanceof TransactionContextProperties) {
+          TransactionContextProperties transactionContextProperties = (TransactionContextProperties) arg;
+          return new TransactionContext(transactionContextProperties.getGloableTxId(), transactionContextProperties.getLocalTxId());
         }
       }
     }
diff --git a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspectTest.java b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspectTest.java
index c39caf2..491d182 100644
--- a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspectTest.java
+++ b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/TransactionAspectTest.java
@@ -40,7 +40,7 @@ import org.apache.servicecomb.pack.common.EventType;
 import org.apache.servicecomb.pack.omega.context.IdGenerator;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.context.TransactionContext;
-import org.apache.servicecomb.pack.omega.context.TransactionContextWrapper;
+import org.apache.servicecomb.pack.omega.context.TransactionContextProperties;
 import org.apache.servicecomb.pack.omega.transaction.annotations.Compensable;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.reflect.MethodSignature;
@@ -95,7 +95,7 @@ public class TransactionAspectTest {
   private final TransactionAspect aspect = new TransactionAspect(sender, omegaContext);
 
   private final TransactionContext tx = mock(TransactionContext.class);
-  private final TransactionContextWrapper wrapper = mock(TransactionContextWrapper.class);
+  private final TransactionContextProperties transactionContextProperties = mock(TransactionContextProperties.class);
 
   @Before
   public void setUp() throws Exception {
@@ -110,7 +110,8 @@ public class TransactionAspectTest {
     omegaContext.setGlobalTxId(globalTxId);
     omegaContext.setLocalTxId(localTxId);
 
-    when(wrapper.getTransactionContext()).thenReturn(tx);
+    when(transactionContextProperties.getGloableTxId()).thenReturn(transactionGloablTxId);
+    when(transactionContextProperties.getLocalTxId()).thenReturn(transactionLocalTxId);
     when(tx.globalTxId()).thenReturn(transactionGloablTxId);
     when(tx.localTxId()).thenReturn(transactionLocalTxId);
   }
@@ -118,8 +119,9 @@ public class TransactionAspectTest {
   @Test
   public void testGetTransactionContextFromArgs() throws Throwable {
 
-    TransactionContext result = aspect.getTransactionContextFromArgs(new Object[]{wrapper});
-    assertThat(result, is(tx));
+    TransactionContext result = aspect.getTransactionContextFromArgs(new Object[]{transactionContextProperties});
+    assertThat(result.globalTxId(), is(transactionGloablTxId));
+    assertThat(result.localTxId(), is(transactionLocalTxId));
 
     result = aspect.getTransactionContextFromArgs(new Object[]{});
     assertNull(result);
@@ -131,14 +133,14 @@ public class TransactionAspectTest {
     assertThat(result, is(tx));
 
     TransactionContext otherTx = Mockito.mock(TransactionContext.class);
-    result = aspect.getTransactionContextFromArgs(new Object[]{otherTx, wrapper});
+    result = aspect.getTransactionContextFromArgs(new Object[]{otherTx, transactionContextProperties});
     assertThat(result, is(otherTx));
   }
 
   @Test
   public void setNewLocalTxIdCompensableWithTransactionContext() throws Throwable {
     // setup the argument class
-    when(joinPoint.getArgs()).thenReturn(new Object[]{wrapper});
+    when(joinPoint.getArgs()).thenReturn(new Object[]{transactionContextProperties});
     aspect.advise(joinPoint, compensable);
     TxEvent startedEvent = messages.get(0);