[incubator-servicecomb-saga] 07/07: SCB-818 Omega supports of TCC (WIP)
This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch SCB-665 in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git commit 6a70e60d5280800b9a008074aa08e984d9d20256 Author: Willem Jiang AuthorDate: Tue Aug 21 10:25:13 2018 +0800 SCB-818 Omega supports of TCC (WIP) --- .../omega/transaction/tcc/TccEventService.java | 25 - .../transaction/tcc/TccParticipatorAspect.java | 14 ++-- .../tcc/TccStartAnnotationProcessor.java | 26 ++ .../saga/omega/transaction/tcc/TccStartAspect.java | 4 ++-- .../transaction/tcc/events/ParticipatedEvent.java | 10 ++--- .../transaction/tcc/events/TccEndedEvent.java | 4 ++-- .../transaction/tcc/events/TccStartedEvent.java| 4 ++-- 7 files changed, 61 insertions(+), 26 deletions(-) diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java index 1649620..ae011bc 100644 --- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java +++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java @@ -1,4 +1,27 @@ package org.apache.servicecomb.saga.omega.transaction.tcc; -public class TccService { +import org.apache.servicecomb.saga.omega.transaction.AlphaResponse; +import org.apache.servicecomb.saga.omega.transaction.TxEvent; +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; + +public interface TccEventService { + + void onConnected(); + + void onDisconnected(); + + void close(); + + String target(); + + AlphaResponse participate(ParticipatedEvent participateEvent); + + AlphaResponse TccTransactionStart(TccStartedEvent tccStartEvent); + + AlphaResponse TccTransactionStop(TccEndedEvent tccEndEvent); + + AlphaResponse send(TxEvent event); + } diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java index 02adac2..e64bc2a 100644 --- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java +++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java @@ -20,6 +20,7 @@ package org.apache.servicecomb.saga.omega.transaction.tcc; import java.lang.invoke.MethodHandles; import java.lang.reflect.Method; +import org.apache.servicecomb.saga.common.TransactionStatus; import org.apache.servicecomb.saga.omega.context.OmegaContext; import org.apache.servicecomb.saga.omega.transaction.MessageSender; import org.apache.servicecomb.saga.omega.transaction.OmegaException; @@ -27,6 +28,7 @@ import org.apache.servicecomb.saga.omega.transaction.RecoveryPolicy; import org.apache.servicecomb.saga.omega.transaction.RecoveryPolicyFactory; import org.apache.servicecomb.saga.omega.transaction.annotations.Compensable; import org.apache.servicecomb.saga.omega.transaction.annotations.Participate; +import org.apache.servicecomb.saga.omega.transaction.tcc.events.ParticipatedEvent; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -39,9 +41,11 @@ public class TccParticipatorAspect { private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private final OmegaContext context; + private final TccEventService tccEventService; - public TccParticipatorAspect(MessageSender sender, OmegaContext context) { + public TccParticipatorAspect(TccEventService tccEventService, OmegaContext context) { this.context = context; +this.tccEventService = tccEventService; } @Around("execution(@org.apache.servicecomb.saga.omega.transaction.annotations.Participate * *(..)) && @annotation(participate)") @@ -49,6 +53,7 @@ public class TccParticipatorAspect { Method method = ((MethodSignature) joinPoint.getSignature()).getMethod(); String localTxId = context.localTxId(); String cancelMethod = participate.cancelMethod(); +String confirmMethod = participate.confirmMethod(); context.newLocalTxId(); LOG.debug("Updated context {} for participate method {} ", context, method.toString()); @@ -56,13 +61,18 @@ public class TccParticipatorAspect { try { Object result = joinPoint.proceed(); // Send the participate message back + tccEventService.participate(new
[incubator-servicecomb-saga] 07/07: SCB-818 Omega supports of TCC (WIP)
This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch SCB-665 in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git commit 7718071b991f13b5ca293c7e7543ac2b9102a2a4 Author: Willem Jiang AuthorDate: Tue Aug 21 10:25:13 2018 +0800 SCB-818 Omega supports of TCC (WIP) --- .../omega/transaction/tcc/TccEventService.java | 25 - .../transaction/tcc/TccParticipatorAspect.java | 14 ++-- .../tcc/TccStartAnnotationProcessor.java | 26 ++ .../saga/omega/transaction/tcc/TccStartAspect.java | 4 ++-- .../transaction/tcc/events/ParticipatedEvent.java | 10 ++--- .../transaction/tcc/events/TccEndedEvent.java | 4 ++-- .../transaction/tcc/events/TccStartedEvent.java| 4 ++-- 7 files changed, 61 insertions(+), 26 deletions(-) diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java index 1649620..ae011bc 100644 --- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java +++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccEventService.java @@ -1,4 +1,27 @@ package org.apache.servicecomb.saga.omega.transaction.tcc; -public class TccService { +import org.apache.servicecomb.saga.omega.transaction.AlphaResponse; +import org.apache.servicecomb.saga.omega.transaction.TxEvent; +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; + +public interface TccEventService { + + void onConnected(); + + void onDisconnected(); + + void close(); + + String target(); + + AlphaResponse participate(ParticipatedEvent participateEvent); + + AlphaResponse TccTransactionStart(TccStartedEvent tccStartEvent); + + AlphaResponse TccTransactionStop(TccEndedEvent tccEndEvent); + + AlphaResponse send(TxEvent event); + } diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java index 02adac2..e64bc2a 100644 --- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java +++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/saga/omega/transaction/tcc/TccParticipatorAspect.java @@ -20,6 +20,7 @@ package org.apache.servicecomb.saga.omega.transaction.tcc; import java.lang.invoke.MethodHandles; import java.lang.reflect.Method; +import org.apache.servicecomb.saga.common.TransactionStatus; import org.apache.servicecomb.saga.omega.context.OmegaContext; import org.apache.servicecomb.saga.omega.transaction.MessageSender; import org.apache.servicecomb.saga.omega.transaction.OmegaException; @@ -27,6 +28,7 @@ import org.apache.servicecomb.saga.omega.transaction.RecoveryPolicy; import org.apache.servicecomb.saga.omega.transaction.RecoveryPolicyFactory; import org.apache.servicecomb.saga.omega.transaction.annotations.Compensable; import org.apache.servicecomb.saga.omega.transaction.annotations.Participate; +import org.apache.servicecomb.saga.omega.transaction.tcc.events.ParticipatedEvent; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -39,9 +41,11 @@ public class TccParticipatorAspect { private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private final OmegaContext context; + private final TccEventService tccEventService; - public TccParticipatorAspect(MessageSender sender, OmegaContext context) { + public TccParticipatorAspect(TccEventService tccEventService, OmegaContext context) { this.context = context; +this.tccEventService = tccEventService; } @Around("execution(@org.apache.servicecomb.saga.omega.transaction.annotations.Participate * *(..)) && @annotation(participate)") @@ -49,6 +53,7 @@ public class TccParticipatorAspect { Method method = ((MethodSignature) joinPoint.getSignature()).getMethod(); String localTxId = context.localTxId(); String cancelMethod = participate.cancelMethod(); +String confirmMethod = participate.confirmMethod(); context.newLocalTxId(); LOG.debug("Updated context {} for participate method {} ", context, method.toString()); @@ -56,13 +61,18 @@ public class TccParticipatorAspect { try { Object result = joinPoint.proceed(); // Send the participate message back + tccEventService.participate(new