From 2f692ec1d6178408722b0c6907164238cda8f0c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Pit=C3=A1k?= <xpitak@fi.muni.cz> Date: Sat, 20 Apr 2024 03:43:22 +0200 Subject: [PATCH] Prepare client for remote call of Account-Query service --- .../1_create_account_management_db.sql | 6 ++--- account-management/pom.xml | 23 +++++++++++++++---- .../banking/AccountManagementApplication.java | 2 ++ .../application/proxy/SystemServiceProxy.java | 8 +++++++ .../application/service/AccountService.java | 6 ++++- .../src/main/resources/application.yaml | 16 ++++++------- 6 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 account-management/src/main/java/cz/muni/pa165/banking/application/proxy/SystemServiceProxy.java diff --git a/.docker/db/scripts/1_create_account_management_db.sql b/.docker/db/scripts/1_create_account_management_db.sql index dcab6a2..b90aa18 100644 --- a/.docker/db/scripts/1_create_account_management_db.sql +++ b/.docker/db/scripts/1_create_account_management_db.sql @@ -12,7 +12,7 @@ CREATE TABLE IF NOT EXISTS bank_user last_name VARCHAR(50), user_type VARCHAR(50) ); -CREATE SEQUENCE bank_user_seq START 1 INCREMENT 1; +CREATE SEQUENCE bank_user_seq START 1 INCREMENT 50; CREATE TABLE IF NOT EXISTS bank_account ( @@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS bank_account type VARCHAR(50), currency VARCHAR(50) ); -CREATE SEQUENCE bank_account_seq START 1 INCREMENT 1; +CREATE SEQUENCE bank_account_seq START 1 INCREMENT 50; CREATE TABLE IF NOT EXISTS scheduled_payment ( @@ -34,4 +34,4 @@ CREATE TABLE IF NOT EXISTS scheduled_payment recurrence_type VARCHAR(50), recurrence_payment_day INTEGER ); -CREATE SEQUENCE scheduled_payment_seq START 1 INCREMENT 1; \ No newline at end of file +CREATE SEQUENCE scheduled_payment_seq START 1 INCREMENT 50; \ No newline at end of file diff --git a/account-management/pom.xml b/account-management/pom.xml index f6e7a3d..0800de1 100644 --- a/account-management/pom.xml +++ b/account-management/pom.xml @@ -25,11 +25,24 @@ <account-query-api.version>1.0-SNAPSHOT</account-query-api.version> <banking-infrastructure.version>1.0-SNAPSHOT</banking-infrastructure.version> + <spring-cloud.version>2023.0.1</spring-cloud.version> <org.mapstruct.version>1.5.5.Final</org.mapstruct.version> <swagger-ui.version>2.3.0</swagger-ui.version> <jdbc-postgres.version>42.7.3</jdbc-postgres.version> </properties> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-dependencies</artifactId> + <version>${spring-cloud.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + <dependencies> <dependency> <groupId>cz.muni.pa165.banking</groupId> @@ -51,11 +64,13 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-quartz</artifactId> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-openfeign</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-tx</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> diff --git a/account-management/src/main/java/cz/muni/pa165/banking/AccountManagementApplication.java b/account-management/src/main/java/cz/muni/pa165/banking/AccountManagementApplication.java index 2f899b0..c26203a 100644 --- a/account-management/src/main/java/cz/muni/pa165/banking/AccountManagementApplication.java +++ b/account-management/src/main/java/cz/muni/pa165/banking/AccountManagementApplication.java @@ -2,8 +2,10 @@ package cz.muni.pa165.banking; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication +@EnableFeignClients public class AccountManagementApplication { public static void main(String[] args) { diff --git a/account-management/src/main/java/cz/muni/pa165/banking/application/proxy/SystemServiceProxy.java b/account-management/src/main/java/cz/muni/pa165/banking/application/proxy/SystemServiceProxy.java new file mode 100644 index 0000000..082458f --- /dev/null +++ b/account-management/src/main/java/cz/muni/pa165/banking/application/proxy/SystemServiceProxy.java @@ -0,0 +1,8 @@ +package cz.muni.pa165.banking.application.proxy; + +import cz.muni.pa165.banking.account.query.SystemServiceApi; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(url = "${banking.apps.query.url}", name = "SystemBalanceApi") +public interface SystemServiceProxy extends SystemServiceApi { +} diff --git a/account-management/src/main/java/cz/muni/pa165/banking/application/service/AccountService.java b/account-management/src/main/java/cz/muni/pa165/banking/application/service/AccountService.java index 504d252..9c5c179 100644 --- a/account-management/src/main/java/cz/muni/pa165/banking/application/service/AccountService.java +++ b/account-management/src/main/java/cz/muni/pa165/banking/application/service/AccountService.java @@ -1,5 +1,6 @@ package cz.muni.pa165.banking.application.service; +import cz.muni.pa165.banking.account.query.SystemServiceApi; import cz.muni.pa165.banking.domain.account.Account; import cz.muni.pa165.banking.domain.account.repository.AccountRepository; import cz.muni.pa165.banking.domain.scheduled.ScheduledPayment; @@ -19,11 +20,14 @@ import java.util.stream.Collectors; @Service public class AccountService { + private final SystemServiceApi balanceApi; + private final AccountRepository accountRepository; private final ScheduledPaymentRepository scheduledPaymentsRepository; - public AccountService(AccountRepository accountRepository, ScheduledPaymentRepository scheduledPaymentsRepository){ + public AccountService(SystemServiceApi balanceApi, AccountRepository accountRepository, ScheduledPaymentRepository scheduledPaymentsRepository){ + this.balanceApi = balanceApi; this.accountRepository = accountRepository; this.scheduledPaymentsRepository = scheduledPaymentsRepository; } diff --git a/account-management/src/main/resources/application.yaml b/account-management/src/main/resources/application.yaml index 4e07b31..ee57d63 100644 --- a/account-management/src/main/resources/application.yaml +++ b/account-management/src/main/resources/application.yaml @@ -4,10 +4,13 @@ server: db: hostname: localhost -scheduled: - cron: - expression: "0 0 0 * * MON" # Execute every Monday at midnight - +banking: + apps: + query: + host: localhost + port: 8081 + url: ${banking.apps.query.host}:${banking.apps.query.port} + spring: application: name: account-management @@ -16,11 +19,6 @@ spring: driver-class-name: org.postgresql.Driver username: ACC_USER password: userAccPasswd - logging: - level: - org: - hibernate: - SQL: DEBUG jpa: show-sql: true \ No newline at end of file -- GitLab