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/09/11 06:08:42 UTC

[incubator-servicecomb-saga] 05/07: SCB-820 Connect the alpha service once Omega is started

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 1a05732ca3e8bd6ca7a8100be91a72a434fd009a
Author: Willem Jiang <ji...@huawei.com>
AuthorDate: Tue Sep 11 11:58:07 2018 +0800

    SCB-820 Connect the alpha service once Omega is started
---
 .../servicecomb/saga/omega/spring/OmegaSpringConfig.java    | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/saga/omega/spring/OmegaSpringConfig.java b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/saga/omega/spring/OmegaSpringConfig.java
index cc6b264..2229039 100644
--- a/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/saga/omega/spring/OmegaSpringConfig.java
+++ b/omega/omega-spring-starter/src/main/java/org/apache/servicecomb/saga/omega/spring/OmegaSpringConfig.java
@@ -122,6 +122,17 @@ class OmegaSpringConfig {
       @Lazy org.apache.servicecomb.saga.omega.transaction.tcc.MessageHandler coordinateMessageHandler,
       @Value("${alpha.cluster.address:localhost:8080}") String address) {
     ManagedChannel channel = ManagedChannelBuilder.forTarget(address).usePlaintext().build();
-    return new GrpcTccEventService(serviceConfig, channel, address, coordinateMessageHandler);
+    final GrpcTccEventService service = new GrpcTccEventService(serviceConfig, channel, address, coordinateMessageHandler);
+    // Need to register it self first
+    service.onConnected();
+
+    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
+      @Override
+      public void run() {
+        service.onDisconnected();
+        service.close();
+      }
+    }));
+    return service;
   }
 }