You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/01/02 10:50:29 UTC

[incubator-servicecomb-saga] 04/06: SCB-149 omega callback signature change

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

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

commit d801105ae5b8ff560b80ec998cd66bca67e02aff
Author: seanyinx <se...@huawei.com>
AuthorDate: Tue Jan 2 09:27:49 2018 +0800

    SCB-149 omega callback signature change
    
    Signed-off-by: seanyinx <se...@huawei.com>
---
 .../src/main/java/io/servicecomb/saga/alpha/core/OmegaCallback.java   | 2 +-
 .../main/java/io/servicecomb/saga/alpha/core/TxConsistentService.java | 2 +-
 .../java/io/servicecomb/saga/alpha/core/TxConsistentServiceTest.java  | 4 ++--
 .../src/main/java/io/servicecomb/saga/alpha/server/AlphaConfig.java   | 4 +++-
 .../java/io/servicecomb/saga/alpha/server/AlphaIntegrationTest.java   | 4 ++--
 5 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/OmegaCallback.java b/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/OmegaCallback.java
index 5ebfb72..166994d 100644
--- a/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/OmegaCallback.java
+++ b/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/OmegaCallback.java
@@ -18,5 +18,5 @@
 package io.servicecomb.saga.alpha.core;
 
 public interface OmegaCallback {
-  void compensate(String globalTxId, String localTxId, String compensationMethod, byte[] message);
+  void compensate(TxEvent event);
 }
diff --git a/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/TxConsistentService.java b/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/TxConsistentService.java
index 34218bf..5dcb7bc 100644
--- a/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/TxConsistentService.java
+++ b/alpha/alpha-core/src/main/java/io/servicecomb/saga/alpha/core/TxConsistentService.java
@@ -49,6 +49,6 @@ public class TxConsistentService {
   // TODO: 2017/12/27 we must define a way to find which service to compensate, to avoid sending to all
   private void compensate(TxEvent event) {
     List<TxEvent> events = eventRepository.findStartedTransactions(event.globalTxId(), TxStartedEvent.name());
-    events.forEach(evt -> omegaCallback.compensate(evt.globalTxId(), evt.localTxId(), evt.compensationMethod(), evt.payloads()));
+    events.forEach(omegaCallback::compensate);
   }
 }
diff --git a/alpha/alpha-core/src/test/java/io/servicecomb/saga/alpha/core/TxConsistentServiceTest.java b/alpha/alpha-core/src/test/java/io/servicecomb/saga/alpha/core/TxConsistentServiceTest.java
index 635690b..76b3099 100644
--- a/alpha/alpha-core/src/test/java/io/servicecomb/saga/alpha/core/TxConsistentServiceTest.java
+++ b/alpha/alpha-core/src/test/java/io/servicecomb/saga/alpha/core/TxConsistentServiceTest.java
@@ -66,8 +66,8 @@ public class TxConsistentServiceTest {
   private final String compensationMethod = getClass().getCanonicalName();
   private final List<CompensationContext> compensationContexts = new ArrayList<>();
 
-  private final OmegaCallback omegaCallback = (globalTxId, localTxId, compensationMethod, payloads) ->
-      compensationContexts.add(new CompensationContext(globalTxId, localTxId, compensationMethod, payloads));
+  private final OmegaCallback omegaCallback = event ->
+      compensationContexts.add(new CompensationContext(event.globalTxId(), event.localTxId(), event.compensationMethod(), event.payloads()));
 
   private final TxConsistentService consistentService = new TxConsistentService(eventRepository, omegaCallback);
 
diff --git a/alpha/alpha-server/src/main/java/io/servicecomb/saga/alpha/server/AlphaConfig.java b/alpha/alpha-server/src/main/java/io/servicecomb/saga/alpha/server/AlphaConfig.java
index eca48bc..55105d4 100644
--- a/alpha/alpha-server/src/main/java/io/servicecomb/saga/alpha/server/AlphaConfig.java
+++ b/alpha/alpha-server/src/main/java/io/servicecomb/saga/alpha/server/AlphaConfig.java
@@ -23,6 +23,7 @@ import org.springframework.context.annotation.Configuration;
 
 import io.servicecomb.saga.alpha.core.OmegaCallback;
 import io.servicecomb.saga.alpha.core.TxConsistentService;
+import io.servicecomb.saga.alpha.core.TxEvent;
 import io.servicecomb.saga.alpha.core.TxEventRepository;
 
 @Configuration
@@ -31,7 +32,7 @@ class AlphaConfig {
   @Bean
   OmegaCallback omegaCallback() {
     // TODO: 2017/12/27 to be replaced with actual callback on completion of SCB-138
-    return (globalTxId, localTxId, compensationMethod, message) -> {};
+    return event -> {};
   }
   
   @Bean
@@ -47,6 +48,7 @@ class AlphaConfig {
     return eventRepository;
   }
 
+  // TODO: 2017/12/29 how to match callback with service instance? send some msg on startup?
   private ServerStartable buildGrpc(int port, OmegaCallback omegaCallback, TxEventRepository eventRepository) {
     return new GrpcStartable(
         port,
diff --git a/alpha/alpha-server/src/test/java/io/servicecomb/saga/alpha/server/AlphaIntegrationTest.java b/alpha/alpha-server/src/test/java/io/servicecomb/saga/alpha/server/AlphaIntegrationTest.java
index 05ab8d2..2b83b97 100644
--- a/alpha/alpha-server/src/test/java/io/servicecomb/saga/alpha/server/AlphaIntegrationTest.java
+++ b/alpha/alpha-server/src/test/java/io/servicecomb/saga/alpha/server/AlphaIntegrationTest.java
@@ -163,8 +163,8 @@ public class AlphaIntegrationTest {
 
     @Bean
     OmegaCallback omegaCallback() {
-      return (globalTxId, localTxId, compensationMethod, payloads) ->
-          compensationContexts.add(new CompensationContext(globalTxId, localTxId, compensationMethod, payloads));
+      return event ->
+          compensationContexts.add(new CompensationContext(event.globalTxId(), event.localTxId(), event.compensationMethod(), event.payloads()));
     }
   }
 

-- 
To stop receiving notification emails like this one, please contact
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.