diff --git a/bank-account/account-adapters/build.gradle b/bank-account/account-adapters/build.gradle deleted file mode 100644 index e539847..0000000 --- a/bank-account/account-adapters/build.gradle +++ /dev/null @@ -1 +0,0 @@ -description('account-adapter') diff --git a/bank-account/account-api/build.gradle b/bank-account/account-api/build.gradle deleted file mode 100644 index d5bf60d..0000000 --- a/bank-account/account-api/build.gradle +++ /dev/null @@ -1 +0,0 @@ -description('account api module') \ No newline at end of file diff --git a/bank-account/account-domain-api/build.gradle b/bank-account/account-domain-api/build.gradle deleted file mode 100644 index 2b31977..0000000 --- a/bank-account/account-domain-api/build.gradle +++ /dev/null @@ -1 +0,0 @@ -description('api model for account domain') diff --git a/bank-account/account-domain/build.gradle b/bank-account/account-domain/build.gradle deleted file mode 100644 index 5b307b2..0000000 --- a/bank-account/account-domain/build.gradle +++ /dev/null @@ -1 +0,0 @@ -description 'domain implementation of banck account' \ No newline at end of file diff --git a/bank-account/account-impl/build.gradle b/bank-account/account-impl/build.gradle deleted file mode 100644 index 257e51a..0000000 --- a/bank-account/account-impl/build.gradle +++ /dev/null @@ -1 +0,0 @@ -description('account implementation of infrastructure layer') \ No newline at end of file diff --git a/bank-account/account/account-adapters/build.gradle b/bank-account/account/account-adapters/build.gradle new file mode 100644 index 0000000..5cdbf93 --- /dev/null +++ b/bank-account/account/account-adapters/build.gradle @@ -0,0 +1,9 @@ +description('account-adapter') + +dependencies { + api project(':common-api') + api project(':bank-account:transaction-domain-api') + api project(':bank-account:account:account-api') + api project(':bank-account:account:account-domain-api') + api project(':shared-spring-dependencies') +} \ No newline at end of file diff --git a/bank-account/account-adapters/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/adapters/transaction/TransactionChangeStreamAdapter.java b/bank-account/account/account-adapters/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/adapters/transaction/TransactionChangeStreamAdapter.java similarity index 100% rename from bank-account/account-adapters/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/adapters/transaction/TransactionChangeStreamAdapter.java rename to bank-account/account/account-adapters/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/adapters/transaction/TransactionChangeStreamAdapter.java diff --git a/bank-account/account/account-api/build.gradle b/bank-account/account/account-api/build.gradle new file mode 100644 index 0000000..c4a7751 --- /dev/null +++ b/bank-account/account/account-api/build.gradle @@ -0,0 +1,8 @@ +description('account api module') + +dependencies { + api project(':common-api') + api project(':common-components') + api project(':shared-spring-dependencies') + api project(':bank-account:account:account-domain-api') +} \ No newline at end of file diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountApplicationService.java b/bank-account/account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountApplicationService.java similarity index 100% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountApplicationService.java rename to bank-account/account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountApplicationService.java diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountQuery.java b/bank-account/account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountQuery.java similarity index 100% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountQuery.java rename to bank-account/account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountQuery.java diff --git a/bank-account/account/account-domain-api/build.gradle b/bank-account/account/account-domain-api/build.gradle new file mode 100644 index 0000000..2abff5f --- /dev/null +++ b/bank-account/account/account-domain-api/build.gradle @@ -0,0 +1,6 @@ +description('api model for account domain') + + +dependencies { + api project(':common-api') +} \ No newline at end of file diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java similarity index 97% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java index 811ce44..bebfe7c 100644 --- a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java +++ b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java @@ -8,7 +8,6 @@ import com.mz.reactor.ddd.common.api.view.DomainView; import org.immutables.value.Value; import java.math.BigDecimal; -import java.util.List; import java.util.Set; @Value.Immutable diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommand.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommand.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommand.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommand.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/CreateAccount.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/CreateAccount.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/CreateAccount.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/CreateAccount.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositMoney.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositMoney.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositMoney.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositMoney.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositTransferMoney.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositTransferMoney.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositTransferMoney.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositTransferMoney.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/FinishOpenedTransaction.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/FinishOpenedTransaction.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/FinishOpenedTransaction.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/FinishOpenedTransaction.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/TransferMoneyCommand.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/TransferMoneyCommand.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/TransferMoneyCommand.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/TransferMoneyCommand.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java similarity index 87% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java index 99913d7..98fca39 100644 --- a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java +++ b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java @@ -2,7 +2,6 @@ package com.mz.reactor.ddd.reactorddd.account.domain.command; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.mz.reactor.ddd.reactorddd.account.domain.event.ImmutableMoneyWithdrawn; import org.immutables.value.Value; import java.math.BigDecimal; diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawTransferMoney.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawTransferMoney.java similarity index 94% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawTransferMoney.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawTransferMoney.java index 434376e..0d7028c 100644 --- a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawTransferMoney.java +++ b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawTransferMoney.java @@ -4,8 +4,6 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.immutables.value.Value; -import java.math.BigDecimal; - @Value.Immutable @JsonSerialize(as = ImmutableWithdrawTransferMoney.class) @JsonDeserialize(as = ImmutableWithdrawTransferMoney.class) diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountCreated.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountCreated.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountCreated.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountCreated.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEvent.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEvent.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEvent.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEvent.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountNoChanged.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountNoChanged.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountNoChanged.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountNoChanged.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/CreateAccountFailed.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/CreateAccountFailed.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/CreateAccountFailed.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/CreateAccountFailed.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositMoneyFailed.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositMoneyFailed.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositMoneyFailed.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositMoneyFailed.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositTransferMoneyFailed.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositTransferMoneyFailed.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositTransferMoneyFailed.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositTransferMoneyFailed.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyDeposited.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyDeposited.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyDeposited.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyDeposited.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyWithdrawn.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyWithdrawn.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyWithdrawn.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyWithdrawn.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/OpenedTransactionFinished.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/OpenedTransactionFinished.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/OpenedTransactionFinished.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/OpenedTransactionFinished.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyAccountNotFound.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyAccountNotFound.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyAccountNotFound.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyAccountNotFound.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyDeposited.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyDeposited.java similarity index 94% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyDeposited.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyDeposited.java index 1424288..c6992b4 100644 --- a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyDeposited.java +++ b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyDeposited.java @@ -4,8 +4,6 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.immutables.value.Value; -import java.math.BigDecimal; - @Value.Immutable @JsonSerialize(as = ImmutableTransferMoneyDeposited.class) @JsonDeserialize(as = ImmutableTransferMoneyDeposited.class) diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyEvent.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyEvent.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyEvent.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyEvent.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyFailed.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyFailed.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyFailed.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyFailed.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyWithdrawn.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyWithdrawn.java similarity index 97% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyWithdrawn.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyWithdrawn.java index 78c2201..9194565 100644 --- a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyWithdrawn.java +++ b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/TransferMoneyWithdrawn.java @@ -5,8 +5,6 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.mz.reactor.ddd.reactorddd.account.domain.command.WithdrawTransferMoney; import org.immutables.value.Value; -import java.math.BigDecimal; - @Value.Immutable @JsonSerialize(as = ImmutableTransferMoneyWithdrawn.class) @JsonDeserialize(as = ImmutableTransferMoneyWithdrawn.class) diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawMoneyFailed.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawMoneyFailed.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawMoneyFailed.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawMoneyFailed.java diff --git a/bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawTransferMoneyFailed.java b/bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawTransferMoneyFailed.java similarity index 100% rename from bank-account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawTransferMoneyFailed.java rename to bank-account/account/account-domain-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawTransferMoneyFailed.java diff --git a/bank-account/account/account-domain/build.gradle b/bank-account/account/account-domain/build.gradle new file mode 100644 index 0000000..88bacde --- /dev/null +++ b/bank-account/account/account-domain/build.gradle @@ -0,0 +1,6 @@ +description 'domain implementation of banck account' + +dependencies { + api project(':common-api') + api project(':bank-account:account:account-domain-api') +} \ No newline at end of file diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregate.java b/bank-account/account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregate.java similarity index 100% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregate.java rename to bank-account/account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregate.java diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountCommandHandler.java b/bank-account/account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountCommandHandler.java similarity index 100% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountCommandHandler.java rename to bank-account/account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountCommandHandler.java diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountEventHandler.java b/bank-account/account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountEventHandler.java similarity index 100% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountEventHandler.java rename to bank-account/account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountEventHandler.java diff --git a/bank-account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregateTest.java b/bank-account/account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregateTest.java similarity index 100% rename from bank-account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregateTest.java rename to bank-account/account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregateTest.java diff --git a/bank-account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommandHandlerTest.java b/bank-account/account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommandHandlerTest.java similarity index 100% rename from bank-account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommandHandlerTest.java rename to bank-account/account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommandHandlerTest.java diff --git a/bank-account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventHandlerTest.java b/bank-account/account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventHandlerTest.java similarity index 96% rename from bank-account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventHandlerTest.java rename to bank-account/account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventHandlerTest.java index 021f43b..dc9ca4a 100644 --- a/bank-account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventHandlerTest.java +++ b/bank-account/account/account-domain/src/test/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventHandlerTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; import java.math.BigDecimal; import java.util.UUID; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; class AccountEventHandlerTest { diff --git a/bank-account/account/account-http-api/build.gradle b/bank-account/account/account-http-api/build.gradle new file mode 100644 index 0000000..026866e --- /dev/null +++ b/bank-account/account/account-http-api/build.gradle @@ -0,0 +1,7 @@ +dependencies { + api project(':common-api') + api project(':common-components') + api project(':shared-spring-dependencies') + api project(':bank-account:account:account-domain-api') + implementation project(':bank-account:account:account-api') +} \ No newline at end of file diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountHandler.java b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/AccountHandler.java similarity index 82% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountHandler.java rename to bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/AccountHandler.java index 0abd5f2..552d2af 100644 --- a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/AccountHandler.java +++ b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/AccountHandler.java @@ -1,8 +1,11 @@ -package com.mz.reactor.ddd.reactorddd.account.api; +package com.mz.reactor.ddd.reactorddd.account.http; +import com.fasterxml.jackson.databind.ObjectMapper; import com.mz.reactor.ddd.common.components.http.HttpHandler; -import com.mz.reactor.ddd.reactorddd.account.api.model.*; +import com.mz.reactor.ddd.reactorddd.account.api.AccountApplicationService; +import com.mz.reactor.ddd.reactorddd.account.api.AccountQuery; import com.mz.reactor.ddd.reactorddd.account.domain.AccountState; +import com.mz.reactor.ddd.reactorddd.account.http.model.*; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; @@ -18,13 +21,21 @@ import static org.springframework.web.reactive.function.server.RequestPredicates @Component public class AccountHandler implements HttpHandler { + private final ObjectMapper mapper; + private final AccountApplicationService service; private final AccountQuery accountQuery; private final Scheduler scheduler; - public AccountHandler(AccountApplicationService service, AccountQuery accountQuery, @Qualifier("JsonDesScheduler") Scheduler scheduler) { + public AccountHandler( + AccountApplicationService service, + AccountQuery accountQuery, + @Qualifier("JsonDesScheduler") Scheduler scheduler, + ObjectMapper mapper + ) { + this.mapper = mapper; this.service = service; this.accountQuery = accountQuery; this.scheduler = scheduler; @@ -78,4 +89,9 @@ public class AccountHandler implements HttpHandler { .build(); } + @Override + public ObjectMapper mapper() { + return mapper; + } + } diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/CreateAccountRequest.java b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/CreateAccountRequest.java similarity index 90% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/CreateAccountRequest.java rename to bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/CreateAccountRequest.java index 45026db..6452903 100644 --- a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/CreateAccountRequest.java +++ b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/CreateAccountRequest.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.account.api.model; +package com.mz.reactor.ddd.reactorddd.account.http.model; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/CreateAccountResponse.java b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/CreateAccountResponse.java similarity index 92% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/CreateAccountResponse.java rename to bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/CreateAccountResponse.java index 777d3cd..7c2fc0f 100644 --- a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/CreateAccountResponse.java +++ b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/CreateAccountResponse.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.account.api.model; +package com.mz.reactor.ddd.reactorddd.account.http.model; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/DepositMoneyRequest.java b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/DepositMoneyRequest.java similarity index 90% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/DepositMoneyRequest.java rename to bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/DepositMoneyRequest.java index 4442df5..305158f 100644 --- a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/DepositMoneyRequest.java +++ b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/DepositMoneyRequest.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.account.api.model; +package com.mz.reactor.ddd.reactorddd.account.http.model; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/DepositMoneyResponse.java b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/DepositMoneyResponse.java similarity index 92% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/DepositMoneyResponse.java rename to bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/DepositMoneyResponse.java index 9c3b9bf..05a3d52 100644 --- a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/DepositMoneyResponse.java +++ b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/DepositMoneyResponse.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.account.api.model; +package com.mz.reactor.ddd.reactorddd.account.http.model; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/WithdrawMoneyRequest.java b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/WithdrawMoneyRequest.java similarity index 90% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/WithdrawMoneyRequest.java rename to bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/WithdrawMoneyRequest.java index 2283143..1cd0f07 100644 --- a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/WithdrawMoneyRequest.java +++ b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/WithdrawMoneyRequest.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.account.api.model; +package com.mz.reactor.ddd.reactorddd.account.http.model; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/WithdrawMoneyResponse.java b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/WithdrawMoneyResponse.java similarity index 92% rename from bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/WithdrawMoneyResponse.java rename to bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/WithdrawMoneyResponse.java index 8086ef0..1cf4d99 100644 --- a/bank-account/account-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/api/model/WithdrawMoneyResponse.java +++ b/bank-account/account/account-http-api/src/main/java/com/mz/reactor/ddd/reactorddd/account/http/model/WithdrawMoneyResponse.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.account.api.model; +package com.mz.reactor.ddd.reactorddd.account.http.model; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/bank-account/account/account-impl/build.gradle b/bank-account/account/account-impl/build.gradle new file mode 100644 index 0000000..b480b21 --- /dev/null +++ b/bank-account/account/account-impl/build.gradle @@ -0,0 +1,13 @@ +description('account implementation of infrastructure layer') + +dependencies { + api project(':common-api') + api project(':common-components') + api project(':common-persistence') + api project(':shared-spring-dependencies') + api project(':shared-spring-dependencies') + api project(':bank-account:transaction-domain-api') + api project(':bank-account:account:account-domain-api') + api project(':bank-account:account:account-api') + api project(':bank-account:account:account-domain') +} \ No newline at end of file diff --git a/bank-account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountApplicationServiceImpl.java b/bank-account/account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountApplicationServiceImpl.java similarity index 79% rename from bank-account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountApplicationServiceImpl.java rename to bank-account/account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountApplicationServiceImpl.java index 8c9ee9c..e7452ef 100644 --- a/bank-account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountApplicationServiceImpl.java +++ b/bank-account/account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountApplicationServiceImpl.java @@ -1,23 +1,23 @@ package com.mz.reactor.ddd.reactorddd.account.impl; import com.mz.reactor.ddd.common.api.event.DomainEvent; -import com.mz.reactor.ddd.common.components.bus.ApplicationMessageBus; import com.mz.reactor.ddd.reactorddd.account.api.AccountApplicationService; import com.mz.reactor.ddd.reactorddd.account.domain.AccountAggregate; import com.mz.reactor.ddd.reactorddd.account.domain.AccountState; -import com.mz.reactor.ddd.reactorddd.account.domain.command.*; -import com.mz.reactor.ddd.reactorddd.account.domain.event.*; +import com.mz.reactor.ddd.reactorddd.account.domain.command.AccountCommand; +import com.mz.reactor.ddd.reactorddd.account.domain.command.CreateAccount; +import com.mz.reactor.ddd.reactorddd.account.domain.command.DepositMoney; +import com.mz.reactor.ddd.reactorddd.account.domain.command.WithdrawMoney; +import com.mz.reactor.ddd.reactorddd.account.domain.event.AccountCreated; +import com.mz.reactor.ddd.reactorddd.account.domain.event.MoneyDeposited; +import com.mz.reactor.ddd.reactorddd.account.domain.event.MoneyWithdrawn; import com.mz.reactor.ddd.reactorddd.persistance.aggregate.AggregateFacade; -import com.mz.reactor.ddd.reactorddd.transaction.domain.event.TransactionCreated; -import com.mz.reactor.ddd.reactorddd.transaction.domain.event.TransactionFailed; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import reactor.core.publisher.Mono; -import java.util.Optional; - @Service public class AccountApplicationServiceImpl implements AccountApplicationService { diff --git a/bank-account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountQueryImpl.java b/bank-account/account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountQueryImpl.java similarity index 100% rename from bank-account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountQueryImpl.java rename to bank-account/account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/impl/AccountQueryImpl.java diff --git a/bank-account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/wiring/AccountConfiguration.java b/bank-account/account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/wiring/AccountConfiguration.java similarity index 100% rename from bank-account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/wiring/AccountConfiguration.java rename to bank-account/account/account-impl/src/main/java/com/mz/reactor/ddd/reactorddd/account/wiring/AccountConfiguration.java diff --git a/bank-account/bank-account-application/build.gradle b/bank-account/bank-account-application/build.gradle index 62902ca..f52361b 100644 --- a/bank-account/bank-account-application/build.gradle +++ b/bank-account/bank-account-application/build.gradle @@ -1 +1,22 @@ +apply plugin: 'org.springframework.boot' + description = 'back account application' + + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-webflux' + implementation project(':common-api') + implementation project(':common-components') + implementation project(':common-persistence') + implementation project(':bank-account:account:account-impl') + implementation project(':bank-account:account:account-api') + implementation project(':bank-account:account:account-http-api') + implementation project(':bank-account:account:account-domain') + implementation project(':bank-account:account:account-adapters') + implementation project(':bank-account:transaction-impl') + implementation project(':bank-account:transaction-api') + implementation project(':bank-account:transaction-domain') + implementation project(':bank-account:transaction-adapters') + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'io.projectreactor:reactor-test' +} \ No newline at end of file diff --git a/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountApp.java b/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountApp.java index f743798..52ba567 100644 --- a/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountApp.java +++ b/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountApp.java @@ -2,14 +2,16 @@ package com.mz.reactor.ddd.reactorddd.application; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import reactor.blockhound.BlockHound; @SpringBootApplication public class BankAccountApp { +// @Autowired +// private ObjectMapper objectMapper; + static { - BlockHound.install(); +// BlockHound.install(); } public static void main(String[] args) { @@ -17,4 +19,9 @@ public class BankAccountApp { SpringApplication.run(BankAccountApp.class, args); } +// @PostConstruct +// public void setUp() { +// objectMapper.registerModule(new JavaTimeModule()); +// } + } diff --git a/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppConfiguration.java b/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppConfiguration.java index 88ddd4e..def8450 100644 --- a/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppConfiguration.java +++ b/bank-account/bank-account-application/src/main/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppConfiguration.java @@ -1,14 +1,18 @@ package com.mz.reactor.ddd.reactorddd.application; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.mz.reactor.ddd.common.components.http.HttpHandlerFunctions; -import com.mz.reactor.ddd.reactorddd.account.api.AccountHandler; +import com.mz.reactor.ddd.reactorddd.account.http.AccountHandler; import com.mz.reactor.ddd.reactorddd.transaction.api.TransactionHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; import org.springframework.http.MediaType; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunctions; import org.springframework.web.reactive.function.server.ServerResponse; @@ -42,4 +46,12 @@ public class BankAccountAppConfiguration { .build(); } + @Bean + @Primary + public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) { + ObjectMapper objectMapper = builder.build(); + objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + return objectMapper; + } + } diff --git a/bank-account/bank-account-application/src/main/resources/application.properties b/bank-account/bank-account-application/src/main/resources/application.properties deleted file mode 100644 index 8b13789..0000000 --- a/bank-account/bank-account-application/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/bank-account/bank-account-application/src/main/resources/application.yml b/bank-account/bank-account-application/src/main/resources/application.yml new file mode 100644 index 0000000..b8ef612 --- /dev/null +++ b/bank-account/bank-account-application/src/main/resources/application.yml @@ -0,0 +1,4 @@ +spring: + jackson: + serialization: + write-dates-as-timestamps: false \ No newline at end of file diff --git a/bank-account/bank-account-application/src/test/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppTest.java b/bank-account/bank-account-application/src/test/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppTest.java index b1ac188..4f5beeb 100644 --- a/bank-account/bank-account-application/src/test/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppTest.java +++ b/bank-account/bank-account-application/src/test/java/com/mz/reactor/ddd/reactorddd/application/BankAccountAppTest.java @@ -1,9 +1,9 @@ package com.mz.reactor.ddd.reactorddd.application; -import com.mz.reactor.ddd.reactorddd.account.api.model.CreateAccountRequest; -import com.mz.reactor.ddd.reactorddd.account.api.model.CreateAccountResponse; import com.mz.reactor.ddd.reactorddd.account.domain.AccountState; import com.mz.reactor.ddd.reactorddd.account.domain.command.CreateAccount; +import com.mz.reactor.ddd.reactorddd.account.http.model.CreateAccountRequest; +import com.mz.reactor.ddd.reactorddd.account.http.model.CreateAccountResponse; import com.mz.reactor.ddd.reactorddd.transaction.api.model.CreateTransactionRequest; import com.mz.reactor.ddd.reactorddd.transaction.api.model.CreateTransactionResponse; import com.mz.reactor.ddd.reactorddd.transaction.domain.TransactionState; diff --git a/bank-account/transaction-adapters/build.gradle b/bank-account/transaction-adapters/build.gradle index 88abff9..ded8893 100644 --- a/bank-account/transaction-adapters/build.gradle +++ b/bank-account/transaction-adapters/build.gradle @@ -1 +1,9 @@ description('transactions-adapters') + +dependencies { + api project(':common-api') + api project(':bank-account:transaction-domain-api') + api project(':bank-account:transaction-api') + api project(':bank-account:account:account-domain-api') + api project(':shared-spring-dependencies') +} diff --git a/bank-account/transaction-api/build.gradle b/bank-account/transaction-api/build.gradle index 6cec871..dfb6db2 100644 --- a/bank-account/transaction-api/build.gradle +++ b/bank-account/transaction-api/build.gradle @@ -1 +1,8 @@ description('transaction-api module') + +dependencies { + api project(':common-api') + api project(':common-components') + api project(':shared-spring-dependencies') + api project(':bank-account:transaction-domain-api') +} \ No newline at end of file diff --git a/bank-account/transaction-api/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/api/TransactionHandler.java b/bank-account/transaction-api/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/api/TransactionHandler.java index d16c04e..e251218 100644 --- a/bank-account/transaction-api/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/api/TransactionHandler.java +++ b/bank-account/transaction-api/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/api/TransactionHandler.java @@ -1,5 +1,6 @@ package com.mz.reactor.ddd.reactorddd.transaction.api; +import com.fasterxml.jackson.databind.ObjectMapper; import com.mz.reactor.ddd.common.components.http.HttpHandler; import com.mz.reactor.ddd.reactorddd.transaction.api.model.CreateTransactionRequest; import com.mz.reactor.ddd.reactorddd.transaction.api.model.CreateTransactionResponse; @@ -23,9 +24,12 @@ public class TransactionHandler implements HttpHandler { private final TransactionQuery query; - public TransactionHandler(TransactionApplicationService transactionApplicationService, TransactionQuery query) { + private final ObjectMapper mapper; + + public TransactionHandler(TransactionApplicationService transactionApplicationService, TransactionQuery query, ObjectMapper mapper) { this.service = Objects.requireNonNull(transactionApplicationService); this.query = Objects.requireNonNull(query); + this.mapper = mapper; } public Mono getAll(ServerRequest request) { @@ -58,4 +62,9 @@ public class TransactionHandler implements HttpHandler { .nest(path("/transactions"), () -> route) .build(); } + + @Override + public ObjectMapper mapper() { + return mapper; + } } diff --git a/bank-account/transaction-domain-api/build.gradle b/bank-account/transaction-domain-api/build.gradle index 07e3a84..35dcf49 100644 --- a/bank-account/transaction-domain-api/build.gradle +++ b/bank-account/transaction-domain-api/build.gradle @@ -1 +1,5 @@ description('domain api modele for transaction domain') + +dependencies { + api project(':common-api') +} \ No newline at end of file diff --git a/bank-account/transaction-domain/build.gradle b/bank-account/transaction-domain/build.gradle index 5a00a1e..6dab4c5 100644 --- a/bank-account/transaction-domain/build.gradle +++ b/bank-account/transaction-domain/build.gradle @@ -1 +1,6 @@ -description 'bank transation domain' \ No newline at end of file +description 'bank transation domain' + +dependencies { + api project(':common-api') + api project(':bank-account:transaction-domain-api') +} \ No newline at end of file diff --git a/bank-account/transaction-impl/build.gradle b/bank-account/transaction-impl/build.gradle index e8e6e4b..bc3c4a2 100644 --- a/bank-account/transaction-impl/build.gradle +++ b/bank-account/transaction-impl/build.gradle @@ -1 +1,12 @@ -description('transaction-impl module') \ No newline at end of file +description('transaction-impl module') + +dependencies { + api project(':common-api') + api project(':common-components') + api project(':common-persistence') + api project(':shared-spring-dependencies') + api project(':bank-account:transaction-domain-api') + api project(':bank-account:account:account-domain-api') + api project(':bank-account:transaction-api') + api project(':bank-account:transaction-domain') +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 46c50e5..b5dee9b 100644 --- a/build.gradle +++ b/build.gradle @@ -53,10 +53,16 @@ subprojects { dependencies { implementation group: 'com.google.guava', name: 'guava', version: '28.1-jre' implementation 'io.projectreactor.tools:blockhound:1.0.0.RC1' - annotationProcessor 'org.immutables:value:2.7.5' + annotationProcessor "org.immutables:value:$immutablesVersion" + implementation "org.immutables:value:$immutablesVersion" + implementation "com.fasterxml.jackson.core:jackson-core" + implementation "com.fasterxml.jackson.core:jackson-databind" + implementation "com.fasterxml.jackson.datatype:jackson-datatype-jdk8" + implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine' - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" testCompile group: 'org.assertj', name: 'assertj-core', version: '3.14.0' + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" } test { @@ -65,163 +71,3 @@ subprojects { } } } - -project(':common-api') { - dependencies { - api project(':shared-dependencies') - } -} - -project(':bank-account:bank-account-application') { - apply plugin: 'io.spring.dependency-management' - apply plugin: 'org.springframework.boot' - - dependencies { - implementation 'org.springframework.boot:spring-boot-starter-webflux' - implementation project(':common-api') - implementation project(':common-components') - implementation project(':common-persistence') - implementation project(':bank-account:account-impl') - implementation project(':bank-account:account-api') - implementation project(':bank-account:account-domain') - implementation project(':bank-account:account-adapters') - implementation project(':bank-account:transaction-impl') - implementation project(':bank-account:transaction-api') - implementation project(':bank-account:transaction-domain') - implementation project(':bank-account:transaction-adapters') - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'io.projectreactor:reactor-test' - } -} - -project(':bank-account:account-domain') { - dependencies { - api project(':common-api') - api project(':bank-account:account-domain-api') - } -} - -project(':bank-account:account-domain-api') { - dependencies { - api project(':common-api') - } -} - -project(':bank-account:account-api') { - dependencies { - api project(':common-api') - api project(':common-components') - api project(':shared-spring-dependencies') - api project(':bank-account:account-domain-api') - } -} - -project(':bank-account:transaction-api') { - dependencies { - api project(':common-api') - api project(':common-components') - api project(':shared-spring-dependencies') - api project(':bank-account:transaction-domain-api') - } -} - -project(':bank-account:account-impl') { - dependencies { - api project(':common-api') - api project(':common-components') - api project(':common-persistence') - api project(':shared-spring-dependencies') - api project(':shared-spring-dependencies') - api project(':bank-account:transaction-domain-api') - api project(':bank-account:account-domain-api') - api project(':bank-account:account-api') - api project(':bank-account:account-domain') - } -} - - -project(':bank-account:transaction-adapters') { - dependencies { - api project(':common-api') - api project(':bank-account:transaction-domain-api') - api project(':bank-account:transaction-api') - api project(':bank-account:account-domain-api') - api project(':shared-spring-dependencies') - } -} - -project(':bank-account:transaction-impl') { - dependencies { - api project(':common-api') - api project(':common-components') - api project(':common-persistence') - api project(':shared-spring-dependencies') - api project(':bank-account:transaction-domain-api') - api project(':bank-account:account-domain-api') - api project(':bank-account:transaction-api') - api project(':bank-account:transaction-domain') - } -} - -project(':bank-account:transaction-domain') { - dependencies { - api project(':common-api') - api project(':bank-account:transaction-domain-api') - } -} - -project(':bank-account:account-adapters') { - dependencies { - api project(':common-api') - api project(':bank-account:transaction-domain-api') - api project(':bank-account:account-api') - api project(':bank-account:account-domain-api') - api project(':shared-spring-dependencies') - } -} - -project(':bank-account:transaction-domain-api') { - dependencies { - api project(':common-api') - } -} - -project(':shared-dependencies') { - dependencies { - api "org.immutables:value:$immutablesVersion" - api "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion" - api "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$jacksonVersion" - api group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' - } -} - -project(':shared-spring-dependencies') { - apply plugin: 'io.spring.dependency-management' - - dependencies { - api group: 'io.projectreactor', name: 'reactor-core' - api 'org.springframework:spring-context' - api 'org.springframework:spring-webflux' - api 'org.springframework:spring-core' - } -} - -project(':common-persistence') { - - dependencies { - api project(':common-api') -// implementation group: 'io.projectreactor', name: 'reactor-core' - api project(':shared-spring-dependencies') - testImplementation 'io.projectreactor:reactor-test' - } -} - -project(':common-components') { - apply plugin: 'io.spring.dependency-management' - - dependencies { - api project(':common-api') - api project(':shared-spring-dependencies') - testImplementation 'io.projectreactor:reactor-test' - } -} diff --git a/common-api/build.gradle b/common-api/build.gradle index 2ad91d6..bc81e34 100644 --- a/common-api/build.gradle +++ b/common-api/build.gradle @@ -1 +1,5 @@ description = 'common API' + +dependencies { + api project(':shared-dependencies') +} diff --git a/common-components/build.gradle b/common-components/build.gradle index b5506a5..f275eb8 100644 --- a/common-components/build.gradle +++ b/common-components/build.gradle @@ -1 +1,11 @@ +apply plugin: 'io.spring.dependency-management' + description('common compents such as message-buss component ...') + + +dependencies { + api project(':common-api') + api project(':shared-spring-dependencies') + testImplementation 'io.projectreactor:reactor-test' + implementation "org.immutables:value:$immutablesVersion" +} \ No newline at end of file diff --git a/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandler.java b/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandler.java index aa4c3c5..83f5e84 100644 --- a/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandler.java +++ b/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandler.java @@ -1,5 +1,6 @@ package com.mz.reactor.ddd.common.components.http; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.ServerRequest; @@ -13,14 +14,16 @@ public interface HttpHandler { RouterFunction route(); + ObjectMapper mapper(); + default Mono bodyToMono(ServerRequest request, Class clazz, Scheduler scheduler) { return request.bodyToMono(String.class) - .flatMap(HttpHandlerFunctions.FN.deserializeJsonString(clazz, scheduler)); + .flatMap(HttpHandlerFunctions.FN.deserializeJsonString(clazz, scheduler, mapper())); } default Mono bodyToMono(ServerRequest request, Class clazz) { return request.bodyToMono(String.class) - .flatMap(HttpHandlerFunctions.FN.deserializeJsonString(clazz)); + .flatMap(HttpHandlerFunctions.FN.deserializeJsonString(clazz, mapper())); } default Mono mapToResponse(T result) { diff --git a/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandlerFunctions.java b/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandlerFunctions.java index 9338da8..0477031 100644 --- a/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandlerFunctions.java +++ b/common-components/src/main/java/com/mz/reactor/ddd/common/components/http/HttpHandlerFunctions.java @@ -1,7 +1,6 @@ package com.mz.reactor.ddd.common.components.http; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.reactive.function.server.ServerRequest; @@ -19,20 +18,24 @@ import static org.springframework.web.reactive.function.BodyInserters.fromObject public enum HttpHandlerFunctions { FN; - public Function> deserializeJsonString(@Nonnull Class clazz, @Nonnull Scheduler scheduler) { - return value -> Mono.fromCallable(() -> { - ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new Jdk8Module()); - return mapper.readValue(value, clazz); - }).subscribeOn(scheduler); +// private final ObjectMapper mapper; +// +// HttpHandlerFunctions() { +// mapper = new ObjectMapper(); +// mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); +// mapper.registerModule(new Jdk8Module()); +// } + + public Function> deserializeJsonString( + @Nonnull Class clazz, + @Nonnull Scheduler scheduler, + @Nonnull ObjectMapper mapper + ) { + return value -> Mono.fromCallable(() -> mapper.readValue(value, clazz)).subscribeOn(scheduler); } - public Function> deserializeJsonString(@Nonnull Class clazz) { - return value -> Mono.fromCallable(() -> { - ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new Jdk8Module()); - return mapper.readValue(value, clazz); - }).subscribeOn(Schedulers.elastic()); + public Function> deserializeJsonString(@Nonnull Class clazz, @Nonnull ObjectMapper mapper) { + return value -> Mono.fromCallable(() -> mapper.readValue(value, clazz)).subscribeOn(Schedulers.elastic()); } public Mono onError(E e, ServerRequest req, Consumer logger) { diff --git a/common-persistence/build.gradle b/common-persistence/build.gradle index e69de29..d9bd786 100644 --- a/common-persistence/build.gradle +++ b/common-persistence/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api project(':common-api') +// implementation group: 'io.projectreactor', name: 'reactor-core' + api project(':shared-spring-dependencies') + testImplementation 'io.projectreactor:reactor-test' +} \ No newline at end of file diff --git a/common-persistence/src/test/java/com/mz/reactor/ddd/reactorddd/persistance/aggregate/impl/Person.java b/common-persistence/src/test/java/com/mz/reactor/ddd/reactorddd/persistance/aggregate/impl/Person.java new file mode 100644 index 0000000..fa1a650 --- /dev/null +++ b/common-persistence/src/test/java/com/mz/reactor/ddd/reactorddd/persistance/aggregate/impl/Person.java @@ -0,0 +1,54 @@ +package com.mz.reactor.ddd.reactorddd.persistance.aggregate.impl; + +public class Person { + + private final String name; + + private final String surname; + + private Person(Builder builder) { + name = builder.name; + surname = builder.surname; + } + + public String getName() { + return name; + } + + public String getSurname() { + return surname; + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static Builder newBuilder(Person copy) { + Builder builder = new Builder(); + builder.name = copy.getName(); + builder.surname = copy.getSurname(); + return builder; + } + + public static final class Builder { + private String name; + private String surname; + + private Builder() { + } + + public Builder withName(String name) { + this.name = name; + return this; + } + + public Builder withSurname(String surname) { + this.surname = surname; + return this; + } + + public Person build() { + return new Person(this); + } + } +} diff --git a/common-persistence/src/test/java/com/mz/reactor/ddd/reactorddd/persistance/aggregate/impl/TestData.java b/common-persistence/src/test/java/com/mz/reactor/ddd/reactorddd/persistance/aggregate/impl/TestData.java new file mode 100644 index 0000000..bcab939 --- /dev/null +++ b/common-persistence/src/test/java/com/mz/reactor/ddd/reactorddd/persistance/aggregate/impl/TestData.java @@ -0,0 +1,68 @@ +package com.mz.reactor.ddd.reactorddd.persistance.aggregate.impl; + +public class TestData { + + private final String name; + + private final String signature; + + private final String numbers; + + private TestData(Builder builder) { + name = builder.name; + signature = builder.signature; + numbers = builder.numbers; + } + + public String getName() { + return name; + } + + public String getSignature() { + return signature; + } + + public String getNumbers() { + return numbers; + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static Builder newBuilder(TestData copy) { + Builder builder = new Builder(); + builder.name = copy.getName(); + builder.signature = copy.getSignature(); + builder.numbers = copy.getNumbers(); + return builder; + } + + public static final class Builder { + private String name; + private String signature; + private String numbers; + + private Builder() { + } + + public Builder withName(String name) { + this.name = name; + return this; + } + + public Builder withSignature(String signature) { + this.signature = signature; + return this; + } + + public Builder withNumbers(String numbers) { + this.numbers = numbers; + return this; + } + + public TestData build() { + return new TestData(this); + } + } +} diff --git a/settings.gradle b/settings.gradle index 6bb0b7e..196e351 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,17 +1,27 @@ +//pluginManagement { +// id 'io.spring.dependency-management' version "$springDependencyMavagementVersion" +// id 'java' +// id 'java-library' +//} + + rootProject.name = 'reactor-ddd' include 'common-api' -include 'bank-account:bank-account-application' -include 'bank-account:account-domain' -include 'bank-account:transaction-domain' include 'shared-dependencies' include 'shared-spring-dependencies' include 'common-persistence' include 'common-components' -include 'bank-account:account-domain-api' +include 'bank-account:bank-account-application' +include 'bank-account:account:account-domain' +include 'bank-account:account:account-domain-api' +include 'bank-account:account:account-api' +include 'bank-account:account:account-impl' +include 'bank-account:account:account-adapters' +include 'bank-account:transaction-domain' include 'bank-account:transaction-domain-api' -include 'bank-account:account-api' -include 'bank-account:account-impl' include 'bank-account:transaction-impl' include 'bank-account:transaction-api' -include 'bank-account:account-adapters' include 'bank-account:transaction-adapters' +include 'bank-account:account:account-http-api' +findProject(':bank-account:account:account-http-api')?.name = 'account-http-api' + diff --git a/shared-dependencies/build.gradle b/shared-dependencies/build.gradle index 1773803..a157d5b 100644 --- a/shared-dependencies/build.gradle +++ b/shared-dependencies/build.gradle @@ -1 +1,11 @@ +apply plugin: 'io.spring.dependency-management' + description 'shared dependencies' + + +dependencies { + api group: 'io.projectreactor', name: 'reactor-core' + api 'org.springframework:spring-context' + api 'org.springframework:spring-webflux' + api 'org.springframework:spring-core' +} \ No newline at end of file