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/12/10 02:33:33 UTC

[servicecomb-pack] branch master updated (f059f96 -> a8b2410)

This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git.


    from f059f96  revert RecoveryPolicyTimeoutWrapper
     new 9202a35  SCB-1627 Moved CallbackContext from omega-context to omega-transaction
     new ad39aa7  SCB-1627 Define compensation success and failure event type
     new ca52f12  SCB-1627 CallbackContext send the compensation result event to Alpha
     new 7c97b0a  SCB-1627 Update test cases for compensation result events
     new e4da4ad  SCB-1627 Alpha waits for Omega compensation response
     new bb52a98  SCB-1627 Rename CompensateAskFailedException to CompensateAckFailedException
     new 21403ab  SCB-1627 Rename CompensateAskType to CompensateAckType
     new bbc54eb  SCB-1627 Rename CompensateAskWait to CompensateAckCountDownLatch
     new c3c3789  SCB-1627 Revert "Update test cases for compensation result events"
     new bda9b4d  SCB-1627 Package Alpha's metadata with AlphaMetas
     new b44e17d  SCB-1627 Send compensation ack event only when Alpha with Akka Actor
     new c29fecc  SCB-1627 Compensation in the reverse order
     new a8b2410  SCB-1627 Method name ask rename to getAck

The 13 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../alpha_records_transaction_events.feature       | 18 +++----
 .../pack_post_car_exception_scenario.feature       |  2 +-
 .../pack_post_car_exception_scenario.feature       |  2 +-
 .../pack_post_car_exception_scenario.feature       |  2 +-
 .../pack/alpha/core/CompositeOmegaCallback.java    |  7 +++
 .../servicecomb/pack/alpha/core/OmegaCallback.java |  9 ++++
 .../CompensateAckFailedException.java}             |  8 ++--
 .../CompensateConnectException.java}               |  8 ++--
 ...TransactionType.java => CompensateAckType.java} |  6 +--
 ...ensatedEvent.java => TxCompensateAckEvent.java} | 25 ++++++++--
 .../servicecomb/pack/alpha/fsm/SagaActor.java      |  2 +-
 .../servicecomb/pack/alpha/fsm/model/SagaData.java | 11 ++---
 .../server/fsm/CompensateAckCountDownLatch.java}   | 29 +++++-------
 .../pack/alpha/server/fsm/GrpcOmegaCallback.java   | 55 ++++++++++++++++++----
 .../alpha/server/fsm/GrpcSagaEventService.java     | 24 ++++++++++
 .../alpha/server/fsm/AlphaIntegrationFsmTest.java  | 26 +++++++++-
 .../alpha/server/fsm/OmegaEventSagaSimulator.java  | 11 +++++
 .../pack/alpha/server/fsm/OmegaEventSender.java    |  4 ++
 .../servicecomb/pack/integration/tests/PackIT.java |  8 ++--
 .../pack/omega/context/AlphaMetas.java}            | 46 +++++++++++-------
 .../pack/omega/context/OmegaContext.java           | 14 +++---
 .../pack/omega/spring/OmegaSpringConfig.java       | 13 ++---
 .../spring/CompensableAnnotationProcessor.java     |  2 +-
 .../spring/CompensableMethodCheckingCallback.java  |  2 +-
 .../transaction/spring/MethodCheckingCallback.java |  2 +-
 .../spring/ParticipateAnnotationProcessor.java     |  2 +-
 .../spring/ParticipateMethodCheckingCallback.java  |  2 +-
 .../spring/TransactionAspectConfig.java            |  2 +-
 .../omega/transaction/spring/MessageConfig.java    | 10 ++--
 .../transaction/spring/TccInterceptorTest.java     |  2 +
 .../spring/TransactionInterceptionTest.java        |  1 +
 .../pack/omega/transaction}/CallbackContext.java   | 17 ++++++-
 .../transaction/CompensationMessageHandler.java    |  2 -
 .../transaction/SagaStartAnnotationProcessor.java  |  2 +-
 .../pack/omega/transaction/SagaStartAspect.java    |  2 +-
 ...dEvent.java => TxCompensateAckFailedEvent.java} |  8 ++--
 ...Event.java => TxCompensateAckSucceedEvent.java} |  8 ++--
 .../transaction/tcc/CoordinateMessageHandler.java  |  2 +-
 .../CompensationMessageHandlerTest.java            |  1 -
 .../omega/transaction/SagaStartAspectTest.java     |  3 +-
 .../tcc/CoordinateMessageHandlerTest.java          |  2 +-
 .../servicecomb/pack/common/AlphaMetaKeys.java     |  2 +-
 .../apache/servicecomb/pack/common/EventType.java  |  4 +-
 43 files changed, 282 insertions(+), 126 deletions(-)
 copy alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/{AlphaException.java => exception/CompensateAckFailedException.java} (81%)
 copy alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/{AlphaException.java => exception/CompensateConnectException.java} (82%)
 copy alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/{TransactionType.java => CompensateAckType.java} (93%)
 copy alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/event/{TxCompensatedEvent.java => TxCompensateAckEvent.java} (79%)
 copy alpha/{alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/metrics/AlphaMetrics.java => alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAckCountDownLatch.java} (62%)
 copy omega/{omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/tcc/events/TccStartedEvent.java => omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/AlphaMetas.java} (55%)
 rename omega/{omega-context/src/main/java/org/apache/servicecomb/pack/omega/context => omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction}/CallbackContext.java (79%)
 copy omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/{SagaEndedEvent.java => TxCompensateAckFailedEvent.java} (78%)
 copy omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/{TxEndedEvent.java => TxCompensateAckSucceedEvent.java} (78%)


[servicecomb-pack] 03/13: SCB-1627 CallbackContext send the compensation result event to Alpha

Posted by ni...@apache.org.
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 ca52f12cff38375ec18b0fd573ea02472bce3085
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Sat Nov 30 18:32:18 2019 +0800

    SCB-1627 CallbackContext send the compensation result event to Alpha
---
 .../apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java   | 8 ++++----
 .../servicecomb/pack/omega/transaction/spring/MessageConfig.java  | 8 ++++----
 .../servicecomb/pack/omega/transaction/CallbackContext.java       | 6 +++++-
 .../main/java/org/apache/servicecomb/pack/common/EventType.java   | 4 +++-
 4 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
index e1c2ad5..1fd3648 100644
--- a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
+++ b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
@@ -72,13 +72,13 @@ class OmegaSpringConfig {
   }
 
   @Bean(name = {"compensationContext"})
