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