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);