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/06/26 00:20:51 UTC

[incubator-servicecomb-saga] 06/07: SCB-244 add readme and add warn log in handler

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 b99bec4ada5df2d9e4ac79fb1f3b701b177344a0
Author: zhengyangyong <ya...@huawei.com>
AuthorDate: Wed Jun 20 18:42:26 2018 +0800

    SCB-244 add readme and add warn log in handler
    
    Signed-off-by: zhengyangyong <ya...@huawei.com>
---
 .../transport/servicecomb/SagaConsumerHandler.java |  4 +-
 .../transport/servicecomb/SagaProviderHandler.java |  4 +-
 saga-demo/saga-servicecomb-demo/README.md          | 61 ++++++++++++++++++++++
 3 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaConsumerHandler.java b/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaConsumerHandler.java
index 41f16ed..763de88 100644
--- a/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaConsumerHandler.java
+++ b/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaConsumerHandler.java
@@ -42,7 +42,7 @@ public class SagaConsumerHandler implements Handler {
     try {
       omegaContext = BeanUtils.getBean("omegaContext");
     } catch (NullPointerException npe) {
-      LOG.info("The OmegaContext is not injected, The SagaConsumerHandler is disabled.");
+      LOG.warn("The OmegaContext is not injected, The SagaConsumerHandler is disabled.");
     }
   }
 
@@ -62,6 +62,8 @@ public class SagaConsumerHandler implements Handler {
           omegaContext.globalTxId(),
           LOCAL_TX_ID_KEY,
           omegaContext.localTxId());
+    } else {
+      LOG.warn("The OmegaContext is not injected, The SagaConsumerHandler is disabled.");
     }
 
     invocation.next(asyncResponse);
diff --git a/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaProviderHandler.java b/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaProviderHandler.java
index bd73c31..8ea9628 100644
--- a/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaProviderHandler.java
+++ b/omega/omega-transport/omega-transport-servicecomb/src/main/java/org/apache/servicecomb/saga/omega/transport/servicecomb/SagaProviderHandler.java
@@ -42,7 +42,7 @@ public class SagaProviderHandler implements Handler {
     try {
       omegaContext = BeanUtils.getBean("omegaContext");
     } catch (NullPointerException npe) {
-      LOG.info("The OmegaContext is not injected, The SagaProviderHandler is disabled.");
+      LOG.warn("The OmegaContext is not injected, The SagaProviderHandler is disabled.");
     }
   }
 
@@ -62,6 +62,8 @@ public class SagaProviderHandler implements Handler {
         omegaContext.setGlobalTxId(globalTxId);
         omegaContext.setLocalTxId(invocation.getContext().get(LOCAL_TX_ID_KEY));
       }
+    } else {
+      LOG.warn("The OmegaContext is not injected, The SagaConsumerHandler is disabled.");
     }
 
     invocation.next(asyncResponse);
diff --git a/saga-demo/saga-servicecomb-demo/README.md b/saga-demo/saga-servicecomb-demo/README.md
new file mode 100644
index 0000000..f9cd821
--- /dev/null
+++ b/saga-demo/saga-servicecomb-demo/README.md
@@ -0,0 +1,61 @@
+# Booking Demo
+This demo simulates a booking application including three services:
+* booking
+* car
+* hotel
+
+## Prerequisites
+You will need:
+1. [JDK 1.8][jdk]
+2. [Maven 3.x][maven]
+3. [Docker][docker]
+4. [Docker compose][docker_compose]
+5. [alpha server][alpha_server]
+
+
+[jdk]: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
+[maven]: https://maven.apache.org/install.html
+[docker]: https://www.docker.com/get-docker
+[docker_compose]: https://docs.docker.com/compose/install/
+[alpha_server]: https://github.com/apache/incubator-servicecomb-saga/tree/master/alpha
+
+## Running Demo
+You can run the demo using either docker compose or executable files.
+### via docker compose
+1. run the following command to create docker images in saga project root folder.
+   ```
+   mvn clean package -DskipTests -Pdocker -Pdemo
+   ```
+2. start the whole application up(including alpha server and three demo services)
+   ```
+   docker-compose up
+   ```
+
+## User Requests by command line tools
+1. Booking 2 rooms and 2 cars, this booking will be OK.
+```
+curl -X POST http://${host_address}:8083/booking/test/2/2
+```
+Check the hotel booking status with
+```
+curl http://${host_address}:8081/bookings
+```
+Check the car booking status with
+```
+curl http://${host_address}:8082/bookings
+
+```
+
+2. Booking 3 rooms and 2 cars, this booking will cause the hotel order failed and trigger the compensate operation with car booking.
+```
+curl -X POST http://${host_address}:8083/booking/test/3/2
+```
+Check the hotel booking status with
+```
+curl http://${host_address}:8081/bookings
+```
+Check the car booking status with
+```
+curl http://${host_address}:8082/bookings
+```
+The second car booking will be marked with **cancel:true**
\ No newline at end of file