-  CallbackContext compensationContext(OmegaContext omegaContext) {
-    return new CallbackContext(omegaContext);
+  CallbackContext compensationContext(OmegaContext omegaContext, SagaMessageSender sender) {
+    return new CallbackContext(omegaContext, sender);
   }
 
   @Bean(name = {"coordinateContext"})
-  CallbackContext coordinateContext(OmegaContext omegaContext) {
-    return new CallbackContext(omegaContext);
+  CallbackContext coordinateContext(OmegaContext omegaContext, SagaMessageSender sender) {
+    return new CallbackContext(omegaContext, sender);
   }
 
   @Bean
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java
index 6fd2d91..240b441 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java
@@ -44,13 +44,13 @@ public class MessageConfig {
   }
 
   @Bean(name = "compensationContext")
-  CallbackContext recoveryCompensationContext(OmegaContext omegaContext) {
-    return new CallbackContext(omegaContext);
+  CallbackContext recoveryCompensationContext(OmegaContext omegaContext, SagaMessageSender sender) {
+    return new CallbackContext(omegaContext, sender);
   }
 
   @Bean(name = "coordinateContext")
-  CallbackContext coordinateContext(OmegaContext omegaContext) {
-    return new CallbackContext(omegaContext);
+  CallbackContext coordinateContext(OmegaContext omegaContext, SagaMessageSender sender) {
+    return new CallbackContext(omegaContext, sender);
   }
 
   @Bean
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
index c483480..c069ac9 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
@@ -31,9 +31,11 @@ public class CallbackContext {
 
   private final Map<String, CallbackContextInternal> contexts = new ConcurrentHashMap<>();
   private final OmegaContext omegaContext;
+  private final SagaMessageSender sender;
 
-  public CallbackContext(OmegaContext omegaContext) {
+  public CallbackContext(OmegaContext omegaContext, SagaMessageSender sender) {
     this.omegaContext = omegaContext;
+    this.sender = sender;
   }
 
   public void addCallbackContext(String key, Method compensationMethod, Object target) {
@@ -50,7 +52,9 @@ public class CallbackContext {
       omegaContext.setLocalTxId(localTxId);
       contextInternal.callbackMethod.invoke(contextInternal.target, payloads);
       LOG.info("Callback transaction with global tx id [{}], local tx id [{}]", globalTxId, localTxId);
+      sender.send(new TxCompensateAckSucceedEvent(omegaContext.globalTxId(),omegaContext.localTxId(),omegaContext.globalTxId()));
     } catch (IllegalAccessException | InvocationTargetException e) {
+      sender.send(new TxCompensateAckFailedEvent(omegaContext.globalTxId(),omegaContext.localTxId(),omegaContext.globalTxId()));
       LOG.error(
           "Pre-checking for callback method " + contextInternal.callbackMethod.toString()
               + " was somehow skipped, did you forget to configure callback method checking on service startup?",
diff --git a/pack-common/src/main/java/org/apache/servicecomb/pack/common/EventType.java b/pack-common/src/main/java/org/apache/servicecomb/pack/common/EventType.java
index e8c88a8..e585d0c 100644
--- a/pack-common/src/main/java/org/apache/servicecomb/pack/common/EventType.java
+++ b/pack-common/src/main/java/org/apache/servicecomb/pack/common/EventType.java
@@ -26,5 +26,7 @@ public enum EventType {
   SagaEndedEvent,
   SagaAbortedEvent,
   SagaTimeoutEvent,
-  TxCompensateEvent
+  TxCompensateEvent,
+  TxCompensateAckFailedEvent,
+  TxCompensateAckSucceedEvent
 }


[servicecomb-pack] 05/13: SCB-1627 Alpha waits for Omega compensation response

Posted by ni...@apache.org.
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 e4da4adaa4f31e5ceee6e958768ad83f9c9adf99
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Sat Nov 30 23:55:53 2019 +0800

    SCB-1627 Alpha waits for Omega compensation response
---
 .../pack/alpha/core/CompositeOmegaCallback.java    |  7 ++
 .../servicecomb/pack/alpha/core/OmegaCallback.java |  9 +++
 .../CompensateAskFailedException.java}             | 11 ++-
 .../CompensateConnectException.java}               | 11 ++-
 .../CompensateAskType.java}                        | 11 +--
 .../alpha/core/fsm/event/TxCompensateAckEvent.java | 86 ++++++++++++++++++++++
 .../pack/alpha/server/fsm/CompensateAskWait.java}  | 23 ++++--
 .../pack/alpha/server/fsm/GrpcOmegaCallback.java   | 55 ++++++++++++--
 .../alpha/server/fsm/GrpcSagaEventService.java     | 24 ++++++
 .../alpha/server/fsm/AlphaIntegrationFsmTest.java  | 26 ++++++-
 .../alpha/server/fsm/OmegaEventSagaSimulator.java  | 11 +++
 .../pack/alpha/server/fsm/OmegaEventSender.java    |  4 +
 12 files changed, 244 insertions(+), 34 deletions(-)

diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java
index 283744c..95b0df6 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java
@@ -24,6 +24,8 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Map;
 
+import org.apache.servicecomb.pack.alpha.core.exception.CompensateAskFailedException;
+import org.apache.servicecomb.pack.alpha.core.exception.CompensateConnectException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,6 +56,11 @@ public class CompositeOmegaCallback implements OmegaCallback {
 
     try {
       omegaCallback.compensate(event);
+    } catch (CompensateConnectException e) {
+      serviceCallbacks.values().remove(omegaCallback);
+      throw e;
+    } catch (CompensateAskFailedException e) {
+      throw e;
     } catch (Exception e) {
       serviceCallbacks.values().remove(omegaCallback);
       throw e;
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
index aab7faa..a8391ae 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
@@ -17,9 +17,18 @@
 
 package org.apache.servicecomb.pack.alpha.core;
 
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
+
 public interface OmegaCallback {
   void compensate(TxEvent event);
 
   default void disconnect() {
   }
+
+  default void ask(CompensateAskType type) {
+  }
+
+  default boolean isWaiting() {
+    return false;
+  }
 }
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAskFailedException.java
similarity index 80%
copy from alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
copy to alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAskFailedException.java
index aab7faa..4adbe2b 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAskFailedException.java
@@ -15,11 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.pack.alpha.core;
+package org.apache.servicecomb.pack.alpha.core.exception;
 
-public interface OmegaCallback {
-  void compensate(TxEvent event);
-
-  default void disconnect() {
+public class CompensateAskFailedException extends RuntimeException {
+  public CompensateAskFailedException(String cause) {
+    super(cause);
   }
-}
+}
\ No newline at end of file
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateConnectException.java
similarity index 80%
copy from alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
copy to alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateConnectException.java
index aab7faa..57ee4f0 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateConnectException.java
@@ -15,11 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.pack.alpha.core;
+package org.apache.servicecomb.pack.alpha.core.exception;
 
-public interface OmegaCallback {
-  void compensate(TxEvent event);
-
-  default void disconnect() {
+public class CompensateConnectException extends RuntimeException {
+  public CompensateConnectException(String cause) {
+    super(cause);
   }
-}
+}
\ No newline at end of file
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAskType.java
similarity index 84%
copy from alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
copy to alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAskType.java
index aab7faa..10ff79d 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAskType.java
@@ -15,11 +15,8 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.pack.alpha.core;
+package org.apache.servicecomb.pack.alpha.core.fsm;
 
-public interface OmegaCallback {
-  void compensate(TxEvent event);
-
-  default void disconnect() {
-  }
-}
+public enum CompensateAskType {
+  Failed,Succeed,Disconnected
+}
\ No newline at end of file
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/event/TxCompensateAckEvent.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/event/TxCompensateAckEvent.java
new file mode 100644
index 0000000..1fae858
--- /dev/null
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/event/TxCompensateAckEvent.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.alpha.core.fsm.event;
+
+import java.util.Date;
+import org.apache.servicecomb.pack.alpha.core.fsm.event.base.TxEvent;
+
+public class TxCompensateAckEvent extends TxEvent {
+
+  private boolean succeed;
+
+  public boolean isSucceed() {
+    return succeed;
+  }
+
+  public void setSucceed(boolean succeed) {
+    this.succeed = succeed;
+  }
+
+  public static Builder builder() {
+    return new Builder();
+  }
+
+  public static final class Builder {
+
+    private TxCompensateAckEvent txCompensatedEvent;
+
+    private Builder() {
+      txCompensatedEvent = new TxCompensateAckEvent();
+    }
+
+    public Builder serviceName(String serviceName) {
+      txCompensatedEvent.setServiceName(serviceName);
+      return this;
+    }
+
+    public Builder instanceId(String instanceId) {
+      txCompensatedEvent.setInstanceId(instanceId);
+      return this;
+    }
+
+    public Builder parentTxId(String parentTxId) {
+      txCompensatedEvent.setParentTxId(parentTxId);
+      return this;
+    }
+
+    public Builder localTxId(String localTxId) {
+      txCompensatedEvent.setLocalTxId(localTxId);
+      return this;
+    }
+
+    public Builder globalTxId(String globalTxId) {
+      txCompensatedEvent.setGlobalTxId(globalTxId);
+      return this;
+    }
+
+    public Builder createTime(Date createTime){
+      txCompensatedEvent.setCreateTime(createTime);
+      return this;
+    }
+
+    public Builder succeed(boolean succeed){
+      txCompensatedEvent.setSucceed(succeed);
+      return this;
+    }
+
+    public TxCompensateAckEvent build() {
+      return txCompensatedEvent;
+    }
+  }
+}
\ No newline at end of file
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
similarity index 62%
copy from alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
copy to alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
index aab7faa..e5d918c 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
@@ -15,11 +15,24 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.pack.alpha.core;
+package org.apache.servicecomb.pack.alpha.server.fsm;
 
-public interface OmegaCallback {
-  void compensate(TxEvent event);
+import java.util.concurrent.CountDownLatch;
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
 
-  default void disconnect() {
+public class CompensateAskWait extends CountDownLatch {
+  private CompensateAskType type;
+
+  public CompensateAskWait(int count) {
+    super(count);
+  }
+
+  public CompensateAskType getType() {
+    return type;
+  }
+
+  public void countDown(CompensateAskType type) {
+    this.type = type;
+    super.countDown();
   }
-}
+}
\ No newline at end of file
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
index f5299da..3187892 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
@@ -19,13 +19,21 @@ package org.apache.servicecomb.pack.alpha.server.fsm;
 
 import com.google.protobuf.ByteString;
 import io.grpc.stub.StreamObserver;
+import java.lang.invoke.MethodHandles;
 import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
 import org.apache.servicecomb.pack.alpha.core.TxEvent;
+import org.apache.servicecomb.pack.alpha.core.exception.CompensateAskFailedException;
+import org.apache.servicecomb.pack.alpha.core.exception.CompensateConnectException;
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
 import org.apache.servicecomb.pack.contract.grpc.GrpcCompensateCommand;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 class GrpcOmegaCallback implements OmegaCallback {
 
+  private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   private final StreamObserver<GrpcCompensateCommand> observer;
+  private CompensateAskWait compensateAskWait;
 
   GrpcOmegaCallback(StreamObserver<GrpcCompensateCommand> observer) {
     this.observer = observer;
@@ -33,18 +41,49 @@ class GrpcOmegaCallback implements OmegaCallback {
 
   @Override
   public void compensate(TxEvent event) {
-    GrpcCompensateCommand command = GrpcCompensateCommand.newBuilder()
-        .setGlobalTxId(event.globalTxId())
-        .setLocalTxId(event.localTxId())
-        .setParentTxId(event.parentTxId() == null ? "" : event.parentTxId())
-        .setCompensationMethod(event.compensationMethod())
-        .setPayloads(ByteString.copyFrom(event.payloads()))
-        .build();
-    observer.onNext(command);
+    compensateAskWait = new CompensateAskWait(1);
+    try {
+      GrpcCompensateCommand command = GrpcCompensateCommand.newBuilder()
+          .setGlobalTxId(event.globalTxId())
+          .setLocalTxId(event.localTxId())
+          .setParentTxId(event.parentTxId() == null ? "" : event.parentTxId())
+          .setCompensationMethod(event.compensationMethod())
+          .setPayloads(ByteString.copyFrom(event.payloads()))
+          .build();
+      observer.onNext(command);
+      compensateAskWait.await();
+      if (compensateAskWait.getType() == CompensateAskType.Disconnected) {
+        throw new CompensateConnectException("Omega connect exception");
+      }else{
+        LOG.info("compensate ask "+compensateAskWait.getType().name());
+        if(compensateAskWait.getType() == CompensateAskType.Failed){
+          throw new CompensateAskFailedException("An exception is thrown inside the compensation method");
+        }
+      }
+    } catch (InterruptedException e) {
+      throw new RuntimeException(e);
+    } finally {
+      compensateAskWait = null;
+    }
   }
 
   @Override
   public void disconnect() {
     observer.onCompleted();
+    if (compensateAskWait != null) {
+      compensateAskWait.countDown(CompensateAskType.Disconnected);
+    }
+  }
+
+  @Override
+  public void ask(CompensateAskType type) {
+    if (compensateAskWait != null) {
+      compensateAskWait.countDown(type);
+    }
+  }
+
+  @Override
+  public boolean isWaiting(){
+    return compensateAskWait == null ? false : true;
   }
 }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
index 540a8d0..60fbdfb 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
@@ -25,6 +25,8 @@ import java.util.Date;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
+import org.apache.servicecomb.pack.alpha.core.fsm.event.TxCompensateAckEvent;
 import org.apache.servicecomb.pack.alpha.core.fsm.event.base.BaseEvent;
 import org.apache.servicecomb.pack.alpha.core.fsm.channel.ActorEventChannel;
 import org.apache.servicecomb.pack.common.EventType;
@@ -162,6 +164,28 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
           .parentTxId(message.getParentTxId())
           .createTime(new Date())
           .localTxId(message.getLocalTxId()).build();
+    } else if (message.getType().equals(EventType.TxCompensateAckSucceedEvent.name())) {
+      event = TxCompensateAckEvent.builder()
+          .succeed(true)
+          .serviceName(message.getServiceName())
+          .instanceId(message.getInstanceId())
+          .globalTxId(message.getGlobalTxId())
+          .parentTxId(message.getParentTxId())
+          .createTime(new Date())
+          .localTxId(message.getLocalTxId()).build();
+      omegaCallbacks.get(message.getServiceName()).get(message.getInstanceId())
+          .ask(CompensateAskType.Succeed);
+    } else if (message.getType().equals(EventType.TxCompensateAckFailedEvent.name())) {
+      event = TxCompensateAckEvent.builder()
+          .succeed(false)
+          .serviceName(message.getServiceName())
+          .instanceId(message.getInstanceId())
+          .globalTxId(message.getGlobalTxId())
+          .parentTxId(message.getParentTxId())
+          .createTime(new Date())
+          .localTxId(message.getLocalTxId()).build();
+      omegaCallbacks.get(message.getServiceName()).get(message.getInstanceId())
+          .ask(CompensateAskType.Failed);
     } else {
       ok = false;
     }
diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
index 15fedc3..eda9f0b 100644
--- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
+++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue;
 
 import akka.actor.ActorSystem;
 import io.grpc.netty.NettyChannelBuilder;
+import java.util.Arrays;
 import java.util.Map;
 import java.util.UUID;
 import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
@@ -167,6 +168,7 @@ public class AlphaIntegrationFsmTest {
     omegaEventSender.getOmegaEventSagaSimulator().middleTxAbortedEvents(globalTxId, localTxId_1, localTxId_2).stream().forEach( event -> {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_1);
     await().atMost(2, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -191,6 +193,7 @@ public class AlphaIntegrationFsmTest {
     omegaEventSender.getOmegaEventSagaSimulator().lastTxAbortedEvents(globalTxId, localTxId_1, localTxId_2, localTxId_3).stream().forEach( event -> {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_1, localTxId_2);
     await().atMost(2, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -217,6 +220,7 @@ public class AlphaIntegrationFsmTest {
     omegaEventSender.getOmegaEventSagaSimulator().receivedRemainingEventAfterFirstTxAbortedEvents(globalTxId, localTxId_1, localTxId_2, localTxId_3).stream().forEach( event -> {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_2, localTxId_3);
     await().atMost(5, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -249,6 +253,7 @@ public class AlphaIntegrationFsmTest {
       }
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_2, localTxId_3);
     await().atMost(5, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -274,6 +279,7 @@ public class AlphaIntegrationFsmTest {
     omegaEventSender.getOmegaEventSagaSimulator().sagaAbortedEventAfterAllTxEndedsEvents(globalTxId, localTxId_1, localTxId_2, localTxId_3).stream().forEach( event -> {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_1, localTxId_2, localTxId_3);
     await().atMost(20, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -396,6 +402,7 @@ public class AlphaIntegrationFsmTest {
     omegaEventSender.getOmegaEventSagaSimulator().lastTxAbortedEventWithTxConcurrentEvents(globalTxId, localTxId_1, localTxId_2, localTxId_3).stream().forEach( event -> {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_1, localTxId_2);
     await().atMost(2, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -420,6 +427,7 @@ public class AlphaIntegrationFsmTest {
     omegaEventSender.getOmegaEventSagaSimulator().duplicateTxOnFailureEvents(globalTxId, localTxId_1, localTxId_2, localTxId_3).stream().forEach( event -> {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_1, localTxId_2);
     await().atMost(2, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -454,12 +462,12 @@ public class AlphaIntegrationFsmTest {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
     //simulate omega connected
-    await().atMost(2, SECONDS).until(() -> {
+    await().atMost(5, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.getTxEntityMap().size()==3;
     });
     omegaEventSender.getOmegaCallbacks().put(serviceName[0], omegaInstance[0]);
-
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_1, localTxId_2);
     await().atMost(2, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -486,6 +494,7 @@ public class AlphaIntegrationFsmTest {
     omegaEventSender.getOmegaEventSagaSimulator().lastTxAbortedEvents(globalTxId, localTxId_1, localTxId_2, localTxId_3).stream().forEach( event -> {
       omegaEventSender.getBlockingStub().onTxEvent(event);
     });
+    waitAlphaCallCompensate(omegaEventSender, globalTxId, localTxId_1, localTxId_2);
     await().atMost(2, SECONDS).until(() -> {
       SagaData sagaData = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
       return sagaData !=null && sagaData.isTerminated() && sagaData.getLastState()==SagaActorState.COMPENSATED;
@@ -501,4 +510,17 @@ public class AlphaIntegrationFsmTest {
     assertEquals(sagaData.getTxEntityMap().get(localTxId_3).getState(),TxState.FAILED);
     assertArrayEquals(sagaData.getTxEntityMap().get(localTxId_3).getThrowablePayLoads(),NullPointerException.class.getName().getBytes());
   }
+
+  /**
+   * Send compensation result event after Alpha calls compensation method
+   * */
+  private void waitAlphaCallCompensate(OmegaEventSender omegaEventSender,String globalTxId, String...localTxIds){
+    OmegaCallback omegaCallback = omegaCallbacks.get(omegaEventSender.getServiceConfig().getServiceName())
+        .get(omegaEventSender.getServiceConfig().getInstanceId());
+    Arrays.asList(localTxIds).stream().forEach( localTxId_X -> {
+      await().atMost(2, SECONDS)
+          .until(() -> omegaCallback.isWaiting());
+      omegaEventSender.getBlockingStub().onTxEvent(omegaEventSender.getOmegaEventSagaSimulator().getTxCompensateAckSucceedEvent(globalTxId,localTxId_X));
+    });
+  }
 }
diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSagaSimulator.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSagaSimulator.java
index 433f54a..ae6717a 100644
--- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSagaSimulator.java
+++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSagaSimulator.java
@@ -178,6 +178,10 @@ public class OmegaEventSagaSimulator {
     return sagaEvents;
   }
 
+  public GrpcTxEvent getTxCompensateAckSucceedEvent(String globalTxId, String localTxId){
+    return txCompensateAckSucceedEvent(globalTxId, localTxId, globalTxId);
+  }
+
   private GrpcTxEvent sagaStartedEvent(String globalTxId) {
     return eventOf(EventType.SagaStartedEvent, globalTxId, globalTxId,
         null, new byte[0], "", 0, "",
@@ -236,6 +240,13 @@ public class OmegaEventSagaSimulator {
         0);
   }
 
+  public GrpcTxEvent txCompensateAckSucceedEvent(String globalTxId,
+      String localTxId, String parentTxId) {
+    return eventOf(EventType.TxCompensateAckSucceedEvent, globalTxId, localTxId,
+        parentTxId, new byte[0], "", 0, "",
+        0);
+  }
+
   private GrpcTxEvent eventOf(EventType eventType,
       String globalTxId,
       String localTxId,
diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSender.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSender.java
index 90bea6a..da3e6e7 100644
--- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSender.java
+++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSender.java
@@ -94,6 +94,10 @@ public class OmegaEventSender {
     return omegaCallbacks;
   }
 
+  public GrpcServiceConfig getServiceConfig() {
+    return serviceConfig;
+  }
+
   public void reset(){
     receivedCommands.clear();
   }


[servicecomb-pack] 10/13: SCB-1627 Package Alpha's metadata with AlphaMetas

Posted by ni...@apache.org.
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 bda9b4d627f537725091049ea794bd29393cc3f6
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Wed Dec 4 11:06:42 2019 +0800

    SCB-1627 Package Alpha's metadata with AlphaMetas
---
 .../servicecomb/pack/omega/context/AlphaMetas.java | 38 ++++++++++++++++++++--
 .../pack/omega/context/OmegaContext.java           | 14 ++++----
 .../pack/omega/spring/OmegaSpringConfig.java       |  3 +-
 .../transaction/SagaStartAnnotationProcessor.java  |  2 +-
 .../pack/omega/transaction/SagaStartAspect.java    |  2 +-
 .../omega/transaction/SagaStartAspectTest.java     |  3 +-
 .../servicecomb/pack/common/AlphaMetaKeys.java     |  2 +-
 7 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/pack-common/src/main/java/org/apache/servicecomb/pack/common/AlphaMetaKeys.java b/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/AlphaMetas.java
similarity index 50%
copy from pack-common/src/main/java/org/apache/servicecomb/pack/common/AlphaMetaKeys.java
copy to omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/AlphaMetas.java
index 352dd70..a1a043f 100644
--- a/pack-common/src/main/java/org/apache/servicecomb/pack/common/AlphaMetaKeys.java
+++ b/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/AlphaMetas.java
@@ -15,8 +15,40 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.pack.common;
+package org.apache.servicecomb.pack.omega.context;
 
-public enum AlphaMetaKeys {
-  AkkaEnabled
+public class AlphaMetas {
+
+  private boolean akkaEnabled = false;
+
+  public boolean isAkkaEnabled() {
+    return akkaEnabled;
+  }
+
+  @Override
+  public String toString() {
+    return "AlphaMetas{" +
+        "akkaEnabled=" + akkaEnabled +
+        '}';
+  }
+
+  public static AlphaMetasBuilder builder() {
+    return new AlphaMetasBuilder();
+  }
+
+  public static final class AlphaMetasBuilder {
+
+    private boolean akkaEnabled = false;
+
+    public AlphaMetasBuilder akkaEnabled(boolean akkaEnabled) {
+      this.akkaEnabled = akkaEnabled;
+      return this;
+    }
+
+    public AlphaMetas build() {
+      AlphaMetas alphaMetas = new AlphaMetas();
+      alphaMetas.akkaEnabled = this.akkaEnabled;
+      return alphaMetas;
+    }
+  }
 }
\ No newline at end of file
diff --git a/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java b/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java
index 660b923..fd0487a 100644
--- a/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java
+++ b/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java
@@ -28,15 +28,15 @@ public class OmegaContext {
   private final ThreadLocal<String> localTxId = new InheritableThreadLocal<>();
   private final IdGenerator<String> idGenerator;
 
-  private final boolean alphaFeatureAkkaEnabled;
+  private final AlphaMetas alphaMetas;
 
   public OmegaContext(IdGenerator<String> idGenerator) {
-    this(idGenerator,false);
+    this(idGenerator, AlphaMetas.builder().akkaEnabled(false).build());
   }
 
-  public OmegaContext(IdGenerator<String> idGenerator, boolean alphaFeatureAkkaEnabled) {
+  public OmegaContext(IdGenerator<String> idGenerator, AlphaMetas alphaMetas) {
     this.idGenerator = idGenerator;
-    this.alphaFeatureAkkaEnabled = alphaFeatureAkkaEnabled;
+    this.alphaMetas = alphaMetas;
   }
 
   public String newGlobalTxId() {
@@ -67,8 +67,8 @@ public class OmegaContext {
     return localTxId.get();
   }
 
-  public boolean isAlphaFeatureAkkaEnabled() {
-    return alphaFeatureAkkaEnabled;
+  public AlphaMetas getAlphaMetas() {
+    return alphaMetas;
   }
 
   public TransactionContext getTransactionContext() {
@@ -85,7 +85,7 @@ public class OmegaContext {
     return "OmegaContext{" +
         "globalTxId=" + globalTxId.get() +
         ", localTxId=" + localTxId.get() +
-        ", alphaFeatureAkkaEnabled=" + alphaFeatureAkkaEnabled +
+        ", " + alphaMetas +
         '}';
   }
 
diff --git a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
index 1fd3648..5f54972 100644
--- a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
+++ b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
@@ -28,6 +28,7 @@ import org.apache.servicecomb.pack.omega.connector.grpc.core.LoadBalanceContextB
 import org.apache.servicecomb.pack.omega.connector.grpc.core.TransactionType;
 import org.apache.servicecomb.pack.omega.connector.grpc.saga.SagaLoadBalanceSender;
 import org.apache.servicecomb.pack.omega.connector.grpc.tcc.TccLoadBalanceSender;
+import org.apache.servicecomb.pack.omega.context.AlphaMetas;
 import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.IdGenerator;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
@@ -68,7 +69,7 @@ class OmegaSpringConfig {
   OmegaContext omegaContext(@Qualifier("omegaUniqueIdGenerator") IdGenerator<String> idGenerator, SagaMessageSender messageSender) {
     ServerMeta serverMeta = messageSender.onGetServerMeta();
     boolean akkaEnabeld = Boolean.parseBoolean(serverMeta.getMetaMap().get(AlphaMetaKeys.AkkaEnabled.name()));
-    return new OmegaContext(idGenerator,akkaEnabeld);
+    return new OmegaContext(idGenerator, AlphaMetas.builder().akkaEnabled(akkaEnabeld).build());
   }
 
   @Bean(name = {"compensationContext"})
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAnnotationProcessor.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAnnotationProcessor.java
index de9aa3f..9f5f268 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAnnotationProcessor.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAnnotationProcessor.java
@@ -50,7 +50,7 @@ public class SagaStartAnnotationProcessor {
 
   public void onError(String compensationMethod, Throwable throwable) {
     String globalTxId = omegaContext.globalTxId();
-    if(omegaContext.isAlphaFeatureAkkaEnabled()){
+    if(omegaContext.getAlphaMetas().isAkkaEnabled()){
       sender.send(
           new SagaAbortedEvent(globalTxId, omegaContext.localTxId(), null, compensationMethod,
               throwable));
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspect.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspect.java
index 650448d..d9a2320 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspect.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspect.java
@@ -42,7 +42,7 @@ public class SagaStartAspect {
   @Around("execution(@org.apache.servicecomb.pack.omega.context.annotations.SagaStart * *(..)) && @annotation(sagaStart)")
   Object advise(ProceedingJoinPoint joinPoint, SagaStart sagaStart) throws Throwable {
     initializeOmegaContext();
-    if(context.isAlphaFeatureAkkaEnabled() && sagaStart.timeout()>0){
+    if(context.getAlphaMetas().isAkkaEnabled() && sagaStart.timeout()>0){
       SagaStartAnnotationProcessorTimeoutWrapper wrapper = new SagaStartAnnotationProcessorTimeoutWrapper(this.sagaStartAnnotationProcessor);
       return wrapper.apply(joinPoint,sagaStart,context);
     }else{
diff --git a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspectTest.java b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspectTest.java
index ba4539c..2226181 100644
--- a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspectTest.java
+++ b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/SagaStartAspectTest.java
@@ -29,6 +29,7 @@ import java.util.UUID;
 
 import org.apache.servicecomb.pack.common.EventType;
 import org.apache.servicecomb.pack.contract.grpc.ServerMeta;
+import org.apache.servicecomb.pack.omega.context.AlphaMetas;
 import org.apache.servicecomb.pack.omega.context.IdGenerator;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.context.annotations.SagaStart;
@@ -169,7 +170,7 @@ public class SagaStartAspectTest {
 
   @Test
   public void clearContextOnSagaStartErrorWithAkka() throws Throwable {
-    omegaContext = new OmegaContext(idGenerator,true);
+    omegaContext = new OmegaContext(idGenerator, AlphaMetas.builder().akkaEnabled(true).build());
     aspect = new SagaStartAspect(sender, omegaContext);
     RuntimeException oops = new RuntimeException("oops");
 
diff --git a/pack-common/src/main/java/org/apache/servicecomb/pack/common/AlphaMetaKeys.java b/pack-common/src/main/java/org/apache/servicecomb/pack/common/AlphaMetaKeys.java
index 352dd70..ce27b80 100644
--- a/pack-common/src/main/java/org/apache/servicecomb/pack/common/AlphaMetaKeys.java
+++ b/pack-common/src/main/java/org/apache/servicecomb/pack/common/AlphaMetaKeys.java
@@ -18,5 +18,5 @@
 package org.apache.servicecomb.pack.common;
 
 public enum AlphaMetaKeys {
-  AkkaEnabled
+  AkkaEnabled // TODO Future expansion to SupportSaga, SupportTcc
 }
\ No newline at end of file


[servicecomb-pack] 11/13: SCB-1627 Send compensation ack event only when Alpha with Akka Actor

Posted by ni...@apache.org.
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 b44e17d07985b9fd69f3aa9e42ab95bc37b57f7e
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Wed Dec 4 11:12:26 2019 +0800

    SCB-1627 Send compensation ack event only when Alpha with Akka Actor
---
 .../servicecomb/pack/omega/transaction/CallbackContext.java  | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
index c069ac9..94a7111 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
@@ -51,10 +51,18 @@ public class CallbackContext {
       omegaContext.setGlobalTxId(globalTxId);
       omegaContext.setLocalTxId(localTxId);
       contextInternal.callbackMethod.invoke(contextInternal.target, payloads);
+      if (omegaContext.getAlphaMetas().isAkkaEnabled()) {
+        sender.send(
+            new TxCompensateAckSucceedEvent(omegaContext.globalTxId(), omegaContext.localTxId(),
+                omegaContext.globalTxId()));
+      }
       LOG.info("Callback transaction with global tx id [{}], local tx id [{}]", globalTxId, localTxId);
-      sender.send(new TxCompensateAckSucceedEvent(omegaContext.globalTxId(),omegaContext.localTxId(),omegaContext.globalTxId()));
     } catch (IllegalAccessException | InvocationTargetException e) {
-      sender.send(new TxCompensateAckFailedEvent(omegaContext.globalTxId(),omegaContext.localTxId(),omegaContext.globalTxId()));
+      if (omegaContext.getAlphaMetas().isAkkaEnabled()) {
+        sender.send(
+            new TxCompensateAckFailedEvent(omegaContext.globalTxId(), omegaContext.localTxId(),
+                omegaContext.globalTxId()));
+      }
       LOG.error(
           "Pre-checking for callback method " + contextInternal.callbackMethod.toString()
               + " was somehow skipped, did you forget to configure callback method checking on service startup?",


[servicecomb-pack] 13/13: SCB-1627 Method name ask rename to getAck

Posted by ni...@apache.org.
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 a8b24100a59a8ec9c917f89b1aa6978cc81e10df
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Sat Dec 7 15:10:15 2019 +0800

    SCB-1627 Method name ask rename to getAck
---
 .../java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java    | 2 +-
 .../apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java   | 4 ++--
 .../servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java       | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
index eab13f4..81b26a0 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
@@ -25,7 +25,7 @@ public interface OmegaCallback {
   default void disconnect() {
   }
 
-  default void ask(CompensateAckType type) {
+  default void getAck(CompensateAckType type) {
   }
 
   default boolean isWaiting() {
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
index cd1bf72..027046d 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
@@ -55,7 +55,7 @@ class GrpcOmegaCallback implements OmegaCallback {
       if (compensateAckCountDownLatch.getType() == CompensateAckType.Disconnected) {
         throw new CompensateConnectException("Omega connect exception");
       }else{
-        LOG.info("compensate ask "+ compensateAckCountDownLatch.getType().name());
+        LOG.info("compensate ack "+ compensateAckCountDownLatch.getType().name());
         if(compensateAckCountDownLatch.getType() == CompensateAckType.Failed){
           throw new CompensateAckFailedException("An exception is thrown inside the compensation method");
         }
@@ -76,7 +76,7 @@ class GrpcOmegaCallback implements OmegaCallback {
   }
 
   @Override
-  public void ask(CompensateAckType type) {
+  public void getAck(CompensateAckType type) {
     if (compensateAckCountDownLatch != null) {
       compensateAckCountDownLatch.countDown(type);
     }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
index 61548c0..dac6f21 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
@@ -174,7 +174,7 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
           .createTime(new Date())
           .localTxId(message.getLocalTxId()).build();
       omegaCallbacks.get(message.getServiceName()).get(message.getInstanceId())
-          .ask(CompensateAckType.Succeed);
+          .getAck(CompensateAckType.Succeed);
     } else if (message.getType().equals(EventType.TxCompensateAckFailedEvent.name())) {
       event = TxCompensateAckEvent.builder()
           .succeed(false)
@@ -185,7 +185,7 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
           .createTime(new Date())
           .localTxId(message.getLocalTxId()).build();
       omegaCallbacks.get(message.getServiceName()).get(message.getInstanceId())
-          .ask(CompensateAckType.Failed);
+          .getAck(CompensateAckType.Failed);
     } else {
       ok = false;
     }


[servicecomb-pack] 09/13: SCB-1627 Revert "Update test cases for compensation result events"

Posted by ni...@apache.org.
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 c3c3789c1d08b49fab36cbaa90986ae8cad32c0f
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Wed Dec 4 10:58:49 2019 +0800

    SCB-1627 Revert "Update test cases for compensation result events"
---
 .../resources/alpha_records_transaction_events.feature | 18 +++++++++---------
 .../test/resources/pack_compensation_scenario.feature  |  1 -
 .../resources/pack_post_car_exception_scenario.feature |  1 -
 .../src/test/resources/pack_timeout_scenario.feature   |  2 --
 .../test/resources/AExceptionWhenAb_scenario.feature   |  1 -
 .../test/resources/CExceptionWhenAbAc_scenario.feature |  1 -
 .../test/resources/pack_compensation_scenario.feature  |  1 -
 .../resources/pack_post_car_exception_scenario.feature |  1 -
 .../src/test/resources/pack_timeout_scenario.feature   |  2 --
 .../test/resources/pack_compensation_scenario.feature  |  1 -
 .../resources/pack_post_car_exception_scenario.feature |  1 -
 .../src/test/resources/pack_timeout_scenario.feature   |  2 --
 .../test/resources/pack_compensation_scenario.feature  |  1 -
 .../resources/pack_post_car_exception_scenario.feature |  1 -
 .../src/test/resources/pack_timeout_scenario.feature   |  2 --
 .../test/resources/pack_compensation_scenario.feature  |  1 -
 .../resources/pack_post_car_exception_scenario.feature |  1 -
 .../src/test/resources/pack_timeout_scenario.feature   |  2 --
 .../servicecomb/pack/integration/tests/PackIT.java     |  3 +--
 .../omega/transaction/spring/TccInterceptorTest.java   |  3 ---
 .../spring/TransactionInterceptionTest.java            |  2 --
 21 files changed, 10 insertions(+), 38 deletions(-)

diff --git a/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/resources/alpha_records_transaction_events.feature b/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/resources/alpha_records_transaction_events.feature
index 52b4d5b..1e914b5 100644
--- a/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/resources/alpha_records_transaction_events.feature
+++ b/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/resources/alpha_records_transaction_events.feature
@@ -77,15 +77,15 @@ Feature: Alpha records transaction events
     When User Sean requests to book 1 cars and 1 rooms fail
 
     Then Alpha records the following events
-      | serviceName  | type               |
-      | booking | SagaStartedEvent   |
-      | car     | TxStartedEvent     |
-      | car     | TxEndedEvent       |
-      | hotel     | TxStartedEvent     |
-      | hotel     | TxEndedEvent       |
-      | booking | SagaAbortedEvent     |
-      | hotel     | TxCompensatedEvent |
-      | car     | TxCompensatedEvent |
+      | serviceName | type               |
+      | booking     | SagaStartedEvent   |
+      | car         | TxStartedEvent     |
+      | car         | TxEndedEvent       |
+      | hotel       | TxStartedEvent     |
+      | hotel       | TxEndedEvent       |
+      | booking     | SagaAbortedEvent   |
+      | hotel       | TxCompensatedEvent |
+      | car         | TxCompensatedEvent |
 
     Then Car Service contains the following booking orders
       | id | name | amount | confirmed | cancelled |
diff --git a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature
index 62547f3..daa086f 100644
--- a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
index 5ce291d..c5f3249 100644
--- a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature
index c908610..1b545b1 100644
--- a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature
@@ -33,9 +33,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature
index 3182098..6778fd1 100644
--- a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature
+++ b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature
@@ -30,7 +30,6 @@ Feature: Alpha records transaction events
       | serviceb   | TxEndedEvent   |
       | servicea   | TxAbortedEvent     |
       | servicea   | TxAbortedEvent     |
-      | serviceb | TxCompensateAckSucceedEvent   |
       | serviceb | TxCompensatedEvent   |
       | * | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature
index d3b4f3c..2a74f55 100644
--- a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature
+++ b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature
@@ -33,7 +33,6 @@ Feature: Alpha records transaction events
       | servicec | TxAbortedEvent   |
       | servicea | TxAbortedEvent   |
       | servicea | TxAbortedEvent   |
-      | serviceb | TxCompensateAckSucceedEvent   |
       | serviceb | TxCompensatedEvent   |
       | * | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature
index 62547f3..daa086f 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature
index 63ffe1d..968cf65 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature
index c908610..1b545b1 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature
@@ -33,9 +33,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature
index 62547f3..daa086f 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature
index 63ffe1d..968cf65 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature
index c908610..1b545b1 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature
@@ -33,9 +33,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature
index 62547f3..daa086f 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature
index 63ffe1d..968cf65 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature
index c908610..1b545b1 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature
@@ -33,9 +33,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature
index 62547f3..daa086f 100644
--- a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
index 5ce291d..c5f3249 100644
--- a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
@@ -31,7 +31,6 @@ Feature: Alpha records transaction events
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature
index c908610..1b545b1 100644
--- a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature
@@ -33,9 +33,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
-      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
-      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java b/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java
index 4f60e06..0dfa35b 100644
--- a/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java
+++ b/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java
@@ -310,8 +310,7 @@ public class PackIT {
     assertThat(events.get(8).type(), is("TxAbortedEvent"));
     // This event is for the whole saga event
     assertThat(events.get(9).type(), is("TxAbortedEvent"));
-    assertThat(events.get(10).type(), is("TxCompensateAckSucceedEvent"));
-    assertThat(events.get(11).type(), is("TxCompensatedEvent"));
+    assertThat(events.get(10).type(), is("TxCompensatedEvent"));
 
     assertThat(compensatedMessages, Matchers.contains("Goodbye, " + GreetingController.TRESPASSER));
   }
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java
index 670ec89..0cefd6b 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java
@@ -112,9 +112,7 @@ public class TccInterceptorTest {
             new ParticipationEndedEvent(globalTxId, anotherLocalTxId, globalTxId, confirmMethod, cancelMethod,
                 TransactionStatus.Succeed).toString(),
             new TccEndedEvent(globalTxId, globalTxId, TransactionStatus.Succeed).toString(),
-            new TxCompensateAckSucceedEvent(globalTxId, newLocalTxId, globalTxId).toString(),
             new CoordinatedEvent(globalTxId, newLocalTxId, globalTxId, confirmMethod, TransactionStatus.Succeed).toString(),
-            new TxCompensateAckSucceedEvent(globalTxId, anotherLocalTxId, globalTxId).toString(),
             new CoordinatedEvent(globalTxId, anotherLocalTxId, globalTxId, confirmMethod, TransactionStatus.Succeed).toString()
         },
         toArray(messages)
@@ -149,7 +147,6 @@ public class TccInterceptorTest {
             new ParticipationEndedEvent(globalTxId, anotherLocalTxId, globalTxId, confirmMethod, cancelMethod,
                 TransactionStatus.Failed).toString(),
             new TccEndedEvent(globalTxId, globalTxId, TransactionStatus.Failed).toString(),
-            new TxCompensateAckFailedEvent(globalTxId, newLocalTxId, globalTxId).toString(),
             new CoordinatedEvent(globalTxId, newLocalTxId, globalTxId, cancelMethod, TransactionStatus.Succeed).toString()
         },
         toArray(messages)
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java
index f4224dd..a5f3abf 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java
@@ -188,9 +188,7 @@ public class TransactionInterceptionTest {
             new TxStartedEvent(globalTxId, anotherLocalTxId, localTxId, compensationMethod, 0, "", 0,
                 anotherUser).toString(),
             new TxEndedEvent(globalTxId, anotherLocalTxId, localTxId, compensationMethod).toString(),
-            new TxCompensateAckSucceedEvent(globalTxId, newLocalTxId, globalTxId).toString(),
             new TxCompensatedEvent(globalTxId, newLocalTxId, globalTxId, compensationMethod).toString(),
-            new TxCompensateAckSucceedEvent(globalTxId, anotherLocalTxId, globalTxId).toString(),
             new TxCompensatedEvent(globalTxId, anotherLocalTxId, localTxId, compensationMethod).toString()
         },
         toArray(messages)


[servicecomb-pack] 06/13: SCB-1627 Rename CompensateAskFailedException to CompensateAckFailedException

Posted by ni...@apache.org.
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 bb52a9837590d70f3797e09289f525ac284778a1
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Mon Dec 2 09:28:29 2019 +0800

    SCB-1627 Rename CompensateAskFailedException to CompensateAckFailedException
---
 .../apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java    | 4 ++--
 ...nsateAskFailedException.java => CompensateAckFailedException.java} | 4 ++--
 .../apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java   | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java
index 95b0df6..23b585a 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/CompositeOmegaCallback.java
@@ -24,7 +24,7 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.servicecomb.pack.alpha.core.exception.CompensateAskFailedException;
+import org.apache.servicecomb.pack.alpha.core.exception.CompensateAckFailedException;
 import org.apache.servicecomb.pack.alpha.core.exception.CompensateConnectException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -59,7 +59,7 @@ public class CompositeOmegaCallback implements OmegaCallback {
     } catch (CompensateConnectException e) {
       serviceCallbacks.values().remove(omegaCallback);
       throw e;
-    } catch (CompensateAskFailedException e) {
+    } catch (CompensateAckFailedException e) {
       throw e;
     } catch (Exception e) {
       serviceCallbacks.values().remove(omegaCallback);
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAskFailedException.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAckFailedException.java
similarity index 88%
rename from alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAskFailedException.java
rename to alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAckFailedException.java
index 4adbe2b..b6dc51e 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAskFailedException.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/exception/CompensateAckFailedException.java
@@ -17,8 +17,8 @@
 
 package org.apache.servicecomb.pack.alpha.core.exception;
 
-public class CompensateAskFailedException extends RuntimeException {
-  public CompensateAskFailedException(String cause) {
+public class CompensateAckFailedException extends RuntimeException {
+  public CompensateAckFailedException(String cause) {
     super(cause);
   }
 }
\ No newline at end of file
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
index 3187892..1624479 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
@@ -22,7 +22,7 @@ import io.grpc.stub.StreamObserver;
 import java.lang.invoke.MethodHandles;
 import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
 import org.apache.servicecomb.pack.alpha.core.TxEvent;
-import org.apache.servicecomb.pack.alpha.core.exception.CompensateAskFailedException;
+import org.apache.servicecomb.pack.alpha.core.exception.CompensateAckFailedException;
 import org.apache.servicecomb.pack.alpha.core.exception.CompensateConnectException;
 import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
 import org.apache.servicecomb.pack.contract.grpc.GrpcCompensateCommand;
@@ -57,7 +57,7 @@ class GrpcOmegaCallback implements OmegaCallback {
       }else{
         LOG.info("compensate ask "+compensateAskWait.getType().name());
         if(compensateAskWait.getType() == CompensateAskType.Failed){
-          throw new CompensateAskFailedException("An exception is thrown inside the compensation method");
+          throw new CompensateAckFailedException("An exception is thrown inside the compensation method");
         }
       }
     } catch (InterruptedException e) {


[servicecomb-pack] 08/13: SCB-1627 Rename CompensateAskWait to CompensateAckCountDownLatch

Posted by ni...@apache.org.
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 bbc54ebd95f8fbee27fc25f796ede0fb214a860a
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Mon Dec 2 13:58:20 2019 +0800

    SCB-1627 Rename CompensateAskWait to CompensateAckCountDownLatch
---
 ...kWait.java => CompensateAckCountDownLatch.java} |  4 ++--
 .../pack/alpha/server/fsm/GrpcOmegaCallback.java   | 24 +++++++++++-----------
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAckCountDownLatch.java
similarity index 91%
rename from alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
rename to alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAckCountDownLatch.java
index 9dee861..188cc16 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAckCountDownLatch.java
@@ -20,10 +20,10 @@ package org.apache.servicecomb.pack.alpha.server.fsm;
 import java.util.concurrent.CountDownLatch;
 import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAckType;
 
-public class CompensateAskWait extends CountDownLatch {
+public class CompensateAckCountDownLatch extends CountDownLatch {
   private CompensateAckType type;
 
-  public CompensateAskWait(int count) {
+  public CompensateAckCountDownLatch(int count) {
     super(count);
   }
 
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
index 010ba6e..cd1bf72 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
@@ -33,7 +33,7 @@ class GrpcOmegaCallback implements OmegaCallback {
 
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   private final StreamObserver<GrpcCompensateCommand> observer;
-  private CompensateAskWait compensateAskWait;
+  private CompensateAckCountDownLatch compensateAckCountDownLatch;
 
   GrpcOmegaCallback(StreamObserver<GrpcCompensateCommand> observer) {
     this.observer = observer;
@@ -41,7 +41,7 @@ class GrpcOmegaCallback implements OmegaCallback {
 
   @Override
   public void compensate(TxEvent event) {
-    compensateAskWait = new CompensateAskWait(1);
+    compensateAckCountDownLatch = new CompensateAckCountDownLatch(1);
     try {
       GrpcCompensateCommand command = GrpcCompensateCommand.newBuilder()
           .setGlobalTxId(event.globalTxId())
@@ -51,39 +51,39 @@ class GrpcOmegaCallback implements OmegaCallback {
           .setPayloads(ByteString.copyFrom(event.payloads()))
           .build();
       observer.onNext(command);
-      compensateAskWait.await();
-      if (compensateAskWait.getType() == CompensateAckType.Disconnected) {
+      compensateAckCountDownLatch.await();
+      if (compensateAckCountDownLatch.getType() == CompensateAckType.Disconnected) {
         throw new CompensateConnectException("Omega connect exception");
       }else{
-        LOG.info("compensate ask "+compensateAskWait.getType().name());
-        if(compensateAskWait.getType() == CompensateAckType.Failed){
+        LOG.info("compensate ask "+ compensateAckCountDownLatch.getType().name());
+        if(compensateAckCountDownLatch.getType() == CompensateAckType.Failed){
           throw new CompensateAckFailedException("An exception is thrown inside the compensation method");
         }
       }
     } catch (InterruptedException e) {
       throw new RuntimeException(e);
     } finally {
-      compensateAskWait = null;
+      compensateAckCountDownLatch = null;
     }
   }
 
   @Override
   public void disconnect() {
     observer.onCompleted();
-    if (compensateAskWait != null) {
-      compensateAskWait.countDown(CompensateAckType.Disconnected);
+    if (compensateAckCountDownLatch != null) {
+      compensateAckCountDownLatch.countDown(CompensateAckType.Disconnected);
     }
   }
 
   @Override
   public void ask(CompensateAckType type) {
-    if (compensateAskWait != null) {
-      compensateAskWait.countDown(type);
+    if (compensateAckCountDownLatch != null) {
+      compensateAckCountDownLatch.countDown(type);
     }
   }
 
   @Override
   public boolean isWaiting(){
-    return compensateAskWait == null ? false : true;
+    return compensateAckCountDownLatch == null ? false : true;
   }
 }


[servicecomb-pack] 02/13: SCB-1627 Define compensation success and failure event type

Posted by ni...@apache.org.
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 ad39aa709ff765eb12770b2aad7c5fda4d486c01
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Sat Nov 30 18:29:36 2019 +0800

    SCB-1627 Define compensation success and failure event type
---
 .../transaction/TxCompensateAckFailedEvent.java    | 26 ++++++++++++++++++++++
 .../transaction/TxCompensateAckSucceedEvent.java   | 26 ++++++++++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TxCompensateAckFailedEvent.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TxCompensateAckFailedEvent.java
new file mode 100644
index 0000000..0446eb3
--- /dev/null
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TxCompensateAckFailedEvent.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.omega.transaction;
+
+import org.apache.servicecomb.pack.common.EventType;
+
+public class TxCompensateAckFailedEvent extends TxEvent {
+  public TxCompensateAckFailedEvent(String globalTxId, String localTxId, String parentTxId) {
+    super(EventType.TxCompensateAckFailedEvent, globalTxId, localTxId, parentTxId, "", 0, "", 0);
+  }
+}
\ No newline at end of file
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TxCompensateAckSucceedEvent.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TxCompensateAckSucceedEvent.java
new file mode 100644
index 0000000..d5e2edd
--- /dev/null
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/TxCompensateAckSucceedEvent.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.omega.transaction;
+
+import org.apache.servicecomb.pack.common.EventType;
+
+public class TxCompensateAckSucceedEvent extends TxEvent {
+  public TxCompensateAckSucceedEvent(String globalTxId, String localTxId, String parentTxId) {
+    super(EventType.TxCompensateAckSucceedEvent, globalTxId, localTxId, parentTxId, "", 0, "", 0);
+  }
+}
\ No newline at end of file


[servicecomb-pack] 01/13: SCB-1627 Moved CallbackContext from omega-context to omega-transaction

Posted by ni...@apache.org.
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 9202a353219cf98871f550bf2d93d7c5f0abbadd
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Sat Nov 30 15:21:56 2019 +0800

    SCB-1627 Moved CallbackContext from omega-context to omega-transaction
---
 .../org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java    | 2 +-
 .../pack/omega/transaction/spring/CompensableAnnotationProcessor.java  | 2 +-
 .../omega/transaction/spring/CompensableMethodCheckingCallback.java    | 2 +-
 .../pack/omega/transaction/spring/MethodCheckingCallback.java          | 2 +-
 .../pack/omega/transaction/spring/ParticipateAnnotationProcessor.java  | 2 +-
 .../omega/transaction/spring/ParticipateMethodCheckingCallback.java    | 2 +-
 .../pack/omega/transaction/spring/TransactionAspectConfig.java         | 2 +-
 .../servicecomb/pack/omega/transaction/spring/MessageConfig.java       | 2 +-
 .../apache/servicecomb/pack/omega/transaction}/CallbackContext.java    | 3 ++-
 .../servicecomb/pack/omega/transaction/CompensationMessageHandler.java | 2 --
 .../pack/omega/transaction/tcc/CoordinateMessageHandler.java           | 2 +-
 .../pack/omega/transaction/CompensationMessageHandlerTest.java         | 1 -
 .../pack/omega/transaction/tcc/CoordinateMessageHandlerTest.java       | 2 +-
 13 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
index dc49309..e1c2ad5 100644
--- a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
+++ b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/OmegaSpringConfig.java
@@ -28,7 +28,7 @@ import org.apache.servicecomb.pack.omega.connector.grpc.core.LoadBalanceContextB
 import org.apache.servicecomb.pack.omega.connector.grpc.core.TransactionType;
 import org.apache.servicecomb.pack.omega.connector.grpc.saga.SagaLoadBalanceSender;
 import org.apache.servicecomb.pack.omega.connector.grpc.tcc.TccLoadBalanceSender;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.IdGenerator;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.context.ServiceConfig;
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationProcessor.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationProcessor.java
index b714a6b..fb592af 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationProcessor.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationProcessor.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.pack.omega.transaction.spring;
 
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableMethodCheckingCallback.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableMethodCheckingCallback.java
index 16bfc70..07d8eb8 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableMethodCheckingCallback.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableMethodCheckingCallback.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.pack.omega.transaction.spring;
 
 import java.lang.reflect.Method;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.transaction.annotations.Compensable;
 
 class CompensableMethodCheckingCallback extends MethodCheckingCallback {
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/MethodCheckingCallback.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/MethodCheckingCallback.java
index 071ac73..432ed88 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/MethodCheckingCallback.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/MethodCheckingCallback.java
@@ -20,7 +20,7 @@ package org.apache.servicecomb.pack.omega.transaction.spring;
 import java.lang.invoke.MethodHandles;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.transaction.OmegaException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateAnnotationProcessor.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateAnnotationProcessor.java
index 9ecc272..3dfd378 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateAnnotationProcessor.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateAnnotationProcessor.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.pack.omega.transaction.spring;
 
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateMethodCheckingCallback.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateMethodCheckingCallback.java
index 54a09db..e3addce 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateMethodCheckingCallback.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/ParticipateMethodCheckingCallback.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.pack.omega.transaction.spring;
 
 import java.lang.reflect.Method;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.transaction.annotations.Participate;
 
 public class ParticipateMethodCheckingCallback extends MethodCheckingCallback {
diff --git a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionAspectConfig.java b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionAspectConfig.java
index a268381..b9f5527 100644
--- a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionAspectConfig.java
+++ b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionAspectConfig.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.pack.omega.transaction.spring;
 
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.transaction.CompensationMessageHandler;
 import org.apache.servicecomb.pack.omega.transaction.MessageHandler;
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java
index d18d1bb..6fd2d91 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/MessageConfig.java
@@ -20,7 +20,7 @@ package org.apache.servicecomb.pack.omega.transaction.spring;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.servicecomb.pack.contract.grpc.ServerMeta;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.IdGenerator;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.transaction.AlphaResponse;
diff --git a/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/CallbackContext.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
similarity index 96%
rename from omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/CallbackContext.java
rename to omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
index 90e06d6..c483480 100644
--- a/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/CallbackContext.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CallbackContext.java
@@ -15,13 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.pack.omega.context;
+package org.apache.servicecomb.pack.omega.transaction;
 
 import java.lang.invoke.MethodHandles;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandler.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandler.java
index 97b80ee..8d5d0f8 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandler.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandler.java
@@ -17,8 +17,6 @@
 
 package org.apache.servicecomb.pack.omega.transaction;
 
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
-
 public class CompensationMessageHandler implements MessageHandler {
   private final SagaMessageSender sender;
 
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandler.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandler.java
index 73673aa..ab188cd 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandler.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandler.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.pack.omega.transaction.tcc;
 
 import org.apache.servicecomb.pack.common.TransactionStatus;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.transaction.tcc.events.CoordinatedEvent;
 
diff --git a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandlerTest.java b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandlerTest.java
index e411f05..8b6353e 100644
--- a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandlerTest.java
+++ b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/CompensationMessageHandlerTest.java
@@ -28,7 +28,6 @@ import java.util.List;
 
 import org.apache.servicecomb.pack.common.EventType;
 import org.apache.servicecomb.pack.contract.grpc.ServerMeta;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandlerTest.java b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandlerTest.java
index a7a9628..b0f0b7e 100644
--- a/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandlerTest.java
+++ b/omega/omega-transaction/src/test/java/org/apache/servicecomb/pack/omega/transaction/tcc/CoordinateMessageHandlerTest.java
@@ -26,7 +26,7 @@ import java.util.ArrayList;
 import java.util.List;
 import org.apache.servicecomb.pack.common.TransactionStatus;
 import org.apache.servicecomb.pack.contract.grpc.ServerMeta;
-import org.apache.servicecomb.pack.omega.context.CallbackContext;
+import org.apache.servicecomb.pack.omega.transaction.CallbackContext;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
 import org.apache.servicecomb.pack.omega.transaction.AlphaResponse;
 import org.apache.servicecomb.pack.omega.transaction.tcc.events.*;


[servicecomb-pack] 04/13: SCB-1627 Update test cases for compensation result events

Posted by ni...@apache.org.
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 7c97b0a5673eb8ea5045cedf4814b2850425ee7f
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Sat Nov 30 18:35:20 2019 +0800

    SCB-1627 Update test cases for compensation result events
---
 .../src/test/resources/pack_compensation_scenario.feature     |  1 +
 .../test/resources/pack_post_car_exception_scenario.feature   |  1 +
 .../src/test/resources/pack_timeout_scenario.feature          |  2 ++
 .../src/test/resources/AExceptionWhenAb_scenario.feature      |  1 +
 .../src/test/resources/CExceptionWhenAbAc_scenario.feature    |  1 +
 .../src/test/resources/pack_compensation_scenario.feature     |  1 +
 .../test/resources/pack_post_car_exception_scenario.feature   |  3 ++-
 .../src/test/resources/pack_timeout_scenario.feature          |  2 ++
 .../src/test/resources/pack_compensation_scenario.feature     |  1 +
 .../test/resources/pack_post_car_exception_scenario.feature   |  3 ++-
 .../src/test/resources/pack_timeout_scenario.feature          |  2 ++
 .../src/test/resources/pack_compensation_scenario.feature     |  1 +
 .../test/resources/pack_post_car_exception_scenario.feature   |  3 ++-
 .../src/test/resources/pack_timeout_scenario.feature          |  2 ++
 .../src/test/resources/pack_compensation_scenario.feature     |  1 +
 .../test/resources/pack_post_car_exception_scenario.feature   |  1 +
 .../src/test/resources/pack_timeout_scenario.feature          |  2 ++
 .../org/apache/servicecomb/pack/integration/tests/PackIT.java | 11 ++++++-----
 .../pack/omega/transaction/spring/TccInterceptorTest.java     |  5 +++++
 .../omega/transaction/spring/TransactionInterceptionTest.java |  3 +++
 20 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature
index daa086f..62547f3 100644
--- a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_compensation_scenario.feature
@@ -31,6 +31,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
index c5f3249..5ce291d 100644
--- a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
@@ -31,6 +31,7 @@ Feature: Alpha records transaction events
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature
index 1b545b1..c908610 100644
--- a/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature
@@ -33,7 +33,9 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature
index 6778fd1..3182098 100644
--- a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature
+++ b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/AExceptionWhenAb_scenario.feature
@@ -30,6 +30,7 @@ Feature: Alpha records transaction events
       | serviceb   | TxEndedEvent   |
       | servicea   | TxAbortedEvent     |
       | servicea   | TxAbortedEvent     |
+      | serviceb | TxCompensateAckSucceedEvent   |
       | serviceb | TxCompensatedEvent   |
       | * | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature
index 2a74f55..d3b4f3c 100644
--- a/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature
+++ b/acceptance-tests/acceptance-pack-dubbo-demo/src/test/resources/CExceptionWhenAbAc_scenario.feature
@@ -33,6 +33,7 @@ Feature: Alpha records transaction events
       | servicec | TxAbortedEvent   |
       | servicea | TxAbortedEvent   |
       | servicea | TxAbortedEvent   |
+      | serviceb | TxCompensateAckSucceedEvent   |
       | serviceb | TxCompensatedEvent   |
       | * | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature
index daa086f..62547f3 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_compensation_scenario.feature
@@ -31,6 +31,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature
index c5f3249..63ffe1d 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature
@@ -26,11 +26,12 @@ Feature: Alpha records transaction events
     When User Sean requests to book 1 cars and 1 rooms fail
 
     Then Alpha records the following events
-      | serviceName  | type               |
+      | serviceName  | type          |
       | booking | SagaStartedEvent   |
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature
index 1b545b1..c908610 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-consul/src/test/resources/pack_timeout_scenario.feature
@@ -33,7 +33,9 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature
index daa086f..62547f3 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature
@@ -31,6 +31,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature
index c5f3249..63ffe1d 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_post_car_exception_scenario.feature
@@ -26,11 +26,12 @@ Feature: Alpha records transaction events
     When User Sean requests to book 1 cars and 1 rooms fail
 
     Then Alpha records the following events
-      | serviceName  | type               |
+      | serviceName  | type          |
       | booking | SagaStartedEvent   |
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature
index 1b545b1..c908610 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_timeout_scenario.feature
@@ -33,7 +33,9 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature
index daa086f..62547f3 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_compensation_scenario.feature
@@ -31,6 +31,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature
index c5f3249..63ffe1d 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_post_car_exception_scenario.feature
@@ -26,11 +26,12 @@ Feature: Alpha records transaction events
     When User Sean requests to book 1 cars and 1 rooms fail
 
     Then Alpha records the following events
-      | serviceName  | type               |
+      | serviceName  | type          |
       | booking | SagaStartedEvent   |
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature
index 1b545b1..c908610 100644
--- a/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo-with-zookeeper/src/test/resources/pack_timeout_scenario.feature
@@ -33,7 +33,9 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature
index daa086f..62547f3 100644
--- a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_compensation_scenario.feature
@@ -31,6 +31,7 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxAbortedEvent     |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
     
diff --git a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
index c5f3249..5ce291d 100644
--- a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_post_car_exception_scenario.feature
@@ -31,6 +31,7 @@ Feature: Alpha records transaction events
       | car     | TxStartedEvent     |
       | car     | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent     |
 
diff --git a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature
index 1b545b1..c908610 100644
--- a/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature
+++ b/acceptance-tests/acceptance-pack-spring-demo/src/test/resources/pack_timeout_scenario.feature
@@ -33,7 +33,9 @@ Feature: Alpha records transaction events
       | hotel   | TxStartedEvent     |
       | hotel   | TxEndedEvent       |
       | booking | TxAbortedEvent     |
+      | hotel   | TxCompensateAckSucceedEvent |
       | hotel   | TxCompensatedEvent |
+      | car     | TxCompensateAckSucceedEvent |
       | car     | TxCompensatedEvent |
       | car     | SagaEndedEvent   |
 
diff --git a/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java b/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java
index 82048e5..4f60e06 100644
--- a/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java
+++ b/integration-tests/pack-tests/src/test/java/org/apache/servicecomb/pack/integration/tests/PackIT.java
@@ -145,14 +145,14 @@ public class PackIT {
 
     assertThat(entity.getStatusCode(), is(INTERNAL_SERVER_ERROR));
 
-    await().atMost(4, SECONDS).until(() -> eventRepo.count() == 7);
+    await().atMost(4, SECONDS).until(() -> eventRepo.count() == 8);
 
     List<String> distinctGlobalTxIds = eventRepo.findDistinctGlobalTxId();
     assertThat(distinctGlobalTxIds.size(), greaterThanOrEqualTo(1));
 
     String globalTxId = distinctGlobalTxIds.get(0);
     List<TxEvent> events = eventRepo.findByGlobalTxIdOrderByCreationTime(globalTxId);
-    assertThat(events.size(), is(7));
+    assertThat(events.size(), is(8));
 
     TxEvent sagaStartedEvent = events.get(0);
     assertThat(sagaStartedEvent.type(), is("SagaStartedEvent"));
@@ -290,14 +290,14 @@ public class PackIT {
 
     assertThat(entity.getStatusCode(), is(INTERNAL_SERVER_ERROR));
 
-    await().atMost(10, SECONDS).until(() -> eventRepo.count() == 11);
+    await().atMost(10, SECONDS).until(() -> eventRepo.count() == 12);
 
     List<String> distinctGlobalTxIds = eventRepo.findDistinctGlobalTxId();
     assertThat(distinctGlobalTxIds.size(), greaterThanOrEqualTo(1));
 
     String globalTxId = distinctGlobalTxIds.get(0);
     List<TxEvent> events = eventRepo.findByGlobalTxIdOrderByCreationTime(globalTxId);
-    assertThat(events.size(), is(11));
+    assertThat(events.size(), is(12));
 
     assertThat(events.get(0).type(), is("SagaStartedEvent"));
     assertThat(events.get(1).type(), is("TxStartedEvent"));
@@ -310,7 +310,8 @@ public class PackIT {
     assertThat(events.get(8).type(), is("TxAbortedEvent"));
     // This event is for the whole saga event
     assertThat(events.get(9).type(), is("TxAbortedEvent"));
-    assertThat(events.get(10).type(), is("TxCompensatedEvent"));
+    assertThat(events.get(10).type(), is("TxCompensateAckSucceedEvent"));
+    assertThat(events.get(11).type(), is("TxCompensatedEvent"));
 
     assertThat(compensatedMessages, Matchers.contains("Goodbye, " + GreetingController.TRESPASSER));
   }
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java
index e63a48e..670ec89 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java
@@ -30,6 +30,8 @@ import java.util.List;
 import java.util.UUID;
 import org.apache.servicecomb.pack.common.TransactionStatus;
 import org.apache.servicecomb.pack.omega.context.IdGenerator;
+import org.apache.servicecomb.pack.omega.transaction.TxCompensateAckFailedEvent;
+import org.apache.servicecomb.pack.omega.transaction.TxCompensateAckSucceedEvent;
 import org.apache.servicecomb.pack.omega.transaction.tcc.TccMessageHandler;
 import org.apache.servicecomb.pack.omega.transaction.tcc.events.*;
 import org.junit.After;
@@ -110,7 +112,9 @@ public class TccInterceptorTest {
             new ParticipationEndedEvent(globalTxId, anotherLocalTxId, globalTxId, confirmMethod, cancelMethod,
                 TransactionStatus.Succeed).toString(),
             new TccEndedEvent(globalTxId, globalTxId, TransactionStatus.Succeed).toString(),
+            new TxCompensateAckSucceedEvent(globalTxId, newLocalTxId, globalTxId).toString(),
             new CoordinatedEvent(globalTxId, newLocalTxId, globalTxId, confirmMethod, TransactionStatus.Succeed).toString(),
+            new TxCompensateAckSucceedEvent(globalTxId, anotherLocalTxId, globalTxId).toString(),
             new CoordinatedEvent(globalTxId, anotherLocalTxId, globalTxId, confirmMethod, TransactionStatus.Succeed).toString()
         },
         toArray(messages)
@@ -145,6 +149,7 @@ public class TccInterceptorTest {
             new ParticipationEndedEvent(globalTxId, anotherLocalTxId, globalTxId, confirmMethod, cancelMethod,
                 TransactionStatus.Failed).toString(),
             new TccEndedEvent(globalTxId, globalTxId, TransactionStatus.Failed).toString(),
+            new TxCompensateAckFailedEvent(globalTxId, newLocalTxId, globalTxId).toString(),
             new CoordinatedEvent(globalTxId, newLocalTxId, globalTxId, cancelMethod, TransactionStatus.Succeed).toString()
         },
         toArray(messages)
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java
index 92dd5db..f4224dd 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java
@@ -49,6 +49,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import org.apache.servicecomb.pack.omega.context.IdGenerator;
 import org.apache.servicecomb.pack.omega.context.OmegaContext;
+import org.apache.servicecomb.pack.omega.transaction.TxCompensateAckSucceedEvent;
 import org.apache.servicecomb.pack.omega.transaction.spring.annotations.OmegaContextAware;
 import org.apache.servicecomb.pack.omega.transaction.MessageHandler;
 import org.apache.servicecomb.pack.omega.transaction.TxAbortedEvent;
@@ -187,7 +188,9 @@ public class TransactionInterceptionTest {
             new TxStartedEvent(globalTxId, anotherLocalTxId, localTxId, compensationMethod, 0, "", 0,
                 anotherUser).toString(),
             new TxEndedEvent(globalTxId, anotherLocalTxId, localTxId, compensationMethod).toString(),
+            new TxCompensateAckSucceedEvent(globalTxId, newLocalTxId, globalTxId).toString(),
             new TxCompensatedEvent(globalTxId, newLocalTxId, globalTxId, compensationMethod).toString(),
+            new TxCompensateAckSucceedEvent(globalTxId, anotherLocalTxId, globalTxId).toString(),
             new TxCompensatedEvent(globalTxId, anotherLocalTxId, localTxId, compensationMethod).toString()
         },
         toArray(messages)


[servicecomb-pack] 12/13: SCB-1627 Compensation in the reverse order

Posted by ni...@apache.org.
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 c29fecc9d81cbbb1ac303e19545ae1226e624713
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Wed Dec 4 13:23:05 2019 +0800

    SCB-1627 Compensation in the reverse order
---
 .../java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java |  2 +-
 .../org/apache/servicecomb/pack/alpha/fsm/model/SagaData.java | 11 +++++------
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
index b7e0a1f..287799b 100644
--- a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
+++ b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
@@ -481,7 +481,7 @@ public class SagaActor extends
         SagaEndedDomain domainEvent = (SagaEndedDomain) event;
         if (domainEvent.getState() == SagaActorState.FAILED) {
           data.setTerminated(true);
-          data.getTxEntityMap().forEach((k, v) -> {
+          data.getTxEntityMap().descendingMap().forEach((k, v) -> {
             if (v.getState() == TxState.COMMITTED) {
               // call compensate
               compensation(v, data);
diff --git a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/model/SagaData.java b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/model/SagaData.java
index 44a9eff..86a143c 100644
--- a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/model/SagaData.java
+++ b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/model/SagaData.java
@@ -21,8 +21,7 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentSkipListMap;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.servicecomb.pack.alpha.core.fsm.SuspendedType;
 import org.apache.servicecomb.pack.alpha.fsm.SagaActorState;
@@ -40,7 +39,7 @@ public class SagaData implements Serializable {
   private boolean terminated;
   private SagaActorState lastState;
   private AtomicLong compensationRunningCounter = new AtomicLong();
-  private Map<String,TxEntity> txEntityMap = new ConcurrentHashMap<>();
+  private ConcurrentSkipListMap<String,TxEntity> txEntityMap = new ConcurrentSkipListMap<>();
   private List<BaseEvent> events = new LinkedList<>();
 
   public String getServiceName() {
@@ -120,12 +119,12 @@ public class SagaData implements Serializable {
     this.compensationRunningCounter = compensationRunningCounter;
   }
 
-  public Map<String, TxEntity> getTxEntityMap() {
+  public ConcurrentSkipListMap<String, TxEntity> getTxEntityMap() {
     return txEntityMap;
   }
 
   public void setTxEntityMap(
-      Map<String, TxEntity> txEntityMap) {
+      ConcurrentSkipListMap<String, TxEntity> txEntityMap) {
     this.txEntityMap = txEntityMap;
   }
 
@@ -196,7 +195,7 @@ public class SagaData implements Serializable {
       return this;
     }
 
-    public Builder txEntityMap(Map<String, TxEntity> txEntityMap) {
+    public Builder txEntityMap(ConcurrentSkipListMap<String, TxEntity> txEntityMap) {
       sagaData.setTxEntityMap(txEntityMap);
       return this;
     }


[servicecomb-pack] 07/13: SCB-1627 Rename CompensateAskType to CompensateAckType

Posted by ni...@apache.org.
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 21403ab4ec927d72fb77cacd88b923285f3a604d
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Mon Dec 2 13:55:45 2019 +0800

    SCB-1627 Rename CompensateAskType to CompensateAckType
---
 .../org/apache/servicecomb/pack/alpha/core/OmegaCallback.java  |  4 ++--
 .../fsm/{CompensateAskType.java => CompensateAckType.java}     |  2 +-
 .../servicecomb/pack/alpha/server/fsm/CompensateAskWait.java   |  8 ++++----
 .../servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java   | 10 +++++-----
 .../pack/alpha/server/fsm/GrpcSagaEventService.java            |  6 +++---
 5 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
index a8391ae..eab13f4 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/OmegaCallback.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.pack.alpha.core;
 
-import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAckType;
 
 public interface OmegaCallback {
   void compensate(TxEvent event);
@@ -25,7 +25,7 @@ public interface OmegaCallback {
   default void disconnect() {
   }
 
-  default void ask(CompensateAskType type) {
+  default void ask(CompensateAckType type) {
   }
 
   default boolean isWaiting() {
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAskType.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAckType.java
similarity index 96%
rename from alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAskType.java
rename to alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAckType.java
index 10ff79d..211b0c1 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAskType.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/CompensateAckType.java
@@ -17,6 +17,6 @@
 
 package org.apache.servicecomb.pack.alpha.core.fsm;
 
-public enum CompensateAskType {
+public enum CompensateAckType {
   Failed,Succeed,Disconnected
 }
\ No newline at end of file
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
index e5d918c..9dee861 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/CompensateAskWait.java
@@ -18,20 +18,20 @@
 package org.apache.servicecomb.pack.alpha.server.fsm;
 
 import java.util.concurrent.CountDownLatch;
-import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAckType;
 
 public class CompensateAskWait extends CountDownLatch {
-  private CompensateAskType type;
+  private CompensateAckType type;
 
   public CompensateAskWait(int count) {
     super(count);
   }
 
-  public CompensateAskType getType() {
+  public CompensateAckType getType() {
     return type;
   }
 
-  public void countDown(CompensateAskType type) {
+  public void countDown(CompensateAckType type) {
     this.type = type;
     super.countDown();
   }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
index 1624479..010ba6e 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcOmegaCallback.java
@@ -24,7 +24,7 @@ import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
 import org.apache.servicecomb.pack.alpha.core.TxEvent;
 import org.apache.servicecomb.pack.alpha.core.exception.CompensateAckFailedException;
 import org.apache.servicecomb.pack.alpha.core.exception.CompensateConnectException;
-import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAckType;
 import org.apache.servicecomb.pack.contract.grpc.GrpcCompensateCommand;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,11 +52,11 @@ class GrpcOmegaCallback implements OmegaCallback {
           .build();
       observer.onNext(command);
       compensateAskWait.await();
-      if (compensateAskWait.getType() == CompensateAskType.Disconnected) {
+      if (compensateAskWait.getType() == CompensateAckType.Disconnected) {
         throw new CompensateConnectException("Omega connect exception");
       }else{
         LOG.info("compensate ask "+compensateAskWait.getType().name());
-        if(compensateAskWait.getType() == CompensateAskType.Failed){
+        if(compensateAskWait.getType() == CompensateAckType.Failed){
           throw new CompensateAckFailedException("An exception is thrown inside the compensation method");
         }
       }
@@ -71,12 +71,12 @@ class GrpcOmegaCallback implements OmegaCallback {
   public void disconnect() {
     observer.onCompleted();
     if (compensateAskWait != null) {
-      compensateAskWait.countDown(CompensateAskType.Disconnected);
+      compensateAskWait.countDown(CompensateAckType.Disconnected);
     }
   }
 
   @Override
-  public void ask(CompensateAskType type) {
+  public void ask(CompensateAckType type) {
     if (compensateAskWait != null) {
       compensateAskWait.countDown(type);
     }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
index 60fbdfb..61548c0 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
@@ -25,7 +25,7 @@ import java.util.Date;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
-import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAskType;
+import org.apache.servicecomb.pack.alpha.core.fsm.CompensateAckType;
 import org.apache.servicecomb.pack.alpha.core.fsm.event.TxCompensateAckEvent;
 import org.apache.servicecomb.pack.alpha.core.fsm.event.base.BaseEvent;
 import org.apache.servicecomb.pack.alpha.core.fsm.channel.ActorEventChannel;
@@ -174,7 +174,7 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
           .createTime(new Date())
           .localTxId(message.getLocalTxId()).build();
       omegaCallbacks.get(message.getServiceName()).get(message.getInstanceId())
-          .ask(CompensateAskType.Succeed);
+          .ask(CompensateAckType.Succeed);
     } else if (message.getType().equals(EventType.TxCompensateAckFailedEvent.name())) {
       event = TxCompensateAckEvent.builder()
           .succeed(false)
@@ -185,7 +185,7 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
           .createTime(new Date())
           .localTxId(message.getLocalTxId()).build();
       omegaCallbacks.get(message.getServiceName()).get(message.getInstanceId())
-          .ask(CompensateAskType.Failed);
+          .ask(CompensateAckType.Failed);
     } else {
       ok = false;
     }