From 67305772daeacf4d100d8c45d66f674c3a50d733 Mon Sep 17 00:00:00 2001 From: xstefank Date: Mon, 13 Nov 2017 23:35:42 +0100 Subject: [PATCH] add mongodb to query-service --- .gitignore | 3 ++ docker-compose-eventuate-local.yml | 11 ++++++- query-service/build.gradle | 1 + .../controller/QueryController.java | 31 +++++++++++++++++++ .../eventuate/queryservice/model/Order.java | 31 +++++++++++++++++++ .../repository/OrderRepository.java | 8 +++++ .../subscribtion/OrderEventSubscriber.java | 2 +- .../src/main/resources/application.properties | 2 ++ 8 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 query-service/src/main/java/org/learn/eventuate/queryservice/controller/QueryController.java create mode 100644 query-service/src/main/java/org/learn/eventuate/queryservice/model/Order.java create mode 100644 query-service/src/main/java/org/learn/eventuate/queryservice/repository/OrderRepository.java diff --git a/.gitignore b/.gitignore index 39d5aaf..6afa983 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,6 @@ gradle-app.setting # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 # gradle/wrapper/gradle-wrapper.properties +# mongo +data + diff --git a/docker-compose-eventuate-local.yml b/docker-compose-eventuate-local.yml index 213fc16..c68292f 100644 --- a/docker-compose-eventuate-local.yml +++ b/docker-compose-eventuate-local.yml @@ -7,7 +7,6 @@ services: - 2888:2888 - 3888:3888 - kafka: image: eventuateio/eventuateio-local-kafka:0.14.0 ports: @@ -141,3 +140,13 @@ services: EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181 DEBUG: kafka-node:* + mongodb: + image: mongo:3.0.15 + environment: + - MONGO_DATA_DIR=/data/db + - MONGO_LOG_DIR=/dev/null + volumes: + - ./data/db:/data/db + ports: + - 27017:27017 + #command: mongod --smallfiles --logpath=/dev/null # --quiet diff --git a/query-service/build.gradle b/query-service/build.gradle index a94662d..c9e4684 100644 --- a/query-service/build.gradle +++ b/query-service/build.gradle @@ -32,6 +32,7 @@ dependencies { compile "io.eventuate.local.java:eventuate-local-java-embedded-cdc-autoconfigure:${eventuateLocalVersion}" + compile("org.springframework.boot:spring-boot-starter-data-mongodb") compile "io.springfox:springfox-swagger2:2.2.2" compile 'io.springfox:springfox-swagger-ui:2.2.2' compileOnly 'org.projectlombok:lombok:1.16.18' diff --git a/query-service/src/main/java/org/learn/eventuate/queryservice/controller/QueryController.java b/query-service/src/main/java/org/learn/eventuate/queryservice/controller/QueryController.java new file mode 100644 index 0000000..a907047 --- /dev/null +++ b/query-service/src/main/java/org/learn/eventuate/queryservice/controller/QueryController.java @@ -0,0 +1,31 @@ +package org.learn.eventuate.queryservice.controller; + +import org.learn.eventuate.coreapi.ProductInfo; +import org.learn.eventuate.queryservice.model.Order; +import org.learn.eventuate.queryservice.repository.OrderRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class QueryController { + + public static final Logger log = LoggerFactory.getLogger(QueryController.class); + + @Autowired + private OrderRepository orderRepository; + + @GetMapping("/test") + public void getTest() { + orderRepository.deleteAll(); + + log.info("trying to persist entity"); + orderRepository.save(new Order("testId", new ProductInfo("testProduct", "testComment", 100))); + orderRepository.save(new Order("testId2", new ProductInfo("testProduct2", "testComment2", 200))); + + log.info("trying to retrieve data"); + orderRepository.findAll().forEach(System.out::println); + } +} diff --git a/query-service/src/main/java/org/learn/eventuate/queryservice/model/Order.java b/query-service/src/main/java/org/learn/eventuate/queryservice/model/Order.java new file mode 100644 index 0000000..bae6d55 --- /dev/null +++ b/query-service/src/main/java/org/learn/eventuate/queryservice/model/Order.java @@ -0,0 +1,31 @@ +package org.learn.eventuate.queryservice.model; + +import org.learn.eventuate.coreapi.ProductInfo; +import org.springframework.data.annotation.Id; + +public class Order { + + @Id + private String id; + + private String orderId; + private ProductInfo productInfo; + + public Order(String orderId, ProductInfo productInfo) { + this.orderId = orderId; + this.productInfo = productInfo; + } + + public String getOrderId() { + return orderId; + } + + public ProductInfo getProductInfo() { + return productInfo; + } + + @Override + public String toString() { + return String.format("id: %s, product - %s", orderId, productInfo.getProductId()); + } +} diff --git a/query-service/src/main/java/org/learn/eventuate/queryservice/repository/OrderRepository.java b/query-service/src/main/java/org/learn/eventuate/queryservice/repository/OrderRepository.java new file mode 100644 index 0000000..2264a24 --- /dev/null +++ b/query-service/src/main/java/org/learn/eventuate/queryservice/repository/OrderRepository.java @@ -0,0 +1,8 @@ +package org.learn.eventuate.queryservice.repository; + +import org.learn.eventuate.queryservice.model.Order; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface OrderRepository extends MongoRepository { + +} diff --git a/query-service/src/main/java/org/learn/eventuate/queryservice/subscribtion/OrderEventSubscriber.java b/query-service/src/main/java/org/learn/eventuate/queryservice/subscribtion/OrderEventSubscriber.java index e68221c..1f5a0cd 100644 --- a/query-service/src/main/java/org/learn/eventuate/queryservice/subscribtion/OrderEventSubscriber.java +++ b/query-service/src/main/java/org/learn/eventuate/queryservice/subscribtion/OrderEventSubscriber.java @@ -16,7 +16,7 @@ public class OrderEventSubscriber { @EventHandlerMethod public void onOrderFiledEvent(DispatchedEvent dispatchedEvent) { - log.info("on OrderFiledEventXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); + } } diff --git a/query-service/src/main/resources/application.properties b/query-service/src/main/resources/application.properties index 2c48857..be19414 100644 --- a/query-service/src/main/resources/application.properties +++ b/query-service/src/main/resources/application.properties @@ -9,3 +9,5 @@ spring.jpa.hibernate.ddl-auto=create queryservice.orderUrl=http://${ORDER_SERVICE_URL:order-service}:8080 queryservice.shipmentUrl=http://${SHIPMENT_SERVICE_URL:shipment-service}:8080 queryservice.invoiceUrl=http://${INVOICE_SERVICE_URL:invoice-service}:8080 + +spring.data.mongodb.uri=mongodb://mongodb:27017/local