From 44625f39a73ff62b56dabce8a97f46937342f92c Mon Sep 17 00:00:00 2001 From: Pranav Patil Date: Mon, 27 Aug 2018 01:18:28 -0500 Subject: [PATCH] Updating sqldb-service to data-service with webflux services --- README.md | 31 +++-- analytics-service/README.md | 16 +++ analytics-service/build.gradle | 3 +- .../service/AnalyticsServiceApplication.java | 8 ++ .../service/api/FinanceController.java | 29 +++- .../emprovise/service/dto/StockDetail.java | 8 +- .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 1 - authorization-service/README.md | 57 +++++++- authorization-service/build.gradle | 4 +- .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 2 - config-service/README.md | 4 +- config-service/build.gradle | 2 +- .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 1 - .../main/resources/shared/data-service.yml | 34 +++++ data-service/README.md | 65 +++++++++ data-service/build.gradle | 129 ++++++++++++++++++ data-service/config/mongod.cfg | 11 ++ .../images/reactive-streams-package.png | Bin 0 -> 28358 bytes .../dataservice/DataServiceApplication.java | 38 ++++++ .../dataservice/batch/JobConfiguration.java | 106 ++++++++++++++ .../config/WebFluxSecurityConfig.java | 54 ++++++++ .../service/dataservice/dto/StockDetail.java | 76 +++++++++++ .../dataservice/mapper/StockDetailMapper.java | 17 +++ .../service/dataservice}/model/Stock.java | 41 +++--- .../service/dataservice/model/StockEvent.java | 43 ++++++ .../repository/StockRepository.java | 10 ++ .../dataservice/resource/StockResource.java | 55 ++++++++ .../dataservice/service/StockController.java | 43 ++++++ .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 2 - .../src/main/resources/logback-spring.xml | 0 .../DataServiceApplicationTests.java | 4 +- discovery-service/README.md | 19 +++ discovery-service/build.gradle | 2 +- .../images/client-side-pattern.png | Bin 0 -> 271198 bytes .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 1 - finance-service/README.md | 17 +++ finance-service/build.gradle | 2 +- .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 1 - gateway-service/README.md | 2 +- gateway-service/build.gradle | 2 +- .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 1 - monitor-service/README.md | 4 +- monitor-service/build.gradle | 2 +- .../src/main/resources/application.properties | 5 + .../src/main/resources/bootstrap.yml | 1 - settings.gradle | 2 +- sqldb-service/build.gradle | 54 -------- .../sqldbservice/SqldbServiceApplication.java | 14 -- .../repository/StockRepository.java | 11 -- .../resource/PostgreDBServiceResource.java | 38 ------ .../src/main/resources/application.properties | 12 -- 58 files changed, 924 insertions(+), 195 deletions(-) create mode 100644 analytics-service/README.md rename sqldb-service/src/main/java/com/emprovise/service/sqldbservice/dto/StockDetails.java => analytics-service/src/main/java/com/emprovise/service/dto/StockDetail.java (87%) create mode 100644 analytics-service/src/main/resources/application.properties create mode 100644 authorization-service/src/main/resources/application.properties create mode 100644 config-service/src/main/resources/application.properties create mode 100644 config-service/src/main/resources/shared/data-service.yml create mode 100644 data-service/README.md create mode 100644 data-service/build.gradle create mode 100644 data-service/config/mongod.cfg create mode 100644 data-service/images/reactive-streams-package.png create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/DataServiceApplication.java create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/batch/JobConfiguration.java create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/config/WebFluxSecurityConfig.java create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/dto/StockDetail.java create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/mapper/StockDetailMapper.java rename {sqldb-service/src/main/java/com/emprovise/service/sqldbservice => data-service/src/main/java/com/emprovise/service/dataservice}/model/Stock.java (66%) create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/model/StockEvent.java create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/repository/StockRepository.java create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/resource/StockResource.java create mode 100644 data-service/src/main/java/com/emprovise/service/dataservice/service/StockController.java create mode 100644 data-service/src/main/resources/application.properties rename {sqldb-service => data-service}/src/main/resources/bootstrap.yml (83%) rename {sqldb-service => data-service}/src/main/resources/logback-spring.xml (100%) rename sqldb-service/src/test/java/com/emprovise/service/sqldbservice/SqldbServiceApplicationTests.java => data-service/src/test/java/com/emprovise/service/dataservice/DataServiceApplicationTests.java (75%) create mode 100644 discovery-service/README.md create mode 100644 discovery-service/images/client-side-pattern.png create mode 100644 discovery-service/src/main/resources/application.properties create mode 100644 finance-service/README.md create mode 100644 finance-service/src/main/resources/application.properties create mode 100644 gateway-service/src/main/resources/application.properties create mode 100644 monitor-service/src/main/resources/application.properties delete mode 100644 sqldb-service/build.gradle delete mode 100644 sqldb-service/src/main/java/com/emprovise/service/sqldbservice/SqldbServiceApplication.java delete mode 100644 sqldb-service/src/main/java/com/emprovise/service/sqldbservice/repository/StockRepository.java delete mode 100644 sqldb-service/src/main/java/com/emprovise/service/sqldbservice/resource/PostgreDBServiceResource.java delete mode 100644 sqldb-service/src/main/resources/application.properties diff --git a/README.md b/README.md index 77b227a..5469eef 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,24 @@ # Spring Micro Services Showcase -[Spring Boot](https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/) demonstrates the capabilities of spawning but micro services for all the functionality -including MVC, JPA, Spring Security. -In this showcase you'll see the following in action: +[Microservices](https://microservices.io/) is an architectural style that structures an application as a collection of loosely coupled services, where each service implements business capabilities. A microservice runs in its own process and communicates other services via HTTP API. Every microservice can be deployed, upgraded, scaled, and restarted independently of the other services in an application. +It enables continuous delivery/deployment of large, complex applications. It allows better component isolation and high resilience against component failures. Smaller components in microservices can be scaled easily to meet increasing demand for a specific component. It increases developer independence and allows parallel development across multiple smaller teams. +Microservices brings additional complexity as the developers have to mitigate fault tolerance, network latency, and deal with load balancing. Also deployment and testing of such a distributed system is complicated and tedious. -* [Zuul Server](https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul.html) -* [Eureka Server](https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance) +[Spring Boot](https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/) enables to spawn stand-alone, production-grade Spring-based Applications with very little configuration, hence it is widely used in micro services arena. It is preconfigured with the Spring's standard configuration and has an embedded Tomcat or Jetty to provide full fledged server functionality. +[Spring Cloud](http://projects.spring.io/spring-cloud/) framework, provides a collection of tools and solutions to some of the commonly encountered patterns when building distributed systems. It addresses solutions for some of the common problems in distributed systems including Configuration management, Service discovery, Circuit breakers and Distributed sessions. +[Docker](https://www.docker.com/) is a open platform to create, deploy, and run applications as a lightweight, portable, self-sufficient container, which can run virtually anywhere. +These tools and platforms form the foundation for spring micro services project. -To run the application: -------------------- -From the command line with Git and Gradle: +The spring micro services showcase contains the following services in action: - $ git clone https://github.com/pranav-patil/spring-microservices.git - $ cd spring-microservices - $ gradle clean build - $ java -jar config-server/build/libs/config-server-0.0.1-SNAPSHOT.jar +* [Elastic Stack](elastic-stack/README.md): ElasticSearch-Logstash-Kibana provides log storage and management. +* [Kafka Broker](kafka-broker/README.md): Kafka Message broker provides messaging capabilities to zipkin trace messages to Zipkin server. +* [Zipkin Service](zipkin-service/README.md): Zipkin enables to trace requests spanning across multiple services. + +* [Config Service](config-service/README.md): Configuration service provides access to spring **application.yml** configuration files for corresponding service stored in its centralized (currently local) location. +* [Discovery Service](discovery-service/README.md): Eureka discovery service allows micro services to find and communicate with each other. +* [Authorization Service](authorization-service/README.md): Authorization service is responsible for providing OAuth2 access tokens after authentication and validating request access tokens before allowing access to the authorized services. +* [Data Service](data-service/README.md): Data service provides reactive services using Spring WebFlux to fetch various data (currently stock data). +* [Finance Service](finance-service/README.md): Finance service provides services to fetch financial data especially stock details. +* [Analytics Service](analytics-service/README.md): Analytics services consume data from various sources, mainly finance-service and data-service and provide analytical details regarding the corresponding data. +* [Monitor Service](monitor-service/README.md): Monitor service mainly gathers hystrix circuit breaker data from finance and analytics services, and displays the [Hystrix Dashboard](https://github.com/Netflix-Skunkworks/hystrix-dashboard). diff --git a/analytics-service/README.md b/analytics-service/README.md new file mode 100644 index 0000000..8e087cb --- /dev/null +++ b/analytics-service/README.md @@ -0,0 +1,16 @@ +Analytics Service +============= + +Analytics service provides various services to access analytical data from diverse resources. Currently analytics services for only financial or stock data are available. +It mainly showcases [OpenFeign Clients](https://github.com/OpenFeign/feign), [Netflix Hystrix](https://github.com/Netflix/Hystrix) circuit breakers, [Spring Cloud Sleuth](https://cloud.spring.io/spring-cloud-sleuth/) with Zipkin and [Spring Webflux](https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html) clients. + +### Running the Analytics Service + +The **CONFIG_SERVICE_PASSWORD** is a required parameter to run analytics-service as it enables to access analytics-service.yml configuration file from the [config-service](/../config-service/README.md). +The **ANALYTICS_SERVICE_PASSWORD** is the client secret required to access oauth2 token for client id analytics-service. Use the same **ANALYTICS_SERVICE_PASSWORD** configured in [authorization-service](/../authorization-service/README.md). +Optionally **spring.profiles.active** can be passed with value **prod** which enables logback to send all logs to [Elastic Stack](/../elastic-stack/README.md) instead of logging in the console by default. + + $ java -jar analytics-service/build/libs/analytics-service-0.0.1-SNAPSHOT.jar + -DCONFIG_SERVICE_PASSWORD=xxxx + -DANALYTICS_SERVICE_PASSWORD=yyyy + -Dspring.profiles.active=prod diff --git a/analytics-service/build.gradle b/analytics-service/build.gradle index c887420..3ad604f 100644 --- a/analytics-service/build.gradle +++ b/analytics-service/build.gradle @@ -35,6 +35,7 @@ dependencies { compile('org.springframework.boot:spring-boot-starter-security') compile('org.springframework.boot:spring-boot-starter-data-rest') compile('org.springframework.boot:spring-boot-starter-web') + compile('org.springframework.boot:spring-boot-starter-webflux') compile('org.springframework.cloud:spring-cloud-starter-openfeign') compile('org.springframework.cloud:spring-cloud-starter-oauth2') compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client') @@ -58,7 +59,7 @@ dependencyManagement { } processResources { - filesMatching("**/bootstrap.yml") { + filesMatching("**/application.properties") { expand(project.properties) } } diff --git a/analytics-service/src/main/java/com/emprovise/service/AnalyticsServiceApplication.java b/analytics-service/src/main/java/com/emprovise/service/AnalyticsServiceApplication.java index 8bd142a..1e86518 100644 --- a/analytics-service/src/main/java/com/emprovise/service/AnalyticsServiceApplication.java +++ b/analytics-service/src/main/java/com/emprovise/service/AnalyticsServiceApplication.java @@ -6,6 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.security.oauth2.client.feign.OAuth2FeignRequestInterceptor; import org.springframework.context.annotation.Bean; @@ -15,6 +16,7 @@ import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableOAuth2Client; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; +import org.springframework.web.reactive.function.client.WebClient; @SpringBootApplication @EnableDiscoveryClient @@ -44,4 +46,10 @@ public RequestInterceptor oauth2FeignRequestInterceptor(){ public OAuth2RestTemplate clientCredentialsRestTemplate() { return new OAuth2RestTemplate(clientCredentialsResourceDetails()); } + + @Bean + @LoadBalanced + public WebClient.Builder loadBalancedWebClientBuilder() { + return WebClient.builder(); + } } diff --git a/analytics-service/src/main/java/com/emprovise/service/api/FinanceController.java b/analytics-service/src/main/java/com/emprovise/service/api/FinanceController.java index 02edca4..9c26ca6 100644 --- a/analytics-service/src/main/java/com/emprovise/service/api/FinanceController.java +++ b/analytics-service/src/main/java/com/emprovise/service/api/FinanceController.java @@ -1,28 +1,49 @@ package com.emprovise.service.api; import com.emprovise.service.client.FinanceServiceClient; +import com.emprovise.service.dto.StockDetail; import com.emprovise.service.dto.StockDetailDTO; import com.google.gson.Gson; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; +import org.springframework.cloud.netflix.hystrix.HystrixCommands; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Flux; @EnableEurekaClient @RestController +@RequestMapping("/finance") public class FinanceController { @Autowired private FinanceServiceClient financeServiceClient; + @Autowired + private WebClient.Builder webClientBuilder; - @RequestMapping("/finance") - public String finance() { - StockDetailDTO stockDetailDTO = financeServiceClient.getFinanceService("MSFT", "60min"); + @GetMapping("/stock/{symbol}") + public String getStock(@PathVariable String symbol) { + StockDetailDTO stockDetailDTO = financeServiceClient.getFinanceService(symbol, "60min"); Gson gson = new Gson(); return gson.toJson(stockDetailDTO); } - @RequestMapping("/greeting/view") + @GetMapping("/stock/summary/{name}") + public Flux getStockSummary(@PathVariable String name) { + Flux stockDetailFlux = webClientBuilder.build() + .get().uri("http://data-service/stocks/name/{name}", name) + .retrieve().bodyToFlux(StockDetail.class); + + return HystrixCommands.from(stockDetailFlux) + .fallback(Flux.just(new StockDetail())) + .commandName("getStockSummary") + .toFlux(); + } + + @GetMapping("/greeting") public String greeting() { return financeServiceClient.greeting(); } diff --git a/sqldb-service/src/main/java/com/emprovise/service/sqldbservice/dto/StockDetails.java b/analytics-service/src/main/java/com/emprovise/service/dto/StockDetail.java similarity index 87% rename from sqldb-service/src/main/java/com/emprovise/service/sqldbservice/dto/StockDetails.java rename to analytics-service/src/main/java/com/emprovise/service/dto/StockDetail.java index b4ec932..c903894 100644 --- a/sqldb-service/src/main/java/com/emprovise/service/sqldbservice/dto/StockDetails.java +++ b/analytics-service/src/main/java/com/emprovise/service/dto/StockDetail.java @@ -1,17 +1,17 @@ -package com.emprovise.service.sqldbservice.dto; +package com.emprovise.service.dto; import java.util.Date; -public class StockDetails { +public class StockDetail { private String stockName; private Double high; private Double low; private Double open; private Double close; - private Date date = new Date(); + private Date date; - public StockDetails() { + public StockDetail() { } public String getStockName() { diff --git a/analytics-service/src/main/resources/application.properties b/analytics-service/src/main/resources/application.properties new file mode 100644 index 0000000..c2b6f7c --- /dev/null +++ b/analytics-service/src/main/resources/application.properties @@ -0,0 +1,5 @@ +# ---------------------------------------- +# Gradle Project Properties +# ---------------------------------------- + +info.build.version=${version?:1.0} diff --git a/analytics-service/src/main/resources/bootstrap.yml b/analytics-service/src/main/resources/bootstrap.yml index b25f36d..e9e1668 100644 --- a/analytics-service/src/main/resources/bootstrap.yml +++ b/analytics-service/src/main/resources/bootstrap.yml @@ -8,4 +8,3 @@ spring: username: user password: ${CONFIG_SERVICE_PASSWORD} -info.build.version: ${version?:1.0} diff --git a/authorization-service/README.md b/authorization-service/README.md index 1d0a484..64dddf1 100644 --- a/authorization-service/README.md +++ b/authorization-service/README.md @@ -1,7 +1,59 @@ Authorization Service ============= +## OAuth 2.0 -### Running the application +OAuth 2.0 is the industry-standard protocol for authorization. The OAuth 2.0 specification defines a delegation protocol that is useful for conveying authorization decisions (via a token) across a network of web-enabled applications and APIs. +OAuth 2.0 is not an authentication protocol and is not primarily used to identify a user. Although it is essential to authenticate both the user and the client in any authorization flow defined by the protocol. +There are number of grant types/methods for a client application to acquire an access token which can be used to authenticate a request to an API endpoint. +The client authentication enforces the use of the API only by known clients. On contrary, the serialized access token once generated, is not bound to a specific client directly. + +## OAuth2 Roles + +* **Resource owner (the User)**: An entity capable of granting access to a protected resource. Also referred as an end-user. +* **Resource server (the API server)**: The server hosting the protected resources, capable of accepting and responding to protected resource requests using access tokens. +* **Client**: An application making protected resource requests on behalf of the resource owner and with its authorization. +* **Authorization server**: The server issuing access tokens to the client after successfully authenticating the resource owner and obtaining authorization. + +## Grant Types + +When a client application wants access to the resources of a resource owner hosted on a resource server, the client application must first obtain an authorization grant. OAuth2 provides [several authorization grants](https://alexbilbie.com/guide-to-oauth-2-grants/). Each grant type serves a different purpose and is used in a different way. Below are OAuth2 grant types: + +* **Authorization Code**: + The client redirects the user to the authorization server with parameters, response_type as code, client_id, redirect_uri and scope. The authorization server validates the request and asks user to login. The user login into the authorization server and approves the client. Upon user's approval the client is redirected to the redirect URI with parameters, state and authorization code. The client then sends a POST request to the authorization server with parameters, grant_type as authorization_code, client_id, client_secret, redirect_uri and code with the authorization code from the query string. The authorization server responds with a JSON object containing token_type as Bearer, expires_in, access_token and refresh_token. + +* **Implicit**: + The implicit grant is intended to be used for single page web apps which can’t keep client secret because all of the application code and storage is easily accessible. Here the authorization server returns an access token instead of an authorization code. The client redirects the user to the authorization server with parameters, response_type as token, client_id, redirect_uri and scope. The authorization server validates the request and asks user to login. The user login into the authorization server and approves the client. Upon user's approval the client is redirected to the redirect URI with parameters, containing token_type as Bearer, expires_in and access_token. It does not return a refresh token. + +* **Resource Owner Password Credentials**: + It is mainly used by trusted first party clients. The client asks the user for their authorization credentials (username and password). The client then sends a POST request to authorization server with parameters, grant_type as password, client_id, client_secret, scope, username and password. The authorization server responds with a JSON object containing token_type as Bearer, expires_in, access_token and refresh_token. + +* **Client Credentials**: + It is used for machine-to-machine authentication where no specific user's permission is required to access data. The client sends a POST request to the authorization server with parameters, grant_type as client_credentials, client_id, client_secret and scope. The authorization server responds with a JSON object containing token_type as Bearer, expires_in and access_token. + +* **Refresh token**: + It is used to get a new access token after expiration of current access token. The client sends a POST request to the authorization server with parameters, grant_type as refresh_token, refresh_token, client_id, client_secret and scope. The authorization server will respond with a JSON object containing token_type as Bearer, expires_in, access_token and refresh_token. + +### Installation and Running of PostgreSQL Server + +* Download latest [Windows PostgreSQL Installer](https://www.postgresql.org/download/windows/) and follow windows installation steps. +* Alternatively, can download [Windows PostgreSQL Binary Archive](https://www.enterprisedb.com/download-postgresql-binaries) and extract the zip file. POSTGRE_SQL_HOME is the path to the unzipped PostgreSQL **pgsql** directory. +* Run the below [pg_ctl](https://www.postgresql.org/docs/9.5/static/app-pg-ctl.html) utility commands to register PostGreSQL as service in POSTGRE_SQL_HOME/pgsql/bin directory. +* Create a new user named **appuser** and new database named **testdb** using below **psql** commands. The user and password are added to auth-service.yml configuration file as spring.datasource.username (and password). +* PostGreSQL runs on default port 5432. + + + createuser --password postgres + pg_ctl.exe register -N postgres -U appuser -P secret -D "POSTGRE_SQL_HOME/pgsql/data" + pg_ctl.exe register -N postgres -D "POSTGRE_SQL_HOME/pgsql/data" + pg_ctl.exe -D "POSTGRE_SQL_HOME/pgsql/data" -l logfile start + psql -U postgres + psql -U appuser postgres + create user root with password 'verysecret'; + alter user root createdb; + create database testdb; + \c testdb; + +### Running the Authorization Service Pass the new AUTH_SERVICE_PASSWORD, CONFIG_SERVICE_PASSWORD from the [config-service](/../config-service/README.md) to access auth-service.yml configuration file, corresponding passwords FINANCE_SERVICE_PASSWORD for finance-service and ANALYTICS_SERVICE_PASSWORD for analytics-service respectively. @@ -125,3 +177,6 @@ Pass the new AUTH_SERVICE_PASSWORD, CONFIG_SERVICE_PASSWORD from the [config-ser } } +### Notes + +* Authorization service uses [MapStruct](http://mapstruct.org/) for mapping between domain object to DTO object. MapStruct requires [mapstruct-processor](https://github.com/mapstruct/mapstruct) to be configured in gradle to generate the corresponding Mapper implementation for defined MapStruct interface. Hence it is highly recommended to **run gradle build before running authorization-service** to avoid Spring NoSuchBeanDefinitionException for MapStruct autowirings. diff --git a/authorization-service/build.gradle b/authorization-service/build.gradle index a2f0b92..5e93cf5 100644 --- a/authorization-service/build.gradle +++ b/authorization-service/build.gradle @@ -42,7 +42,7 @@ dependencies { runtime('net.logstash.logback:logstash-logback-encoder:5.1') runtime('org.postgresql:postgresql:42.2.2') testCompile('org.springframework.boot:spring-boot-starter-test') - apt "org.mapstruct:mapstruct-processor:${mapstructVersion}" + apt "org.mapstruct:mapstruct-processor:${mapstructVersion}" } dependencyManagement { @@ -52,7 +52,7 @@ dependencyManagement { } processResources { - filesMatching("**/bootstrap.yml") { + filesMatching("**/application.properties") { expand(project.properties) } } diff --git a/authorization-service/src/main/resources/application.properties b/authorization-service/src/main/resources/application.properties new file mode 100644 index 0000000..c2b6f7c --- /dev/null +++ b/authorization-service/src/main/resources/application.properties @@ -0,0 +1,5 @@ +# ---------------------------------------- +# Gradle Project Properties +# ---------------------------------------- + +info.build.version=${version?:1.0} diff --git a/authorization-service/src/main/resources/bootstrap.yml b/authorization-service/src/main/resources/bootstrap.yml index fc8d7b4..91a8b2d 100644 --- a/authorization-service/src/main/resources/bootstrap.yml +++ b/authorization-service/src/main/resources/bootstrap.yml @@ -7,5 +7,3 @@ spring: fail-fast: true username: user password: ${CONFIG_SERVICE_PASSWORD} - -info.build.version: ${version?:1.0} diff --git a/config-service/README.md b/config-service/README.md index b41cb46..e16fee8 100644 --- a/config-service/README.md +++ b/config-service/README.md @@ -1,5 +1,7 @@ Config Service ============= + +[Configuration Service](https://cloud.spring.io/spring-cloud-config/) handles the configurations for all of the services through a simple point-to-point service call to retrieve those configurations. The configurations for micro services is stored in an environment and not as part of the project. It is a central place to manage external properties for applications across all environments. Configuration service ideally has a dedicated Git repository for the configuration of the corresponding environment (dev/test/production). ### Create your config.jks Keystore @@ -33,7 +35,7 @@ http://localhost:8888/decrypt Authorization Basic {BASE64-ENCODED user:CONFIG_SERVICE_PASSWORD} -### Running the application +### Running the Config Service Pass the CONFIG_KEY_PASSWORD and CONFIG_KEYSTORE_PASSWORD created from the above keytool command and new CONFIG_SERVICE_PASSWORD to secure access to shared configuration files. diff --git a/config-service/build.gradle b/config-service/build.gradle index 799ecde..c84b975 100644 --- a/config-service/build.gradle +++ b/config-service/build.gradle @@ -44,7 +44,7 @@ dependencyManagement { } processResources { - filesMatching("**/bootstrap.yml") { + filesMatching("**/application.properties") { expand(project.properties) } } diff --git a/config-service/src/main/resources/application.properties b/config-service/src/main/resources/application.properties new file mode 100644 index 0000000..c2b6f7c --- /dev/null +++ b/config-service/src/main/resources/application.properties @@ -0,0 +1,5 @@ +# ---------------------------------------- +# Gradle Project Properties +# ---------------------------------------- + +info.build.version=${version?:1.0} diff --git a/config-service/src/main/resources/bootstrap.yml b/config-service/src/main/resources/bootstrap.yml index b31bb79..32b1468 100644 --- a/config-service/src/main/resources/bootstrap.yml +++ b/config-service/src/main/resources/bootstrap.yml @@ -9,4 +9,3 @@ encrypt: alias: configkey secret: ${CONFIG_KEY_PASSWORD} -info.build.version: ${version?:1.0} diff --git a/config-service/src/main/resources/shared/data-service.yml b/config-service/src/main/resources/shared/data-service.yml new file mode 100644 index 0000000..ac15f41 --- /dev/null +++ b/config-service/src/main/resources/shared/data-service.yml @@ -0,0 +1,34 @@ + +server: + port: 8300 + +spring: + data: + mongodb: + uri: mongodb://127.0.0.1/test + datasource: + url: jdbc:postgresql://localhost:5432/testdb + username: appuser + password: '{cipher}AQCF0y3wYLvKtMEJE9Bmxcb8N2xRRkMqMl4OdkT2G1pfhhKy9/lpx+8bhaxCiiSnwfCiN2jF4FDCNrywhoWvlB6xcaT1Am79sDuex4J2ukvVQ+Hb4fsdozKB+vh3PT9feKp2LiKTCE/URtomh3Ym0ZtZak9f4vMcg5y/1WDuEshycfA3J2hO2K9UfldS1/nvKCv42v++//t4wJyRLH4C8k6eP7MToiOIzzT4L8IFu+LglBMFOARyvzn1uoaRZWtYr9j7S+vDH5Y7VMO3Uqf82ebqXaIDDaybm5FOqpjlMCUUBqPnKfzwtychM2BftYmc6CmqJuw+PqBRNuRqSwMTwkYxtmdSQnGpkdow4Le3ynpX/vtdzCB64ruSwhbOZnNMZug=' + testWhileIdle: true + validationQuery: SELECT 1 + jpa: + show: true + hibernate: + ddl-auto: update + naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy + properties: + hibernate: + jdbc: + lob: + non_contextual_creation: true + dialect: org.hibernate.dialect.PostgresPlusDialect + +eureka: + client: + registerWithEureka: true + fetchRegistry: true + serviceUrl: + defaultZone: http://localhost:8302/eureka + instance: + hostname: localhost diff --git a/data-service/README.md b/data-service/README.md new file mode 100644 index 0000000..d1d0d2f --- /dev/null +++ b/data-service/README.md @@ -0,0 +1,65 @@ +Data Service +============= + +[Reactive Streams API](http://www.reactive-streams.org/) specification provides prescription for building modern, cloud scale architectures. +Reactive systems should be **responsive** in a timely manner, **resilient** in spite of failures, **elastic** adjusting under varying workload and (asynchronous) **message driven** ensuring loose coupling, isolation and location transparency. +In reactive streams failures are handled with callbacks. **Back pressure** is a key concept in reactive applications which empowers the client to specify the amount of records they can receive, preventing thread blocking in the call chain and to ensure producers don’t overwhelm consumers. +It supports Non-Blocking calls by working with limited a number of threads, thus conserving resources with less thread switching. +The Reactive Streams API consists of just 4 interfaces. + +* **Publisher**: A Publisher is the producer the of data, according to the demand requested by its Subscribers. +* **Subscriber**: The consumer of the data produced by a Publisher. +* **Subscription**: A Subscription is the result of a Subscriber subscribing to a Publisher. It is the means that a Subscriber can utilize to request more data. +* **Processor**: It represents the processing stage—which is both a Subscriber and a Publisher and obeys the contracts of both. + +When an instance of Subscriber is passed on to a Publisher, it will receive a call on its method, onSubscribe(Subscription), but it will not start receiving any events yet. Items will only be received by the Subscriber when it calls the method request(long) in its Subscription, signaling a demand for new items. The Subscriber can receive data through three distinct methods: + +* Subscriber.onNext() is invoked with the next item and can be called n times, with n being the long value passed on the method request(long) of its Subscription. +* Subscriber.onError() is invoked when an error occurred while processing the stream. +* Subscriber.onComplete() is invoked when there is no further data to be processed. + +In the case of onError() and onComplete(), no new data will be emitted, even if the method request(long) is called again. + + ![Reactive Streams API](images/reactive-streams-package.png) + +There are many implementations of Reactive Streams API available namely, RxJava, Reactor and Akka Streams. +[RxJava](https://github.com/ReactiveX/RxJava) is one of the Java implementation of the Reactive Streams API from the ReactiveX project. +[Reactor](https://projectreactor.io/) is a Reactive Streams compliant implementation from Pivotal and focuses on server-side Java, developed in close collaboration with Spring. +[Akka Streams](https://doc.akka.io/docs/akka/current/stream/index.html) although fully implements the [Reactive Streams specification](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1/README.md#specification), the Akka Streams API is completely decoupled from the Reactive Streams interfaces. +Java 9 Reactive streams is part of the Java API and the interfaces are under [java.util.concurrent.Flow](https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.html) class. + +Spring uses [Reactor](https://projectreactor.io/) to further extend the basic Reactive Streams Publisher contract with the Flux and Mono composable API types. +[Spring WebFlux](https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html) framework provides support for reactive programming in Spring 5, offering developers the ability to create servers and clients that support HTTP and WebSockets using a reactive stack. +WebFlux supports both Annotation-based with @Controller as well as Functional, Java 8 lambda style routing and handling also known as Router Functions. +WebFlux has two implementations of Publisher interface: + +* **Mono**:It is a publisher which will produce only one value. It observes 0 or 1 item, with Mono hinting at most 0 items. +* **Flux**: It is a publisher that will produce multiple values, potentially unlimited values. It observes 0 to N items and eventually may or may not terminate successfully. + +### Installation and Running of MongoDB + +* Download latest [Windows MongoDB release](https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl) and extract the zip file. +* Create directories **data** and **logs** in MONGODB_HOME directory, were MONGODB_HOME is the path to the unzipped mongodb directory. +* Create file **mongo.log** in MONGODB_HOME/logs directory. +* Create **mongod.cfg** file using [MongoDB configuration options](https://docs.mongodb.com/v3.2/reference/configuration-options/) in MONGODB_HOME/bin directory. Alternatively copy **mongod.cfg** file from spring-microservices/data-service/config and add to MONGODB_HOME/bin directory. +* Find & edit the token **@logs@** with path "MONGODB_HOME\logs" and **@data@** with path "MONGODB_HOME\data". +* Go to MONGODB_HOME\bin directory and execute the command "mongod --config mongod.cfg" to run mongodb. +* MongoDB runs on default port 27017. + +All the above steps can be executed directly by running below runMongodb gradle task for windows. + + $ gradle runMongodb + + +### Running the Data Service + +The **CONFIG_SERVICE_PASSWORD** is a required parameter to run data-service as it enables to access data-service.yml configuration file from the [config-service](/../config-service/README.md). +Optionally **spring.profiles.active** can be passed with value **prod** which enables logback to send all logs to [Elastic Stack](/../elastic-stack/README.md) instead of logging in the console by default. + + $ java -jar data-service/build/libs/data-service-0.0.1-SNAPSHOT.jar + -DCONFIG_SERVICE_PASSWORD=xxxx + -Dspring.profiles.active=prod + +### Notes + +* Data service uses [MapStruct](http://mapstruct.org/) for mapping between domain object to DTO object. MapStruct requires [mapstruct-processor](https://github.com/mapstruct/mapstruct) to be configured in gradle to generate the corresponding Mapper implementation for defined MapStruct interface. Hence it is highly recommended to **run gradle build before running data-service** to avoid Spring NoSuchBeanDefinitionException for MapStruct autowirings. diff --git a/data-service/build.gradle b/data-service/build.gradle new file mode 100644 index 0000000..8369eb2 --- /dev/null +++ b/data-service/build.gradle @@ -0,0 +1,129 @@ +buildscript { + ext { + springBootVersion = '2.0.4.RELEASE' + mongodbVersion = '4.0.1' + } + repositories { + mavenCentral() + jcenter() + } + dependencies { + classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") + classpath("de.undercouch:gradle-download-task:3.4.3") + } +} + +plugins { + id "net.ltgt.apt" version "0.9" +} + +apply plugin: 'java' +apply plugin: 'org.springframework.boot' +apply plugin: 'io.spring.dependency-management' +apply plugin: 'de.undercouch.download' + +group = 'com.emprovise.service' +version = '0.0.1-SNAPSHOT' +sourceCompatibility = 1.8 + +repositories { + mavenCentral() + maven { url "https://repo.spring.io/milestone" } +} + +ext { + springCloudVersion = 'Finchley.RELEASE' + mapstructVersion = "1.2.0.Final" +} + +dependencies { + compile('org.springframework.boot:spring-boot-starter-data-jpa') + compile('org.springframework.boot:spring-boot-starter-data-mongodb-reactive') + compile('org.springframework.boot:spring-boot-starter-webflux') + compile('org.springframework.boot:spring-boot-starter-batch') + compile('org.springframework.boot:spring-boot-starter-security') + compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client') + compile('org.springframework.cloud:spring-cloud-starter-config') + compile('org.springframework.security:spring-security-core') + compile('org.springframework.security:spring-security-config') + compile "org.mapstruct:mapstruct-jdk8:${mapstructVersion}" + compile('org.slf4j:slf4j-api') + runtime('net.logstash.logback:logstash-logback-encoder:5.1') + runtime('org.postgresql:postgresql') + testCompile('org.springframework.boot:spring-boot-starter-test') + testCompile('io.projectreactor:reactor-test') + apt "org.mapstruct:mapstruct-processor:${mapstructVersion}" +} + +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" + } +} + +processResources { + filesMatching("**/application.properties") { + expand(project.properties) + } +} + +tasks.withType(JavaCompile) { + options.compilerArgs = [ + '-Amapstruct.suppressGeneratorTimestamp=true' + ] +} + +task runJar(type: JavaExec, dependsOn: jar) { + main = "-jar" + args jar.archivePath +} + +def pullCommonDir = new File(buildDir, 'repo') +pullCommonDir.mkdirs() +def mongodbHome = new File("${buildDir}/libs/mongodb-win32-x86_64-2008plus-ssl-${mongodbVersion}") + +task downloadMongoDB(type: Download) { + src "http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-${mongodbVersion}.zip" + dest "${buildDir}/repo" + overwrite false +} + +task extractMongoDB(dependsOn: downloadMongoDB) { + doLast { + if(!file("${mongodbHome}").exists()) { + copy { + from zipTree("${pullCommonDir}/mongodb-win32-x86_64-2008plus-ssl-${mongodbVersion}.zip") + into new File(buildDir, "libs") + } + } + } +} + +task configMongoDB(dependsOn: extractMongoDB) { + doLast { + def mongodbBinDir = new File("${mongodbHome}/bin", "mongod.cfg") + + if (!mongodbBinDir.exists()) { + println "setting up mongodb config file..." + + def mongodbDataDir = new File("${mongodbHome}", 'data') + mongodbDataDir.mkdirs() + + def mongodbLogDir = new File("${mongodbHome}", 'logs') + mongodbLogDir.mkdirs() + def mongodbLogFile = new File("${mongodbLogDir}/mongo.log") + + copy { + from "${projectDir.path}/config/mongod.cfg" + into "${mongodbHome}/bin" + filter { line -> line.replaceAll("@logs@", "${mongodbLogFile}".replace("\\", "/") ) } + filter { line -> line.replaceAll("@data@", "${mongodbDataDir}".replace("\\", "/")) } + } + } + } +} + +task runMongodb(type: Exec, dependsOn: configMongoDB) { + workingDir "${mongodbHome}/bin" + commandLine 'cmd', '/c', "mongod --config mongod.cfg" +} diff --git a/data-service/config/mongod.cfg b/data-service/config/mongod.cfg new file mode 100644 index 0000000..b2de680 --- /dev/null +++ b/data-service/config/mongod.cfg @@ -0,0 +1,11 @@ +systemLog: + destination: file + path: @logs@ + logAppend: true +storage: + dbPath: @data@ + journal: + enabled: true +net: + bindIp: 127.0.0.1 + port: 27017 diff --git a/data-service/images/reactive-streams-package.png b/data-service/images/reactive-streams-package.png new file mode 100644 index 0000000000000000000000000000000000000000..570380e4ea5ce6f004a6f1975f3c6b52422b06aa GIT binary patch literal 28358 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 literal 0 HcmV?d00001 diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/DataServiceApplication.java b/data-service/src/main/java/com/emprovise/service/dataservice/DataServiceApplication.java new file mode 100644 index 0000000..b2e9ca4 --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/DataServiceApplication.java @@ -0,0 +1,38 @@ +package com.emprovise.service.dataservice; + +import com.emprovise.service.dataservice.dto.StockDetail; +import com.emprovise.service.dataservice.resource.StockResource; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.context.annotation.Bean; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.web.reactive.function.server.RequestPredicates; +import org.springframework.web.reactive.function.server.RouterFunction; + +import static org.springframework.web.reactive.function.server.RequestPredicates.GET; +import static org.springframework.web.reactive.function.server.RequestPredicates.path; +import static org.springframework.web.reactive.function.server.RouterFunctions.nest; +import static org.springframework.web.reactive.function.server.RouterFunctions.route; +import static org.springframework.web.reactive.function.server.ServerResponse.ok; + +@EnableJpaRepositories(basePackages = "com.emprovise.service.dataservice.repository") +@SpringBootApplication +@EnableDiscoveryClient +public class DataServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(DataServiceApplication.class, args); + } + + @Bean + RouterFunction routes(StockResource stockResource) { + + return nest(path("/stocks"), + route(RequestPredicates.GET("/name/{name}"), + request -> ok().body(stockResource.findByName(request.pathVariable("name")), StockDetail.class)) + .andRoute(GET("/all"), + request -> ok().body(stockResource.all(), StockDetail.class)) + ); + } +} diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/batch/JobConfiguration.java b/data-service/src/main/java/com/emprovise/service/dataservice/batch/JobConfiguration.java new file mode 100644 index 0000000..4bc2346 --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/batch/JobConfiguration.java @@ -0,0 +1,106 @@ +package com.emprovise.service.dataservice.batch; + +import com.emprovise.service.dataservice.dto.StockDetail; +import com.emprovise.service.dataservice.resource.StockResource; +import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.batch.core.*; +import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; +import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; +import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; +import org.springframework.batch.core.launch.support.SimpleJobLauncher; +import org.springframework.batch.core.repository.JobRepository; +import org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean; +import org.springframework.batch.core.step.tasklet.Tasklet; +import org.springframework.batch.repeat.RepeatStatus; +import org.springframework.batch.support.transaction.ResourcelessTransactionManager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; +import java.util.Random; + +@Configuration +@EnableBatchProcessing +@EnableScheduling +public class JobConfiguration { + + @Autowired + private JobBuilderFactory jobBuilderFactory; + @Autowired + private StepBuilderFactory stepBuilderFactory; + @Autowired + private SimpleJobLauncher jobLauncher; + @Autowired + private StockResource stockResource; + private static Log logger = LogFactory.getLog(JobConfiguration.class); + + @Bean + public ResourcelessTransactionManager transactionManager() { + return new ResourcelessTransactionManager(); + } + + @Bean + public MapJobRepositoryFactoryBean mapJobRepositoryFactory(ResourcelessTransactionManager txManager) throws Exception { + MapJobRepositoryFactoryBean factory = new MapJobRepositoryFactoryBean(txManager); + factory.afterPropertiesSet(); + return factory; + } + + @Bean + public JobRepository jobRepository(MapJobRepositoryFactoryBean factory) throws Exception { + return factory.getObject(); + } + + @Bean + public SimpleJobLauncher jobLauncher(JobRepository jobRepository) { + SimpleJobLauncher launcher = new SimpleJobLauncher(); + launcher.setJobRepository(jobRepository); + return launcher; + } + + @Bean + public Job job() { + return jobBuilderFactory.get("job") + .start(startStep()) + .build(); + } + + @Bean + public Step startStep() { + return stepBuilderFactory.get("startStep") + .tasklet(addRandomStocksTasklet()).build(); + } + + @Bean + public Tasklet addRandomStocksTasklet() { + return (contribution, chunkContext) -> { + StockDetail stock = new StockDetail(); + stock.setStockName(RandomStringUtils.randomAlphabetic(10)); + Random random = new Random(); + stock.setStockName(RandomStringUtils.randomAlphabetic(10)); + stock.setHigh(random.doubles(0, (99999 + 1)).findFirst().getAsDouble()); + stock.setLow(random.doubles(0, (99999 + 1)).findFirst().getAsDouble()); + stock.setOpen(random.doubles(0, (99999 + 1)).findFirst().getAsDouble()); + stock.setClose(random.doubles(0, (99999 + 1)).findFirst().getAsDouble()); + stock.setDate(Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant())); + stockResource.add(stock).subscribe(System.out::println); + logger.info(String.format("Stock %s Added", stock.getStockName())); + return RepeatStatus.FINISHED; + }; + } + + @Scheduled(cron = "0/30 * * * * ?") + public void jobRunner() throws Exception { + JobParameters param = new JobParametersBuilder() + .addString("JobID", String.valueOf(System.currentTimeMillis())).toJobParameters(); + JobExecution execution = jobLauncher.run(job(), param); + System.out.println("Job finished with status :" + execution.getStatus()); + } +} diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/config/WebFluxSecurityConfig.java b/data-service/src/main/java/com/emprovise/service/dataservice/config/WebFluxSecurityConfig.java new file mode 100644 index 0000000..8e601a9 --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/config/WebFluxSecurityConfig.java @@ -0,0 +1,54 @@ +package com.emprovise.service.dataservice.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity; +import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; +import org.springframework.security.config.web.server.ServerHttpSecurity; +import org.springframework.security.core.userdetails.MapReactiveUserDetailsService; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.server.SecurityWebFilterChain; + +@Configuration +@EnableWebFluxSecurity +@EnableReactiveMethodSecurity +public class WebFluxSecurityConfig { + + @Bean + public MapReactiveUserDetailsService userDetailsService() { + + UserDetails user = User.withUsername("user") + .password(passwordEncoder().encode("password")) + .roles("USER").build(); + + UserDetails admin = User.withUsername("admin") + .password(passwordEncoder().encode("password")) + .roles("USER","ADMIN").build(); + + return new MapReactiveUserDetailsService(user, admin); + } + + @Bean + public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { + http.csrf() + .disable() + .authorizeExchange() + .pathMatchers(HttpMethod.POST, "/stocks/add") + .hasRole("ADMIN") + .pathMatchers("/**") + .permitAll() + .anyExchange().authenticated() + .and() + .httpBasic(); + return http.build(); + } + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } +} diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/dto/StockDetail.java b/data-service/src/main/java/com/emprovise/service/dataservice/dto/StockDetail.java new file mode 100644 index 0000000..3b4ddec --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/dto/StockDetail.java @@ -0,0 +1,76 @@ +package com.emprovise.service.dataservice.dto; + +import java.util.Date; + +public class StockDetail { + + private String stockName; + private Double high; + private Double low; + private Double open; + private Double close; + private Date date; + + public StockDetail() { + } + + public String getStockName() { + return stockName; + } + + public void setStockName(String stockName) { + this.stockName = stockName; + } + + public Double getHigh() { + return high; + } + + public void setHigh(Double high) { + this.high = high; + } + + public Double getLow() { + return low; + } + + public void setLow(Double low) { + this.low = low; + } + + public Double getOpen() { + return open; + } + + public void setOpen(Double open) { + this.open = open; + } + + public Double getClose() { + return close; + } + + public void setClose(Double close) { + this.close = close; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + @Override + public String toString() { + return "StockDetail{" + + "stockName='" + stockName + '\'' + + ", high=" + high + + ", low=" + low + + ", open=" + open + + ", close=" + close + + ", date=" + date + + '}'; + } +} diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/mapper/StockDetailMapper.java b/data-service/src/main/java/com/emprovise/service/dataservice/mapper/StockDetailMapper.java new file mode 100644 index 0000000..3f89cbd --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/mapper/StockDetailMapper.java @@ -0,0 +1,17 @@ +package com.emprovise.service.dataservice.mapper; + + +import com.emprovise.service.dataservice.dto.StockDetail; +import com.emprovise.service.dataservice.model.Stock; +import org.mapstruct.InheritInverseConfiguration; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; + +@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface StockDetailMapper { + + StockDetail mapToStockDetail(Stock stock); + + @InheritInverseConfiguration + Stock mapToStock(StockDetail userBean); +} diff --git a/sqldb-service/src/main/java/com/emprovise/service/sqldbservice/model/Stock.java b/data-service/src/main/java/com/emprovise/service/dataservice/model/Stock.java similarity index 66% rename from sqldb-service/src/main/java/com/emprovise/service/sqldbservice/model/Stock.java rename to data-service/src/main/java/com/emprovise/service/dataservice/model/Stock.java index 7115e54..82ad2d0 100644 --- a/sqldb-service/src/main/java/com/emprovise/service/sqldbservice/model/Stock.java +++ b/data-service/src/main/java/com/emprovise/service/dataservice/model/Stock.java @@ -1,39 +1,39 @@ -package com.emprovise.service.sqldbservice.model; +package com.emprovise.service.dataservice.model; -import javax.persistence.*; +import org.springframework.data.mongodb.core.mapping.Document; + +import javax.persistence.Id; import java.util.Date; -@Entity -@Table(name="stocks", catalog = "test") +@Document public class Stock { @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Integer id; - - @Column(name = "stock_name") + private String id; private String stockName; - - @Column(name = "high") private Double high; - - @Column(name = "low") private Double low; - - @Column(name = "open") private Double open; - - @Column(name = "close") private Double close; - - @Column(name = "date") private Date date; - public Integer getId() { + public Stock() { + } + + public Stock(String stockName, Double high, Double low, Double open, Double close, Date date) { + this.stockName = stockName; + this.high = high; + this.low = low; + this.open = open; + this.close = close; + this.date = date; + } + + public String getId() { return id; } - public void setId(Integer id) { + public void setId(String id) { this.id = id; } @@ -85,4 +85,3 @@ public void setDate(Date date) { this.date = date; } } - diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/model/StockEvent.java b/data-service/src/main/java/com/emprovise/service/dataservice/model/StockEvent.java new file mode 100644 index 0000000..3733166 --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/model/StockEvent.java @@ -0,0 +1,43 @@ +package com.emprovise.service.dataservice.model; + +import java.util.Date; + +public class StockEvent { + + private String stockId; + private Date date; + private Double current; + + public StockEvent() { + } + + public StockEvent(String stockId, Date date, Double current) { + this.stockId = stockId; + this.date = date; + this.current = current; + } + + public String getStockId() { + return stockId; + } + + public void setStockId(String stockId) { + this.stockId = stockId; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public Double getCurrent() { + return current; + } + + public void setCurrent(Double current) { + this.current = current; + } +} diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/repository/StockRepository.java b/data-service/src/main/java/com/emprovise/service/dataservice/repository/StockRepository.java new file mode 100644 index 0000000..1b08afa --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/repository/StockRepository.java @@ -0,0 +1,10 @@ +package com.emprovise.service.dataservice.repository; + +import com.emprovise.service.dataservice.model.Stock; +import org.springframework.data.mongodb.repository.ReactiveMongoRepository; +import reactor.core.publisher.Flux; + +public interface StockRepository extends ReactiveMongoRepository { + + Flux findByStockName(final String stockName); +} diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/resource/StockResource.java b/data-service/src/main/java/com/emprovise/service/dataservice/resource/StockResource.java new file mode 100644 index 0000000..3ebcb93 --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/resource/StockResource.java @@ -0,0 +1,55 @@ +package com.emprovise.service.dataservice.resource; + +import com.emprovise.service.dataservice.dto.StockDetail; +import com.emprovise.service.dataservice.mapper.StockDetailMapper; +import com.emprovise.service.dataservice.model.Stock; +import com.emprovise.service.dataservice.model.StockEvent; +import com.emprovise.service.dataservice.repository.StockRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.time.Duration; +import java.util.Date; +import java.util.Random; + +@Service +public class StockResource { + + @Autowired + private StockDetailMapper stockDetailMapper; + private final StockRepository stockRepository; + + StockResource(StockRepository stockRepository) { + this.stockRepository = stockRepository; + } + + public Flux events(String stockId) { + Random random = new Random(); + double current = random.doubles(0, (99999 + 1)).findFirst().getAsDouble(); + return Flux.generate(sink -> sink.next(new StockEvent(stockId, new Date(), current))) + .delayElements(Duration.ofSeconds(1)); + } + + public Mono findById(String id) { + return this.stockRepository.findById(id) + .map(stock -> stockDetailMapper.mapToStockDetail(stock)); + } + + public Flux findByName(String name) { + return this.stockRepository.findByStockName(name) + .map(stock -> stockDetailMapper.mapToStockDetail(stock)); + } + + public Flux all() { + Flux stocks = this.stockRepository.findAll(); + return stocks.map(stockDetailMapper::mapToStockDetail); + } + + public Mono add(StockDetail stockDetail) { + Stock stock = stockDetailMapper.mapToStock(stockDetail); + return this.stockRepository.insert(stock) + .map(stk -> stockDetailMapper.mapToStockDetail(stk)); + } +} diff --git a/data-service/src/main/java/com/emprovise/service/dataservice/service/StockController.java b/data-service/src/main/java/com/emprovise/service/dataservice/service/StockController.java new file mode 100644 index 0000000..9752550 --- /dev/null +++ b/data-service/src/main/java/com/emprovise/service/dataservice/service/StockController.java @@ -0,0 +1,43 @@ +package com.emprovise.service.dataservice.service; + +import com.emprovise.service.dataservice.dto.StockDetail; +import com.emprovise.service.dataservice.model.StockEvent; +import com.emprovise.service.dataservice.resource.StockResource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@RestController +@RequestMapping("/stocks") +public class StockController { + + @Autowired + private StockResource stockResource; + + @GetMapping(value = "/{id}/events", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + private Flux stockEventStream(@PathVariable String id) { + return stockResource.events(id); + } + + @GetMapping("/{id}") + private Mono getStockById(@PathVariable String id) { + return stockResource.findById(id); + } + +// @GetMapping("/{name}") +// private Flux getStockByName(@PathVariable String name) { +// return stockResource.findByName(name); +// } + + @GetMapping + private Flux getAllStocks() { + return stockResource.all(); + } + + @PostMapping("/add") + private Mono addStock(@RequestBody StockDetail stock) { + return stockResource.add(stock); + } +} diff --git a/data-service/src/main/resources/application.properties b/data-service/src/main/resources/application.properties new file mode 100644 index 0000000..c2b6f7c --- /dev/null +++ b/data-service/src/main/resources/application.properties @@ -0,0 +1,5 @@ +# ---------------------------------------- +# Gradle Project Properties +# ---------------------------------------- + +info.build.version=${version?:1.0} diff --git a/sqldb-service/src/main/resources/bootstrap.yml b/data-service/src/main/resources/bootstrap.yml similarity index 83% rename from sqldb-service/src/main/resources/bootstrap.yml rename to data-service/src/main/resources/bootstrap.yml index 41b4961..9de0a8d 100644 --- a/sqldb-service/src/main/resources/bootstrap.yml +++ b/data-service/src/main/resources/bootstrap.yml @@ -7,5 +7,3 @@ spring: fail-fast: true username: user password: ${CONFIG_SERVICE_PASSWORD} - -info.build.version: ${version?:1.0} diff --git a/sqldb-service/src/main/resources/logback-spring.xml b/data-service/src/main/resources/logback-spring.xml similarity index 100% rename from sqldb-service/src/main/resources/logback-spring.xml rename to data-service/src/main/resources/logback-spring.xml diff --git a/sqldb-service/src/test/java/com/emprovise/service/sqldbservice/SqldbServiceApplicationTests.java b/data-service/src/test/java/com/emprovise/service/dataservice/DataServiceApplicationTests.java similarity index 75% rename from sqldb-service/src/test/java/com/emprovise/service/sqldbservice/SqldbServiceApplicationTests.java rename to data-service/src/test/java/com/emprovise/service/dataservice/DataServiceApplicationTests.java index c933e83..d6148a1 100644 --- a/sqldb-service/src/test/java/com/emprovise/service/sqldbservice/SqldbServiceApplicationTests.java +++ b/data-service/src/test/java/com/emprovise/service/dataservice/DataServiceApplicationTests.java @@ -1,4 +1,4 @@ -package com.emprovise.service.sqldbservice; +package com.emprovise.service.dataservice; import org.junit.Test; import org.junit.runner.RunWith; @@ -7,7 +7,7 @@ @RunWith(SpringRunner.class) @SpringBootTest -public class SqldbServiceApplicationTests { +public class DataServiceApplicationTests { @Test public void contextLoads() { diff --git a/discovery-service/README.md b/discovery-service/README.md new file mode 100644 index 0000000..e6c9526 --- /dev/null +++ b/discovery-service/README.md @@ -0,0 +1,19 @@ +Discovery Service (Netflix Eureka) +============= + +Client-side service discovery allows services to find and communicate with each other without hard coding hostname and port. In [client side discovery pattern](https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/), the client is responsible for determining the network locations of available service instances and load balancing requests across them. The client first queries the service registry, which has list of all available service instances. The client then uses a load balancing algorithm to select one of the available service instances to make a request. +The drawback of client side discovery is that all clients must implement a certain logic to interact with the fixed service registry. This assumes an additional network round trip before making an actual request. +[Netflix Eureka](http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#_service_discovery_eureka_clients) Server is a service registry while Eureka Client is a Discovery client. It provides a REST API for managing service instance registration and for querying available instances. +With Netflix Eureka each client can simultaneously act as a server, to replicate its status to a connected peer. The client retrieves a list of all connected peers of a service registry and makes all further requests to any other services through a load-balancing algorithm. The client also sends a heartbeat signal to the registry. + + ![Client side Service Discovery](images/client-side-pattern.png) + +### Running the Discovery Service + +The **CONFIG_SERVICE_PASSWORD** is a required parameter to run discovery-service as it enables to access discovery-service.yml configuration file from the [config-service](/../config-service/README.md). +Optionally **spring.profiles.active** can be passed with value **prod** which enables logback to send all logs to [Elastic Stack](/../elastic-stack/README.md) instead of logging in the console by default. + + $ java -jar discovery-service/build/libs/discovery-service-0.0.1-SNAPSHOT.jar + -DCONFIG_SERVICE_PASSWORD=xxxx + -Dspring.profiles.active=prod + diff --git a/discovery-service/build.gradle b/discovery-service/build.gradle index c095125..d673eeb 100644 --- a/discovery-service/build.gradle +++ b/discovery-service/build.gradle @@ -45,7 +45,7 @@ dependencyManagement { } processResources { - filesMatching("**/bootstrap.yml") { + filesMatching("**/application.properties") { expand(project.properties) } } diff --git a/discovery-service/images/client-side-pattern.png b/discovery-service/images/client-side-pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..8757e0c48a4fe51885bdee408dcc3fad97428206 GIT binary patch literal 271198 zcmeFZWmp}{(l!hW2=4Cg7Ti4{5G=U6y9c-6?(PuWo#5^k+}+(>-j!|H&pGGM_y6M> z)*5D}YpScNtE=v=Cisi=CwLef7!VK;cyX~0av&h!z*De(sCU4xdSxC^;1{U9+$Uj> z@-e&v;2+R7VygBaAh4*venCM}(y)LJ44W#bIH*WTa_d`LGUysu>lrdQTiO7h1_9x9 z<_4Zx8an6_Ia^v-*>gMdk^J!lH}L$|WkwRBKOS)~=Oa;(`a&dPZD&Zt#=y$(o`fHU zh=_>S&cKLU?t|!G&4GXMk(f9**l;s4IypHpII%ET+Zi)5adB}mzGr4+W~K)|L2vJ3 z<)G_KZ)H#VCy~GDd@!`vw==bIFtxTK`bAe)&)U&}kA&pci~jlfi%(0Ne_mu||5vYo z{bO|2wP9ppc+dF18abF6{buj~wEA`D&t`x0>d%+)0!70uVrQu9U~Q*hZEe9X^h*PW6*W=} z$Y5&`xSUwm-3lWIu|KZxqtpPQu=j)nAX@~bs~V#Ita^0GO}nCbhh}*4EiL+!NgYEq zy&L@jw)%-j!Rzi!377F$n(aNAw-30O_kSHk`OsuN4oCBxC`6$DeTaC&fM`LH2?GA} zK!OA>1PSt$HbNEuZ<@avf&FI-AdUaO(O*LO|0oC~N^p06?X=psQ8G{zlVA{Z5PI1S zrvIa@ARz!kAn7~xUW#ZCXg>*W7;hVKCIaXvkpDbBFoDv5|1cFI4IouNiI9u`Wtt(- zUqF$1)BB5K|En8Of{j3`P>E<;!2bScF9p$1vj9XPJdui&|83JgHovGcQ1_Akk9$-U zf)IjeP6Q>=|7G!lfDNSc2X`Q0Jh?ED|8ZMZvSY*M7sD_Ao8ftI6Hp{}8d0DQ|8uDM z?2|`fwJI8q{#!z>G2V!6g0={pfHR(_zTG+Xt8cYcC1tgi3Zj~$qcUr6%Qr0~v61z( zF_v&+6(ztAi8Uv-cCmVv7#E0!ni9(}1Fe;rKC$b(UF3>R;s_A_me_t;i2Brj`G71b z0Cy512E*|>|Gi2oHh4PRsDwG-MkBupNX#}B-@XX@88y41E%Cz_Tni3-XV-x#+o<&HlEu4L6G`#6^Rsgx~)6z} z?owiCTF{yf?Rk!qO^$f;fgNR31gZ3yy3b>KSqKz6x$XPR=bSYML8>Q%Mwy&!q`@no{H|+u>w=ZED1cN!YArpT*;QYBQg}6stNT@M7CcOhaFH6~V{kK^ zdI^l|jx9Ds$9&jNtVFIwDs+YOQz({Ekt0Pq7c;C3cC>a#A7=I%Q9@FhJNHpao*t&;>$*X=>EK{sCpB1J zdTi9L;~;y-LzNrcbz39#6 zz|CH%wxrd^{p4SiDAVq5sAwKV?V|W#_P)f3`4sQ9t`dSKHBpVUMZOx2G5!tqKuoB0 zJlsd|<$SHX-JhQtLYE0RLRaSEtUI=P8A%2cb^KV2g;7okZY{%xuyp!_Zhbi>ZY8vXn?; zAfS2;xShrS&_t?uS=D zkkZydjIzH{jC(iVK;b~gO7~e$RIQNi4!XvkRJ{6y&Ci;1*Vfl2Zr*#Jt5neinsWaxPUxXbZqA_pMlje&sc}&=O#J1(SfwMaQ{qxz@W!-$Z^{SWOu?xg!C zHiUwj`kHQoYP=On2z7c8Sx}myDKF-9>$Ra85&x#74J@lY~3) zJM;-li$bZ&@zc6q-N;jkP1jvprovTJ5ZovhT8@|L3-lp=K4bi1$h5%*)-fY7m_qIP zx`9S$1hOE<@kco_!sS(;2QVaJx9ncn&9ontXZ$kr#C9MLBZx+$zX6QPzhCJ_K0zIV ztzFzcEU}wqo9#^O-(VTlGnU|%q#jLqYEkIf*G}D#Q{5;GIJsy2U>I6qc!*GD-^pgW^7oCTW5|B&Xnr`=F}PTnPT4B`-$1+>(~M3v?nv!gEDrOR{bea z5~ggI6K5<8RCWnXdwyblI^GBh)7)X+zJhRJGrb|~n}&-ex0yVmCI^vXxvk!A>dxxN_tV(=2{_M5B@ugS{@cH{6!w`X%f5Uy^Fohcpr~{cK?^#)#Rq_QBt?KSr1R4vc&%p=#NOXBKT!OwYFV?O%Fd>XpZwUI$=zvdw%@X_@J6VX(;NZ*z2l)yCO3i$~cnl z8&NLQ;8KJb5Wi!deRMa|qJDMAXuiz@928C8bsQgD@k#`UC7>qXGaBcY`V-7XmjY}Z z%U&Lbq~_J_1<_D~lcL$sQ4R5%(4E1MyPdbt^Wq*U=9OBfsPe~#)4WYLIkIb{VeSTQ z>axv3nc@l4`SI+(rx)3se5ELy8A=I(ub%#n;rro$RltdzyXoD^C8KTPXYF#|TT?B$ zjDz8}rso{6&fPo-7$tEnvyV~4U60RcTv#+Aabw^&;+6I8qzFS!yy9`NH8lnLrS}2* z-eLGuN{K1^%-;BHZX?H!ai!u(F>F7numI8A=SG3|AoJUcX0zv!=!Vsy~vy$ zKee)si%pj`T<6V-EaghmDkqlpBda#$%!**5Yj}_Jz~$P6d~l0bw?+g;h_?iKFTW#1 zqHo|1M5Pf+8Fa45<@siCQUpOu0q&rO{>un4>NMqL_Vm4H`&DDRYrg_c$6Eds{9|?Sdtw#26uBSa29Er%k(U` zQ?->Zt9RyGp4n{g^VUSri4|Q`O&m?E_>;HRP++dxS|Xr=`#T-mM+Trhx`DI6 z691y4_0hW-v)*>EJ>`e@2SHi z2|Xjs=W2SVpmoMCjZA;*?r+?OPfW0ZPm#QXVU7T8_Ox%HM~HLU2JMKJBY8^=osSUF z2gciZ->^RVcV_twI1kSud_6IrFm3x4W%(o#>zvt!w}~panFHfq->GPCvQH#tDQ1e7 zktINd+0Lw3(EXNVhjV*9o`X@?ACQ$^ymxCqIZsSL0s_9D~42G6ZO6vf*4R5)gi|g{L&s#6LcZEHw_@)K&C7Fw4|zimna|) zzH{^0f48xIj0PsBIqzgHV+o{wJc#MHwu$ngEXo!m_CmEjCKtfv%6|$XEyaCLRM)PG zfyC&$o^<$yJpf4C0#FQh{@6ltPD#{>?1k~=8Wia^uPf-c9FbbV0Y^Hm1f@mG-l*Xp zzr@bhv8j((B-Mv?d0pQ!ngg>+Bm&UZaW4F^Mzq&>Bp?W*Ng4L>H^{&w+yNO`0c{$A zCJRDF%tH*OC^cg@qQ7X24#703!tVP^@MA<-cbrd7eZia$f`lNplRqseehZWeG|;(y zmhFvgm3sgWYp9jsTISUE!$nY;ubvv{IXBQugA4%|o{_l#qJ#>o`taYHOo5&kvd&3r z)6%NMg4g1RU{C8H$Hvrg-{rLX(Wgz4Ko!e{OL7ve_U_;MhTG_83n1msUf;9k{${K(Dn| z?N+=(LW#9>ubjRM6j|7NbOYFk`fWriQoNv80Z8(9=G5;G^CE|zbX?{ah1L^5^ z98>x&mOtkZK@HT2aG68ix|pHl&FuVZ?o@(s;7Bq#W}E#(RKM-;mjTlO z%x)`K-U@I-E*j)3^yH<8^Nl6D;9n}bJEmWCcaZU@)%?9I!O}tA-I1;Rc8-5fTRmu? z`nQbqi?VgN!y4w%2V$7y9bZd}=81|y>tF@fXWWA}C}}|S8toTYe|rv-aBl?H6K!)_ z=d@n}&q?=2KgV^qQeagiQTKa`^D`jhiTQF+BsVBf4oC#)QFN-Q`YpqCN*&{#fj>-B zFV)+ttPSQl8Tz2`{72M=lt?QTxLkTsR6M9HIuI38UK#ECEhX9Ll7EVfXf0V_{k8_b zk2>0;pe;~$n(-A^aavS=pgk2MVo_Z%gJEPUgQ!aZ$g+SPq8|7> z6eh8uy(9zSEvNI_@%wNRXZ2;?thyRd8W52Z!@EGMQe7zsql4j;<`7BSR3-yCu@x0O z^SMPfmf{%AL+x-rcC7!$2#Bnp_g`mUt|>&OeYY^+WC>F~zR$o6?Wg@_NdX+H z96<24M?JEp^_L|7IBcal$}bu)KyBfD!+&w%!%6zfyU%V|F#N3+L3h;3Z|%0<$gf__ zF0CVbIk4+9{us`gAoL)5?U4(@f3xtfDGzwd8Tp_2)q&P0f-_;NF`HOU`hZ(5a-G{j zIh|XbuuNUTadL~k3WlLS-<&!l9}&LORAk)$Y9Rp=k7K#ocj}z)4=w}^pe6uB%y`ML z|1bpwO8e|jdR~X#P$Fz1R@e19uawRjJ2qX?%DYsOCL3A1QPj@jXjU;YmS$Z-V3~d- zsVa%830{gAGHW)vLsb^NVT%$32SmY1x}$&m!ze52eu%fSqN4xH({1O*MSy}IDtJ}|sFOfYxAK-9UvB2KJy?2C(nA0Lx4_#WksJ|>JDe3;1 z`$<++6}n z`<#s(>fX}zc^n`4v@9o!)Kt$GOa12x_;Fp{PS4iOM+iYDZQYT~U&03-n?Zt=I?9@w z;f4~4dQTDfSlkX&{B}F>1B_IhBKI{His#yG?$`+}HQ>Vut)U?yc47ED1T{vZeNveZ zaQQNstGXfV)>8M84Xa%#b>@}M7atq9Vt+ZMMXv58I5Oz z_F`&=(Uv!oWI;iVlHS*hjuR|38Nw=+tNBk(%DIa!vb$cJkoHiLkm zX@)kuUSPm9pl|M1k)E?Q`JdU0WUxTaxgX=`vcp147Yyb$Hez`_PGv@=q#SA!Al3E= ze`KbYkAFuH2^oq>-!+oV;)w4P+$@8}!e3Vsc1p12Zg9+)M{6(4e^Z7;Wrl6ag5_@91^>-Gd8$Ha3I#R&w=lj~Fj zme)@(R$iDL(0t0L1SJ=Q0I2}`+m3yLQ0LoPks|qSu{^I**HT&pZh~djo!Z~{0^qPw zklM;@vcBEcjPv?3dOQp#F?rBfwOmjb7#i!|m9I3uMSAtbQSWVB^k-hf7T^~aje6Z2 z&NM#Qb8K{UlHRvYZ=|k08)YG6FD$USK40_`_Io||d#$$wqn;;^dm?x|-ulqctiH~* zpO3{jUE~tJK&?H_HbhafEOj1yyMp7_QkC`LSak+#Z#>(ZulEQHu2=GV_+h{I4t#&2 z_O^y0_dH0^4`xQ$>sTL)$(^e0YUND#Fs{hN%&aSaH1)joY{lR6fy?<~XRcCbLs-Ae z=6GIK76Goiu`2iDgbcean@m|E%xip(376~hck12vMD0GdIW2QPFM8|Ilo^#u9pV5) z+;7Lnc!ifjktLIYg#MH76j4+l0y3uhi{uMz-d^suR^86f{d;B_FG&fR9;_Eyun`3= zsa~%H-oV|f2(k_{1Q73o7nIFQWt1boejm7ffLs>yna!vH&_Aw z*@ldWl3JaBYd=-NJKD7SOH^89j~}9Df~+YTYGOZ^^@rGsK@GPta7q+>LM`pR7Ck-% zpL=s#L?1(@zdRgLB>2$K(D|&o^=5*)Rc|G+ug%h2TLAf4o3D^BWH&Z*w!=4$A2G8w$V?Yxgv z%*-`XaU&xm6NU7iS`AkCr;RTqji-y|=c#M22&BCZE4waJQkk6|0&iTNm$8{T2_s1* z6U%B7?8WOXjz>z!A#dK4neH%|Z5Qt(leyu?`S0*zVg*^_OMVvi?_Ga>;BSITN_MS6 zshTS<`RU(U2U)dH2M>7^(Xmq|)Y!J^_%Kd^+KXcsUg1u$yxHcS}ndZb$ z>@YU;9k8C3ZQS{{X5GMN%T@LL-mHg58dF@4mRFl4R(-}UAt7n655gX=#s#dUR~{e6 zaW}LDR66ZeTULr}i5r+SrkY#m)mx6H0&t|s2J|3x10qokKT+D9E%=b`Ho{ier^>MY)!6ILFbeC(QWISCFPhTE9HU)IpHLAaArQ_A3 zSu{@{the_rYrBj^*S%0vQ~T_jK}4seSr{#y2$f|L;L^>a;+UnPGtk#5ZxsuA9?#o8 zuQi|cOz471dKFc7j=eVbnq?_GLz;XMqGdH{t1nLo?&G3Yf+?9R?>4V!4dC~9Ofg9C z^~4hJY;j3K9hK?a^Nqana6qbLxukh^b0@$nf<5V7tvbrN6KGTQ3prU#}5g@HFYb=i5i8_6P!UXrQ#dH3v$ZGT0{ zf^OgnLGnJ8UT?4WNl7P5S^a6j#^ZuZ$!n<0!x~z$;lZdBI2CUxV=!?kO1|kXtHhoV zi>aN;8%kG7<3K;YFrJkFHK*yshk(y(0>sHu5X*Q?e{A)IvmoMsMXhN8&9^A=RXKM{#@w;&7lFIi-bR#3uWo<4M^n62YC43 zW2rP)l?{r=gX3Jg+pOHw^eGB?4JVAwd!19gKJNt@6m3Cq!vfi2Ys)Ajy5_MlCK-21<2MP z=&t*8A+&?hB43A6m!Y=JRRbWE4>#WmoZ4KUFXk0XNPa~#M)^8-+CA3P+DP`~J~Eu{ zFN@s`76LJvxV2!j-)D{Yb{S*P=x*onSZ##PDsh zi@5gZRahO}6n}=9*GQl*_;R`vFn%X545lr1Op0?^fLw0>DWntzK0bW=y%FJP3+e(> z)_LZUz+FndeBpvq{_}m(NS%cc^!qI^L@c3)ZpZW2>&^q=HOK~$EBQPTaq(c}6h|ZX zP&!2CeHp}c$hQ{{4c7z1>_PSCQpcJbSW9gQ=;N^V@(pDlP2chZWypZL*W-ds5uFff zb$T+^!iKjwZ7=w{l{?ty?S26S6*#{H!yhw4uFsH!?jRmdyLzuJ5Tb)QL#Vjg^ehO3 zTwxzEwY)jj+(ptLl!i)QX>&@c`@aY8ZG3~p3?BCh4YvkK6-5Vmx;;4>;Y(^OUI!6qn`_H+j1 zQi%qT*oQ#PO&s3y|f=E^A9+6AL@3p~x|_ z{^bODOS3M&Xe>!z@dxeBCq7VBan(L3S{9}$PI>GYZZY1{UADEpm*jIuE}Eu{_&<Dab+JiZlYmi%Um{DRm1ul+5>Q(W-u73-{)t#kJ&1@9a!?tR~0t!qv+H8uIPFlAmdA4a5@MZ5}BcXfuX z7~AW|mh9^@niSUOtMrY2_$t1;KA3`Bdl+-t=D@w5F0gu!fB}ghCxpZ4u#c4C`OIXC za*yh+h{sr5(>>vOV9e9q?z#2OcJ^LI)cF$$E%DU(4EH`TghULbzH>WE z?T=U1U|4;wV0J0TgbZFo@`AbA9qD5k=d=C_I`LQ{K-` zYoLwt$ORi_>h<04ZDMxG9X9PpVf4kRgyCCH{b73Jdux89y)nT6mX$D5DNSk3u@u$DljH zam;#ke}d<(9H1}sQwy%}hk~UyMD1c)gdrg>=4|RA#$L@|gO#6ftr|fEnx3rE7(Jm_ z3*`idCy}1brjk(Uc^9r|SnmiY2oK5~V(04SG<HKYE&AhzN=iT?obfYS@CRGQNj<+UDvuYkL z&&#M#*U=hYP5z6-Om|)l$9ycXYeXU5bQkj#b4Kb%kE9DQ^pxUh(7VIVw^>hE5t*Lo z>KZ&YvaiCDLn%Z&(D!9VfSU+|jS<>n=t7Q=mTirm#I-k;<}es<7MJTs8PQzq?;d3) zr9F=!QYxxH5Xdv^rk`-aYBCgl5QnU38*s{ncVyB=FgWbzt}5Or;y+G@?jBVh4;FKb z0ShsHYFlmZg<_A492Xh!z~yR8fW|IQl+BjTf$2f~r9D1ST9uM>4zq1Bd2RC?>+u62 z9%pN_nB*Pqw~=aeVP9O+tphv2is$K7W;?oevy@S1O|>Mel>Q48896y*1jHWlv)0vA zAUyY#=Q!V+enb)1tI!4Id3!baMq>LjdhFRK#~R9)j3ri0m%7g&OAMnDkwx0R)~mM7 zNgK-R6<#kTw#ytk9U!@J6Dv>&44O2ah^I`S(KTVRZV*OAt`?h}5ZT+Cky)(LLZ7QV z3@JuPBdR`!_hzlwx5@|+E_>WXvNqW=n5?o2P!Gd0G<(p3AEk!GQNu=8ghM# zNWY)TeDw=82=?A77oWl2R8;opp#n)@)TT%PolDE!hGOtNbAtqBIgKlxKQpuyfnKH6 z_El8G{jyQSjPP3h@!r~uK>OC9tjcDe$*4IWJJehEKxBjgbhmk= z%0lL=R0X3%1@w#jL!Z`CYuhApDbd|n5Yfo#*wAwjhjt-Ni*?a*L|`Oe_+F@X?_l2) zx14Z3DLj{6SAm-BOwCQLuOOr2<#t~A3Fw*>%MO@2EF9Mmgt^O|^V`Q$fl>iE6G?CR%h4X+lkCUl}V?kC39Vc7)+QoJikmZru{x zeEKNRc+rPDS`LgeHA$HCdZ652XVouW-d?jUQ13BYC|?n$FNLPep1v*JuRfjW-jq9H zae6?>LFVVSRKXmKv9d5sT*ApO)Cpb91oGwgv&q1F^k{dNs@B+U&x=27?^QHI0RfuX zG;JzrM8$h$W8cn$cW_uiM-|N&Znwu=xzZHKnXc%d>2%D17~Uhlsmsau`>m?>^|ERw z!_;`7YQUr2C2Nwq4go-VdGMU&0=wTXV2|mK!rCtf!rtEol$Y*`kH>!J$*?7Y{ z1ignKTNcN7E<7dKS^xQSaAM_DUH=GFl80vMRBZIRJK*5Ik=7ZOKWwt05K8sP9 zYOd!?zd*!7jnQVL*S&TalJ3KdvKBN{O^WDM^}|eXmk{5oHM+6aAspj<3%d7==|)&` zO*oh5`51WTLy}**d-cOScM*!g!K5KYgD!Jyc_+*q&ZnbzqR%17q@VVwRU6v7sNhEe zvkF3nU@R6Zp%E?`I1M)6SK(Robd6vqC2@`Q$oaP;geY>!F|;90FR#7hvw|FXG)qTa zyaI+>`%5iP-m|>{>kcWR^ei;JA=!EBXBP=$4zEdu^AC7q(xy-S8PN2k*EN0S2T4+E zsahwEEJA$&W~=Q#>~J%9FF1IWt~qK9QzCd`4NwN9X>J0Vp89L6yZyub9qmfmii9Wz zw7Nz5GkXFqrM|qWED|V!n`pd4*{AU_dEgJMmp>XM2gz1&{b}sxJDD0EpnpSYFx!sw zR_-oSdxJjUXoQ>B+bte9PZS9RfJC1F0mZwEjQCHS~S+n_TYTThC zKPhQ<%iO}l1Q1m6Kx|m~x}^H8C;=FaBe>tzWTMvG5^lz3KBK`rqJbMV07D>~q0+}G z839AQ8Oz1mL5uDJTZ?oyt0D_)WpWr;^p-L?BG$}xUY<+-M!eJl0(auYVt zwV`n)r=AngcSRQ3gA{~@oHwt% zV8D*IgD7jccsP1{Gq=B1N-dESyh28iQ@X%o3A9~9^eVJNdR}2Ac)+J_i zQwn&P3nuG~C%0TvcXcv{7}RIG)ZeKNBZTW8={K@_nb1dsFQr#-qfA$&Kr|^y%NVOm;X?DM`9if} z60>0lvVmnfTUEL4TH^(n`{NWxb~_altHRK%Q;M>O2R=ib<>lk;i;X!mD)IiH+H87} z>-ji}IhWhrY46inyLJ6SDvNOha)X6OmW4QG)x%PX zhwP1k4bt6-F!3oSZfk@6gAU^c3y=GwwP%c|{tUk6Jng=Rr_vvY@pGAkp5P5@ua4CH z?UF=7XlVL&A%n+85{L?AIPo>4Pp%RQgSSuBEC5F-jKW?r|ojanJ z!W|UlFIA=Cj~{Tq)uH2Fv`K>FJ7Fd>6^JDG7519cg1?C=rE3p=$B3z_b_J`SIq7=< zI&NGd-Fkas?r71+u^hXHteEm$ADLrBv(kQ+*T;665&7AZEU2W zz!3`-JNVtNlc2nAj4_#eb;JXQ`iry8HDhoi}jHX#uRI%pZ& zzgaFhVHG$XevtOfm$$yke0$!rt+2S`Fx@1}1*v4&s)u_jHY|c}eP=#dkpRKXQ)UW` zJ|UikT4qc1`DpJMRVtA(e;iOO0}(;F3`|%9DK{;v4CLwtbd1gBwKjYfWq{@Dr}ahdFXjxrsXMC=o^+p z($er^BlGe3-N7@QH*F768H3IRu#~ku*a8snjU->nzTfXR#l*oq)d$mWx^RxXa-ZE41n}c;( z5)X8mI?%$>)L(rj!8qI=48Ii6_8ZW)J4q<7`yN`_41V=gte9nxhAs z(HGP`AvmrO_$H;eWF!9SkCnG^6PEscqOtMYibPl)>)7J58 zS`S%trkP(O{pRk&neeoMc*Y)St1qfM-UhZGo9SDS;f_LxDl|D}V$O{oG(*%T$h&fM z{2e%JUa>-c%aD_k8!2$8;+%*=iZhzX>fB9Q`6}ZzE*eQd-*p$6t##Xem3~ITGaB64 zEt=c7PxhHc44E&-ZYHfq+Q ztKu{GQvStO|JDU%MvsV>D^&a2N=0w#Yb%z(*ILzz_P2H2u-H3pQm-XT?fxtwU*Vdb zY!S!{9~H!9+ouzwudAY!4@brx6({1zy(6D09t-Kf?(sdJjvD+!w%Gq^j|Tg}jK2g6$0=8~6my8}{p0JA>X zmcB3*O^TWQQ$fJ#Dg^0FnceTU8m5s_CQUH;9vO>C58Up%G&|yx8VL_9p1{`;DpZGH zA)BY^6y4zj`g!7S_UY4u#O=++NU};zr>itP7FxH8FBoauE|V6m1rgw7mDb4tv+@EZ zEFCM8gz9-Mlhtx8*x6wibQ)AFPa@-=^@b-MQaP-dZ%T`b*b)e04Hmje7i!=W(P>v> z4GG@_#l?$|9b!MqZeIi?QJ9aWl9lalCDvLZe{DP@WPFGW=&Q25sVlS3-ct`Tk6f5r zZxNY-^qReA2cJ`ne7Ksd%B1nUR{JdW#W8V|_9xf0k0ypycP*>6ShiYcGYXF9&zgr}oY~j^R zu9qC4hP({~5NZ?Ak}D4`rwIS*p>N{q39L2vRZQWd1L$lI?Cj6o@E|)R2<8=5b^Mf( zZCHEzqpaHTpf}a}1q`^TJDh_i#uNgYIBb}}1cx=TMrBfM_z(!w*J}AZrRK)tpy2>g zJW_=21y#KL(~z|3>0>!v?!;CxQZk<#1^-j>cu@R@w;-6DPW_tdK0Axz`H;EcHKDpN zp_zvonAhT*An{XrhZq{bG;#QM76S?sd~uk=?N7ZHYTg(y>$0TYDYcNODFZIY3}e zhiQRp!8=98|5yE!AT78WDxNye>SuOjzGbxqQO>BC#T33slaDDZ<`v7chqxMvHkT@Y8juDUdrmzPo0yXOaerr#Mpo-ctEepy5n z+BK+79s11{lS0EADLRjfUX%UwuW->d&1g59e(6e zt_f-L@mos4jua2D2s|}t(GT7r!tHa^YDdPnXP-q0fJH$%+Se- zh*!nX3P6F$F{bfo_w(`sRy-3)l)cFk809^%=I)P*1z{+a4LQWST5o*0_>NEN1*>v| zWl3eRWd=^OWi^JT+#dVKx7i|r7ad?;-%1wIRVHm;9Ov|2pI!Q}Gb}%~v=%G&_<%v4 z-z93X4}mCtiyJ~oOtoqes@G}hqJ#eufPb>KUX?iJa8|U+xb$e*5pw7#c1=zs|19B> zYqPw7KNm>jg{OzSo*Fv_Vdu#t}_rQXyDZ9IWcSF+0Zg=!1>5uBjVU zC_%?K$)BACevTo7(l!>q`6U{D3gqZ{ZYL60JMOc&+T*8PBG=N118c$+`2?|SKm9!j z!#tie<$&qp;k+R5HEeQ{x%il0TEqq#0nS|`XM$(D1^jFyzo4l+#3gDq zdFuY+EMwZ&Pb3jAchHxG*F)7%ws4I^<`fv)W4-%f(RR~>oC)FJrn|Nbz#`m<@aypW zFQaqQJdu9DTEAa)l6gC{qqj8TcA?_--}};T*^s5DosZT7hE+yYF6 zyEKK)u+Z-Y_>7*Frm-sGykr`38+M9Y3F`czp^Qxf@8QsoMQF|Y(oJW78ygIautYp7bo7Mw9^JOUzS}U$*{pz5Uk0 zs$d6=)$~~kO^?G~C{xb-kHU3;0fo_Z0L`rmKCqUMBO77)`^SkH$B&Tah+CO?XL`mb zTC4;7-;=A$G7hoaLY>~k^d`z+9G5y+zi;Yv%i{5Q0G5iKHYRs1!D0=R!Qeqfqv_II z{wZ&~#sPdq`TpT6QDI@Ju(Wjj!tU8-C?j)Mdjy1n5Yo61HZ>%C?x*lBzl*I(r#1eC zQDW?+ddvQA4_BiMh?Y!~Rryw!WkUVQ{^jW^a<>Es(}W4Og@`W9M->1h|F?Q7PiN`= zy&;zIXn#8y@>Lr3ZzpWcl~hjrM%$7fzvfuP&hz%oz1DnAM6_RTUj3|-XpTt0=z=`h z_QAq(KK#1JK|{_ayQtg~_GPNRweB{$2ooJ7dIM{KT!GZNxDASScurS!#_R_%$G|R) z_`rMfa)+6CjwpuN)%{x<90!l&*LjPwh2V5YH(Q}w4Z0z9?@m*&@cgCo80QvS91Zus z3Y&ch$aRc+n{vOD?9b7IM&k1YkS*M4%{3$9Gh@9xJ~SYnM%d*t$&^qHj*a!Dan)3b z*K1C%AcaV$Gmog5$Krn~sw~#8@R)%dt@k9Hw(#vgVlq0u)i8HCcOC|hvyA0+2n5gU z4%|AGcP`#Pn?I)MQS@M7S$cQK3<`g%X3a%Oz&8he>@h|^HYdZHCY-{E{ep58zSW=W z*zfzu$gcnb-28kV0_Xnl(NSTSfn)d8I+3v-xSQ&GXi9Bj0y9nDD*!!9tZIOz6x5PpWoU$)z)D6SpEIK z02I(c^7KI0e4{CL@Qmfr*Hc!p~N+) zZ)1NUWA=WL{#fk3i^>I%mW?|o$Gq7*mUa7Frmye=6?5uU2&)JL>f6tShTBi_)?GKu z!|gR@hzW`PCq1JVO=p8|e>rlvX?!v=3U)UOo#jM*CDXhTJ2zT#3e*RNkb_a;TL zVI)hxE#l%Pa*R`*+9;*};kmPvQ7gAF$_&cxkHvutaKaMj7h)V8#QGrcG-Tuy6z{<2 z#1c_qAFu<1Mp1&%&n=r3vXlqc!eT$nmtHGmSK3j&DpsKd;yg#>%}grzE~YSli12=U z0@YW{K6}%=$gs$3#82GO^8WFI1z7803^Qeq!wg<6|Jr91Cj2(kHoss4 zk{c7Kr!-qDsNE}(DGNH`KRoG0Iw8^9u4bS;D#UcB9U4D_yMDu-UBNQG?Ct_~D^kz# zVW#EAes}B33-a^B_EeH48#?CpX!rdHlPGOL75x%}17hqyrK7cig8lS)dPR--?yXFL z_=!w7_8+{(o$_xw&ML~CIAZ7Mr^5mlNwV}wZ@yII`EQG*SG1H3; zFx9+#ZJANh;+^9HD1qh{*{7=(VnVLTB(_*QgYDP*OxfpSLHJ}eyy)zJ^Yz)BLWf~M zbZCmS2hcRYVvA#AC9rQVD;Ecv1E(NLZ}p97&+Je`^>*~UlFG3<=ziSLFY6=zq@Bb^ z0eVj1UX+y(F;oJY^6?Zb2#1im@#bK+(`Wr@BL^x;9GD_g?}lYkwTtvrAyKa2|EZfS zfSO;Mrns{odDsD%{ zS53~0Q^N^vSYoYz@o=>7n@GdW6epe&4lm#BcL^{DxsnP}ME^Rs$^zi}!H@dXs^jg_ zV7%d56&XL}s3D9;smZdrz@Sp%)uAnR;7sIG&cUJc!>*J|DZBvV$iOZBZb&)xL{ZMr zGHT4C1k>HE=2Y<37IUV&XvlsyONq7ctym?(a#PpQ_7pHOoNCBhn!;EjjXq$Vtq9YD zPsN_}SA0PtCg^dA_9OHs2k|)P5&do4#`h;y3f*r^(KAev4X?Y8UbCe0Iap(#6A~%7 zpSy1+1DIR1+uoTQb{!aOnI_-Jh?GOUT_1a$KCV?bn=;RWNL{w7DYhc>^c>tQk6<@8 zuDioY;v?NNK)Cy-Hy`$S3@X*-du$}m7|5_cMD(fyt9eHV5Zz68a7@u^N?O?&@2=jimIhgfs;;^hLKx0g3A&vkvJiLGzM0`w1A~Sq|1$y7Ws)2@UoUVM%1Gph2o#Dbfa66O+Gh|GKu!xU><<&fF!8LX+G|rDq|5e|( zW@#{@K%IDfu6wW=M72Ag?rylP&P|5binZ{N%0}!_N58ro*O(T>U8CwZuV%~(mkNz zEL&YnMVUPYZ;h?aJr&np$e582^(c`H@x?nIUawVk)}bp8sC>29H8J3PLBMf4benym zsuFGW0d6<2ycRxBymAm>Vh0*n0*;hLK&iG2#)dYSb(f{!@jA6(kuRWTuXw+Hu8F^6 zb}_w?#OePrb&Y{_ZCm%`#C9564I0}v+Ss;j+h~%;Nz=x*ZM(5;Ti?0w-Fx5n|NPiz z?X~6_bIdWuuD+^T7Raw0PKfkJ3N&&4Zzt14mD^caV!x19xx~d1pPU-v=oV5IMi3le z0ggb_I>uB}HG%bThTx{Pm%8!XKswZ%a*QX>ond4Cd_Myh>2rBC^)Mo_ z!ych@B;q2GkdzsWu=Z`~R-f}$*lG75n^d0)`Fnqh3MLq|@wXGdIDu%fr5liHo+e(5oyc=?F$gIKF!SIK)txKR zN;3VyqR%ybDnu7*<)FaM_@F)ke<-}lLJY9(1^ddN0k}IDkmx#{Da`k2 zwL|>W^{khswtWPP(+8>Ohsu1LqgE$jGdnnk=o1_J1ZEsZW*?c@q)~^pSFNBcd}=!1 z=S^&?x)0BSP`Z%64}D&ozY1^&xm+MTeo3iEqNz?<^7EH3;$mX`8p6%lwA9p$$m0y^ zC=VmQyN_lIL8|PC;NU+#xaMsjR_^vmUi_kYRGgKK@a0{tH4=Ra*_ z&Frb`wPS*;kj50osSIR|YDZ~NHTmD1l{qq;Y+uC@4!6=3V z&_J-7QDFa&n00Ehk^Jou|bDjJDtnOMvF!>7Nr6+Ozz>IL(8$i}6FL$laiQ z(H3@t>O~hw&&U*$V3LtKFgP$e@9@%sTHCe#{mtxDLpn_7ob zPjaOgHD%{^*0W+V>QJ>+ zw4^I$_V%Xt%?{ZOHp(i_UlY6tifxc&BC4(=s+D%d*4oa;(gPS1Aq2b5c=zClZRllmdQtclUUt z;AeR~V*-{w`TBGdlN>Ox(eA}T=yUtER$KpOf870UUM+^A%g*mbE0fn_X7?w{dj`8r z4{c?e;q~;huH!I;c({^~{3sr~bt=~&6Bd@wfJ)xGR>*mZV{222>;BK3L zemH_LSIQm*`d6SsAz&(_3TnQ>!&{D1(FsLnRMoIOHJQf;RuY}XX$^Y8mx)X|BTX#Y zpT_K#K_#=qoq#{n^~WYCY{IC)iss9>UT^|V?|32@eLU`5xPh7Y-%8>s7vP!H$2dh% zSB22{b7jY~rT5dQ9y=U>uYl#==lQl0(WlgqvfO`Xrk?e z`~6SgGrVH0AEJti%Hz3PXB3E_h0H6xb~YK_6lC+YSTCW^us`NV%K(wJ$`3< zNZV|BjL8-QKtp%j*}g>x3TpW)W5ab1ZjOCE^0R!4-YjJT^{d2w)HHgtdRVk;X>vIm zPj$O3!&2?>Of^XVtkda47t{44=LQW}0=(nvfStj(40qecm*~fql#ft6TShD}3k!>ZMt@Dx zV5rinshw^Yn3%yyaunIFA!}ud@7H*-XIxZMIRW`!=%CxDwSWF_+g{N&Y27f z{8_!vj|#8d$mBr*+7v^laaX#Lv@ot_mS{hKO<~N!5`!0Al_B2WJPh$NOc6?DU=tMP zF&jRw`&8TU?BVpU@vA8ft~II6t^jbwZoWmMPPh|LU1QmQNvEWspom}Ci4%xTOhntM z*CRl*(QC+N>0%@FM zH&8=169yTq5;IzDJ@_IN6F2uE*;X5+0qOsSwuJQOjxB?x!O&!n`!9RiQLOT<%l@dP zqs!Hx%R9jb+}#Am0I6Wd66o&8?NJKoOlgY+5de$=X6*YT*`>oEA~x{jxk^pq!W!P{ zAIoXAkYL!VkPv?;J}mdr^-8%`<8})!t1yAH& z{so?#W_u+VB#09E6ae>uP%R}m&po_NMBJYcnC0?PUAYD0s(dk!_ZouzgQOPXwhA|c zU{dwJ1kJ55koy7)W7lXXA@{pkr^=u=vcPMVN2bpozg>`6E*N#urIpW$Bv<&QM5T1> zSH3gIlEN@Y@p29?s-g#M$h7Q!1y! zwgwj9xLxlDq`4xP^!V#V^8umvu~H7R?mNgi7M_&Tb}xDsh=u?~4W!Kjyi4XfJB3m^a+< z?0vx+#DT4u*swhr)cA06tDmvsL$q1)D#OI)h35F(QFc7A zF_c$A#pEA%>l7J8VDd)yMQh>ZelbTzv-cd?Rw&4|wlnV69SA9Y$nUT%+J!4<_O!CB ztKbG`dfLwz*Zj~Y0%*Ec)d)5Ml}EwYt`^Rq?lNhxkqEerF#w|=HVLFzw4TQ<3>ue$?et?f5)TRjq2K?g3q2;3^k((jVU9`JS1i*c8ms zs~DPZ*hi@wH2fLCh0P=(ho6noMCND#r!i`Fb1el%oz^FfvJH1Hxdn=2o!{fXSaH_{ zoqeK8;rVW3mF16Qdpqf=UXDRAZ3M!{!t>_dOtrUOY!UBHk`(=&NkQO=*4{-rNKB+^&$S;_S;}hmB3*3WZs!v6 zYklFiqwo(J*-R+OQd;2I`5Sip9Q1eQ0qCTF_Ph6mkUaR37Rc<7dk*94_G+M=*gmz&IS9H_f=KZg z2yG!8JV>gh1BiI?K-b{&&F8zu@@1tU8x4Ck5Gb_A6@2rH-U{OpP0zJ|ZQ^mCmMR8hg~0G%u- zd7IUyX=(rvdN;-vy+|k-Ml&un6zZngE4yW&#Ot_E+Y26yN8Dv(`HoHk>Nw;0N^}~Y zlbnCD;@petIscYPWxlj1U+N6BI%1KX^3Q8*yQS2{3}Uv9Unor!%=hnp8nS)^#qN36 zef*LK%l*{;&X`6-)m-9|^|2foqpsSFTZkuP-0oK3?kJ1)hHaPKewBAZ?^44tsa%aB zB?6bC+`*tqwqkEF0hyY?0sp4-3{_%T+1v%z@pte=05!S3-{jn@OUR?7XU!u8r*Tt~ zWY_qB zBmuh8mDVn|yv)yl{6&sA1LNR!U7$cQdbkfh<$7I>=#khFIx&o_?=_-_liVOBU<2=s z;+StFE~J0^kj+6;yKUKboR4J8ld4+Z&eWdY#FLzlN;}waA532T;!OsgI!E(~7h@s1 zN(@Qu5jJc*;|&2fqNwp(vJbQwdWBWO{>&Y9Oq z+v;yp(WAIQ5Kkxcoo+P08?l}rEh~4yen5NU7^cEJU)A7&I)u3$fZO(cACPI1jCPcPPd!8!Uc+rm zQRb#WXDC+6DBa(W?nHzLXY{;6z`s!b9kCIiZJHX)bJVT5(b=D1@T9%J<|zBZ-p;~d z^iIzBgT(kw#;JfE6xm-AaXx0exdzy!(^J&8(?W_*0q zTaC%)O@C#&m9^76`!DP%-n)Y7Kl;B}_L%=63^U<@&lv@T)fs)bU1WamTlQ{$e(wmE zPgJa+JoB@#pcB0;4xU=@-cE^#OCrY>X216$f{Y|@I99K0Yb=wz;5xdwJ)KaP@AF`r zg#vFDMVNs&IgwoDh}|Zo0$?CDqZF`3%m3W9q4k|Oo9l@*5>NWoNbSj$B@^VW@O42U zjO*!4JiNmKbaN~ixln=lG%FLH#`FT*zsS1S)K{fTft$Sj!U@!=?l>Bt^NL`5LBsrc z52)EnP2nX2yvu}?!6tMW-NCGkH}ja~tq zF86w-1D?IP>W%NM&&Q=qAbBvE`(!rXOIiJ^=XuB{UB;C+i>!HTJ+mXbwkvVjEN)DC z8=|5rq4|q$6y9)en+gK+ew2%B3sH zr>oKf@=u#Qy;+=b^(&08P0D@Fb@a`!OFR5IW*Zi_MAtN=WzZt%o z(e2B1zd?BDrqvw&Ci>r`;;kd_zVWYw$e3g;#nUhShqtKMIb01I!{wcR39zbZxmu@h zZx;*(OV^mBir_Z~ljsI7;>M9vHapIBeG>&%<(ZNP3z}Ru1Zp8cG4b$}`X z`Q=qIm%+>DBR_-svFC%KF>CR_RR{`uErFl_g*8#ZdFdLNB81S)ftla(yk+n8yDp~{ zOJOH3Iw8|IWHFF}m-WkXDh3UIcXB99Kvhmjw6Niu8`GSG%J+M*C~q9@7hiD^?kk}i zcnMe(`Am6?Npf<~54qV@^ax@3p;eX31|YtkBg)~8MU;l4#=b{;W&w%Sb7{(!KcBqn zp~a<83{;0?&kBHc>u2D-r;?Z;kpxo1!kPH=6`FU!#~>4#S)?B9l*|}~S0wD{f9q(t zFYx)rG#RXcZH@NTjn@sc!Ny!}(~e&L(jh}arn38K`N1Z?-a&IjCJwUDhQSsz_Tq$f zPWG2iG7S%!6p0xeXFm#>g~H7jRJ$>GUL>9>%>+PwU>~j5#btY9QJg#0Qm$OAeDo3p zE_O|-io%1nv(GaK#&W6^Cz((ysQ|!^RA;__2$P z1018!gbjxKSlfurWy(AR_I!mtyeRdlQx)*i)wAK;;m{a`8=<;wUxybVV$YdsGD|X; z4Uv_FEUbQVeq{?+8ANA+gvAEZ@R)GVRR8p(MVcpM8hl)tj1qypr2*CAuye<=elpV6 zg{UPLap4lwwnZKCDLj}Wr)1}5%F+zWEA8pg#c%a%%B2U;-*gI5dE<{fZO2HKVX8jJ zW{p4(7&}HW0Tb@Ml0{naP6-Wh<*JMr;7(5sTc=j$NL&{NJX#(WVAXNY5l}V_{*+U_ zo#3DT)QG8!nnJnq`@)T=Kj2t|lE$xgnG{RlV7bH5Gd^ft|1OVrNin$dQ)hss0^&CU zjCZdpcy;Aeh&eRDWI(-~%cIxy38(JChUsB6P8j2j;lHse0Yhk)BY#3;bmMq&#ULzo z=5vh{;v%TLHY2bCEvBv1hZ&)7arSk}+oC7_-TnFbwIMh)g&(zd zHq=mM&vS{e9V=qHl13Sm7*B&#g|gh0179@16%I6>zvhmK%syY2zK4VKXOmdkTMpV& zv5Ic=1MRw%tFiVIh}(j6dLE^+%C*QVOe1@TZb+TUB(8r<17oN#s1JKaMY(9jl�w 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 { - - List findByStockName(String stockName); -} diff --git a/sqldb-service/src/main/java/com/emprovise/service/sqldbservice/resource/PostgreDBServiceResource.java b/sqldb-service/src/main/java/com/emprovise/service/sqldbservice/resource/PostgreDBServiceResource.java deleted file mode 100644 index 91cdee0..0000000 --- a/sqldb-service/src/main/java/com/emprovise/service/sqldbservice/resource/PostgreDBServiceResource.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.emprovise.service.sqldbservice.resource; - -import com.emprovise.service.sqldbservice.dto.StockDetails; -import com.emprovise.service.sqldbservice.model.Stock; -import com.emprovise.service.sqldbservice.repository.StockRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.stream.Collectors; - -@RestController -@RequestMapping("/rest/db") -public class PostgreDBServiceResource { - - @Autowired - private StockRepository stockRepository; - - @GetMapping("/stock/{stockName}") - public List getStockDetails(@PathVariable final String stockName) { - return stockRepository.findByStockName(stockName) - .stream() - .map(Stock::getStockName) - .collect(Collectors.toList()); - } - - @PostMapping("/stock/add") - public void addStock(@RequestBody final StockDetails stockDetails) { - Stock stock = new Stock(); - stock.setStockName(stockDetails.getStockName()); - stock.setLow(stockDetails.getLow()); - stock.setHigh(stockDetails.getHigh()); - stock.setOpen(stockDetails.getOpen()); - stock.setClose(stockDetails.getClose()); - stock.setDate(stockDetails.getDate()); - stockRepository.save(stock); - } -} diff --git a/sqldb-service/src/main/resources/application.properties b/sqldb-service/src/main/resources/application.properties deleted file mode 100644 index 228d2a8..0000000 --- a/sqldb-service/src/main/resources/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -spring.application.name=db-service -service.port=8300 - -spring.datasource.url=jdbc:postgresql://localhost:5432/testdb -spring.datasource.username=appuser -spring.datasource.password=test123 -spring.datasource.testWhileIdle=true -spring.datasource.validationQuery=SELECT 1 -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy -spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgresPlusDialect