diff --git a/README.md b/README.md
index 59a4fc6..dedd799 100644
--- a/README.md
+++ b/README.md
@@ -35,27 +35,16 @@ The following diagram shows the architecture:

-There are the following logical services:
+There are the following services:
-* Customers (command-side) - REST API for creating customers
-* Accounts (command-side) - REST API for creating accounts
-* Money transfers (command-side) - REST API for transferring money
-* Customers (query-side) - subscribes to events and updates a MongoDB View, and provides an API for retrieving customers
-* Accounts (query-side) - subscribes to events and updates a MongoDB View, and provides an API for retrieving accounts
+* Customers Service - REST API for creating customers
+* Accounts Service - REST API for creating accounts
+* Transactions Service - REST API for transferring money
+* Customers View Service - subscribes to events and updates a MongoDB View, and provides an API for retrieving customers
+* Accounts View Service - subscribes to events and updates a MongoDB View, and provides an API for retrieving accounts
There is also an [API gateway](http://microservices.io/patterns/apigateway.html) service that acts as a Facade in front of the services.
-One of the neat things about the modular architecture is that there are two ways to deploy these four services:
-
-* monolithic-service - all services are packaged as a single Spring Boot executable JAR
-* Microservices - three separate Spring Boot executable JARs
- * customer-command-side-service - command-side customers
- * accounts-command-side-service - command-side accounts
- * transactions-command-side-service - command-side money transfers
- * customers-query-side-service - query-side customers
- * accounts-query-side-service - query-side accounts
- * api-gateway-service - API gateway service
-
# About the examples
There are currently the following versions of the example application:
diff --git a/_build-and-test-all.sh b/_build-and-test-all.sh
index 7120f90..b5187d5 100755
--- a/_build-and-test-all.sh
+++ b/_build-and-test-all.sh
@@ -47,7 +47,7 @@ fi
export SERVICE_HOST=$DOCKER_HOST_IP
-./gradlew $* build -x :e2e-test:test
+./gradlew $BUILD_AND_TEST_ALL_EXTRA_GRADLE_ARGS $* build -x :e2e-test:test
if [ -z "$EVENTUATE_LOCAL" ] && [ -z "$EVENTUATE_API_KEY_ID" -o -z "$EVENTUATE_API_KEY_SECRET" ] ; then
echo You must set EVENTUATE_API_KEY_ID and EVENTUATE_API_KEY_SECRET
@@ -58,11 +58,11 @@ ${DOCKER_COMPOSE?} build
${DOCKER_COMPOSE?} up -d
-$DIR/wait-for-services.sh $DOCKER_HOST_IP 8080 8081 8082
+$DIR/wait-for-services.sh $DOCKER_HOST_IP 8080 8081 8082 8083 8084
set -e
-./gradlew -a $* :e2e-test:cleanTest :e2e-test:test -P ignoreE2EFailures=false
+./gradlew $BUILD_AND_TEST_ALL_EXTRA_GRADLE_ARGS -a $* :e2e-test:cleanTest :e2e-test:test -P ignoreE2EFailures=false
if [ $NO_RM = false ] ; then
${DOCKER_COMPOSE?} stop
diff --git a/java-spring/README.md b/java-spring/README.md
index 7909f32..574adda 100644
--- a/java-spring/README.md
+++ b/java-spring/README.md
@@ -2,34 +2,10 @@ This is the Java/Spring version of the Event Sourcing/CQRS money transfer exampl
# About the application
-This application consists of three microservices:
+This application consists of the following microservices:
* Account Service - the command side business logic for Accounts
- * Money Transfer Service - the command side business logic for Money Transfers
- * Query service - query side implementation of a MongoDB-based, denormalized view of Accounts and MoneyTransfers
-
-The Account Service consists of the following modules:
-
- * accounts-command-side-backend - the Account aggregate
- * accounts-command-side-web - a REST API for creating and retrieving Accounts
- * accounts-command-side-service - a standalone microservice
-
-The Money Transfer Service consists of the following modules:
-
- * transactions-command-side-backend - the MoneyTransfer aggregate
- * transactions-command-side-web - a REST API for creating and retrieving Money Transfers
- * transactions-command-side-service - a standalone microservice
-
-The Query Service consists the following modules:
-
- * accounts-query-side-backend - MongoDB-based, denormalized view of Accounts and MoneyTransfers
- * accounts-query-side-web - a REST API for querying the denormalized view
- * accounts-query-side-service - a standalone microservice
-
-# Deploying the application
-
-These services can be deployed either as either separate standalone services using the Event Store server, or they can be deployed as a monolithic application for simplified integration testing.
-
-The three services can also be packaged as a single monolithic web application in order to be used with the embedded Event Store:
-
- * monolithic-service - all-in-one, monolithic packaging of the application
+ * Account View Service - query side implementation of a MongoDB-based, denormalized view of Accounts
+ * Customer Service - the command side business logic for Customers
+ * Customer View Service - query side implementation of a MongoDB-based, denormalized view of Customers
+ * Transaction Service - the command side business logic for Money Transfers
diff --git a/java-spring/accounts-command-side-backend/build.gradle b/java-spring/accounts-command-side-backend/build.gradle
deleted file mode 100644
index 075d8fa..0000000
--- a/java-spring/accounts-command-side-backend/build.gradle
+++ /dev/null
@@ -1,14 +0,0 @@
-apply plugin: 'java'
-
-dependencies {
-
- compile project(":common-backend")
- compile "io.eventuate.client.java:eventuate-client-java-spring:$eventuateClientVersion"
-
- testCompile project(":testutil")
- testCompile "junit:junit:4.11"
- testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
- testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-
-
-}
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountCommand.java b/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountCommand.java
deleted file mode 100644
index 09e40a8..0000000
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountCommand.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
-
-
-import io.eventuate.Command;
-
-interface AccountCommand extends Command {
-}
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/DeleteAccountCommand.java b/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/DeleteAccountCommand.java
deleted file mode 100644
index b96c6b3..0000000
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/DeleteAccountCommand.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
-
-public class DeleteAccountCommand implements AccountCommand {
-}
diff --git a/java-spring/accounts-command-side-service/Dockerfile b/java-spring/accounts-command-side-service/Dockerfile
deleted file mode 100644
index 89c87f9..0000000
--- a/java-spring/accounts-command-side-service/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:openjdk-8u91-jdk
-CMD java ${JAVA_OPTS} -jar accounts-command-side-service.jar
-EXPOSE 8080
-COPY build/libs/accounts-command-side-service.jar .
\ No newline at end of file
diff --git a/java-spring/accounts-command-side-service/build.gradle b/java-spring/accounts-command-side-service/build.gradle
deleted file mode 100644
index 19b152b..0000000
--- a/java-spring/accounts-command-side-service/build.gradle
+++ /dev/null
@@ -1,20 +0,0 @@
-apply plugin: VerifyMongoDBConfigurationPlugin
-apply plugin: VerifyEventStoreEnvironmentPlugin
-apply plugin: EventuateDependencyPlugin
-
-apply plugin: 'spring-boot'
-
-dependencies {
- compile project(":accounts-command-side-web")
- compile project(":common-swagger")
-
- compile "org.springframework.boot:spring-boot-starter-web"
- compile "org.springframework.boot:spring-boot-starter-actuator"
-
- testCompile "org.springframework.boot:spring-boot-starter-test"
-
-}
-
-test {
- ignoreFailures System.getenv("EVENTUATE_API_KEY_ID") == null
-}
diff --git a/java-spring/accounts-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/AccountsCommandSideServiceMain.java b/java-spring/accounts-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/AccountsCommandSideServiceMain.java
deleted file mode 100644
index 4ecadc8..0000000
--- a/java-spring/accounts-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/AccountsCommandSideServiceMain.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.main;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.web.AccountsCommandSideServiceConfiguration;
-import org.springframework.boot.SpringApplication;
-
-public class AccountsCommandSideServiceMain {
-
- public static void main(String[] args) {
- SpringApplication.run(AccountsCommandSideServiceConfiguration.class, args);
- }
-}
diff --git a/java-spring/accounts-command-side-web/build.gradle b/java-spring/accounts-command-side-web/build.gradle
deleted file mode 100644
index 4ab9880..0000000
--- a/java-spring/accounts-command-side-web/build.gradle
+++ /dev/null
@@ -1,12 +0,0 @@
-
-dependencies {
- compile project(":accounts-command-side-backend")
-
- compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
-
- testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
- testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-}
-
-
-
diff --git a/java-spring/accounts-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/CommandSideWebAccountsConfiguration.java b/java-spring/accounts-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/CommandSideWebAccountsConfiguration.java
deleted file mode 100644
index e492d7b..0000000
--- a/java-spring/accounts-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/CommandSideWebAccountsConfiguration.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.accounts;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.AccountConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import({AccountConfiguration.class})
-@ComponentScan
-@EnableAutoConfiguration
-public class CommandSideWebAccountsConfiguration {
-
-
-}
diff --git a/java-spring/accounts-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountControllerIntegrationTestConfiguration.java b/java-spring/accounts-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountControllerIntegrationTestConfiguration.java
deleted file mode 100644
index fbd5cff..0000000
--- a/java-spring/accounts-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountControllerIntegrationTestConfiguration.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.accounts;
-
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import({CommandSideWebAccountsConfiguration.class, EventuateJdbcEventStoreConfiguration.class})
-public class AccountControllerIntegrationTestConfiguration {
-
-}
diff --git a/java-spring/accounts-command-side-web/src/test/resources/logback.xml b/java-spring/accounts-command-side-web/src/test/resources/logback.xml
deleted file mode 100644
index b487881..0000000
--- a/java-spring/accounts-command-side-web/src/test/resources/logback.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
- %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java-spring/accounts-query-side-service/Dockerfile b/java-spring/accounts-query-side-service/Dockerfile
deleted file mode 100644
index d6db46b..0000000
--- a/java-spring/accounts-query-side-service/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:openjdk-8u91-jdk
-CMD java ${JAVA_OPTS} -jar accounts-query-side-service.jar
-EXPOSE 8080
-COPY build/libs/accounts-query-side-service.jar .
diff --git a/java-spring/accounts-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/AccountsQuerySideServiceMain.java b/java-spring/accounts-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/AccountsQuerySideServiceMain.java
deleted file mode 100644
index 0450a28..0000000
--- a/java-spring/accounts-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/AccountsQuerySideServiceMain.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.main;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.web.AccountsQuerySideServiceConfiguration;
-import org.springframework.boot.SpringApplication;
-
-public class AccountsQuerySideServiceMain {
-
- public static void main(String[] args) {
- SpringApplication.run(AccountsQuerySideServiceConfiguration.class, args);
- }
-}
diff --git a/java-spring/accounts-query-side-web/build.gradle b/java-spring/accounts-query-side-web/build.gradle
deleted file mode 100644
index 7f0c693..0000000
--- a/java-spring/accounts-query-side-web/build.gradle
+++ /dev/null
@@ -1,10 +0,0 @@
-
-dependencies {
- compile project(":accounts-query-side-backend")
-
- compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
- compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
-}
-
-
-
diff --git a/java-spring/accounts-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/queryside/QuerySideWebConfiguration.java b/java-spring/accounts-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/queryside/QuerySideWebConfiguration.java
deleted file mode 100644
index 884a176..0000000
--- a/java-spring/accounts-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/queryside/QuerySideWebConfiguration.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.queryside;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.QuerySideAccountConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import({QuerySideAccountConfiguration.class})
-@ComponentScan
-public class QuerySideWebConfiguration {
-
-
-}
diff --git a/java-spring/accounts-service/Dockerfile b/java-spring/accounts-service/Dockerfile
new file mode 100644
index 0000000..cfc6b09
--- /dev/null
+++ b/java-spring/accounts-service/Dockerfile
@@ -0,0 +1,4 @@
+FROM java:openjdk-8u91-jdk
+CMD java ${JAVA_OPTS} -jar accounts-service.jar
+EXPOSE 8080
+COPY build/libs/accounts-service.jar .
\ No newline at end of file
diff --git a/java-spring/customers-query-side-service/build.gradle b/java-spring/accounts-service/build.gradle
similarity index 78%
rename from java-spring/customers-query-side-service/build.gradle
rename to java-spring/accounts-service/build.gradle
index 5f536f1..a4f394d 100644
--- a/java-spring/customers-query-side-service/build.gradle
+++ b/java-spring/accounts-service/build.gradle
@@ -1,18 +1,17 @@
-apply plugin: VerifyMongoDBConfigurationPlugin
apply plugin: VerifyEventStoreEnvironmentPlugin
apply plugin: EventuateDependencyPlugin
apply plugin: 'spring-boot'
dependencies {
- compile project(":customers-query-side-web")
+ compile project(":common-backend")
compile project(":common-swagger")
compile "org.springframework.boot:spring-boot-starter-web"
compile "org.springframework.boot:spring-boot-starter-actuator"
testCompile project(":testutil")
- testCompile project(":customers-command-side-service")
+ testCompile "junit:junit:4.11"
testCompile "org.springframework.boot:spring-boot-starter-test"
testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
}
@@ -20,4 +19,3 @@ dependencies {
test {
ignoreFailures System.getenv("EVENTUATE_API_KEY_ID") == null
}
-
diff --git a/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsServiceMain.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsServiceMain.java
new file mode 100644
index 0000000..f076881
--- /dev/null
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsServiceMain.java
@@ -0,0 +1,21 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice;
+
+import io.eventuate.javaclient.driver.EventuateDriverConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.web.AccountsWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({AccountsWebConfiguration.class, EventuateDriverConfiguration.class, CommonSwaggerConfiguration.class})
+@EnableAutoConfiguration
+@ComponentScan
+public class AccountsServiceMain {
+
+ public static void main(String[] args) {
+ SpringApplication.run(AccountsServiceMain.class, args);
+ }
+}
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/Account.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/Account.java
similarity index 94%
rename from java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/Account.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/Account.java
index 0a4fc1f..a1d7941 100644
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/Account.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/Account.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import io.eventuate.Event;
import io.eventuate.EventUtil;
@@ -7,7 +7,6 @@ import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.accoun
import java.math.BigDecimal;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
public class Account extends ReflectiveMutableCommandProcessingAggregate {
diff --git a/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountCommand.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountCommand.java
new file mode 100644
index 0000000..e746430
--- /dev/null
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountCommand.java
@@ -0,0 +1,7 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
+
+
+import io.eventuate.Command;
+
+interface AccountCommand extends Command {
+}
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountService.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountService.java
similarity index 90%
rename from java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountService.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountService.java
index 19ded7b..dcbf178 100644
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountService.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountService.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import io.eventuate.AggregateRepository;
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountWorkflow.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountWorkflow.java
similarity index 87%
rename from java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountWorkflow.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountWorkflow.java
index cdc3fb8..8a8006d 100644
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountWorkflow.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountWorkflow.java
@@ -1,11 +1,10 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import io.eventuate.EntityWithIdAndVersion;
import io.eventuate.EventHandlerContext;
import io.eventuate.EventHandlerMethod;
import io.eventuate.EventSubscriber;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerToAccountDeleted;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.transactions.DebitRecordedEvent;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.transactions.MoneyTransferCreatedEvent;
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountConfiguration.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountsBackendConfiguration.java
similarity index 85%
rename from java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountConfiguration.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountsBackendConfiguration.java
index f58b0bd..fd64afb 100644
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountConfiguration.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountsBackendConfiguration.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import io.eventuate.AggregateRepository;
import io.eventuate.EventuateAggregateStore;
@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@EnableEventHandlers
-public class AccountConfiguration {
+public class AccountsBackendConfiguration {
@Bean
public AccountWorkflow accountWorkflow() {
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/CreditAccountCommand.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/CreditAccountCommand.java
similarity index 78%
rename from java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/CreditAccountCommand.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/CreditAccountCommand.java
index a00bd17..7b166d0 100644
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/CreditAccountCommand.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/CreditAccountCommand.java
@@ -1,7 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
-
-import io.eventuate.Aggregate;
-
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import java.math.BigDecimal;
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/DebitAccountCommand.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/DebitAccountCommand.java
similarity index 82%
rename from java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/DebitAccountCommand.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/DebitAccountCommand.java
index 6953124..f15a366 100644
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/DebitAccountCommand.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/DebitAccountCommand.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import java.math.BigDecimal;
diff --git a/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/DeleteAccountCommand.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/DeleteAccountCommand.java
new file mode 100644
index 0000000..29cc315
--- /dev/null
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/DeleteAccountCommand.java
@@ -0,0 +1,4 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
+
+public class DeleteAccountCommand implements AccountCommand {
+}
diff --git a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/OpenAccountCommand.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/OpenAccountCommand.java
similarity index 88%
rename from java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/OpenAccountCommand.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/OpenAccountCommand.java
index 02485a4..5d58a3c 100644
--- a/java-spring/accounts-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/OpenAccountCommand.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/OpenAccountCommand.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import java.math.BigDecimal;
diff --git a/java-spring/accounts-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountController.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountController.java
similarity index 88%
rename from java-spring/accounts-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountController.java
rename to java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountController.java
index f6f4301..206eb5e 100644
--- a/java-spring/accounts-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountController.java
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountController.java
@@ -1,6 +1,6 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.web;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.AccountService;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.AccountService;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.CreateAccountRequest;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.CreateAccountResponse;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.DeleteAccountResponse;
diff --git a/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountsWebConfiguration.java b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountsWebConfiguration.java
new file mode 100644
index 0000000..92e764b
--- /dev/null
+++ b/java-spring/accounts-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountsWebConfiguration.java
@@ -0,0 +1,15 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.web;
+
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.AccountsBackendConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({AccountsBackendConfiguration.class})
+@ComponentScan
+public class AccountsWebConfiguration {
+
+
+}
diff --git a/java-spring/accounts-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceIntegrationTest.java b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsCommandSideServiceIntegrationTest.java
similarity index 92%
rename from java-spring/accounts-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceIntegrationTest.java
rename to java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsCommandSideServiceIntegrationTest.java
index c015229..894d17c 100644
--- a/java-spring/accounts-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceIntegrationTest.java
+++ b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsCommandSideServiceIntegrationTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.CreateAccountRequest;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.CreateAccountResponse;
@@ -33,10 +33,9 @@ public class AccountsCommandSideServiceIntegrationTest {
@Test
- public void shouldCreateAccountsAndTransferMoney() {
+ public void shouldCreateAccounts() {
BigDecimal initialFromAccountBalance = new BigDecimal(500);
BigDecimal initialToAccountBalance = new BigDecimal(100);
- BigDecimal amountToTransfer = new BigDecimal(150);
String customerId = "00000000-00000000";
String title = "My Account";
@@ -48,8 +47,6 @@ public class AccountsCommandSideServiceIntegrationTest {
Assert.assertNotNull(fromAccountId);
Assert.assertNotNull(toAccountId);
-
-
}
diff --git a/java-spring/accounts-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceTestConfiguration.java b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsCommandSideServiceTestConfiguration.java
similarity index 70%
rename from java-spring/accounts-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceTestConfiguration.java
rename to java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsCommandSideServiceTestConfiguration.java
index 4276e00..9701a55 100644
--- a/java-spring/accounts-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceTestConfiguration.java
+++ b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/AccountsCommandSideServiceTestConfiguration.java
@@ -1,5 +1,8 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.web.AccountsWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.commonauth.AuthConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -12,7 +15,8 @@ import java.util.Arrays;
import java.util.List;
@Configuration
-@Import(AccountsCommandSideServiceConfiguration.class)
+@Import({AccountsWebConfiguration.class, AuthConfiguration.class})
+@EnableAutoConfiguration
public class AccountsCommandSideServiceTestConfiguration {
@Bean
diff --git a/java-spring/accounts-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountEventTest.java b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountEventTest.java
similarity index 73%
rename from java-spring/accounts-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountEventTest.java
rename to java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountEventTest.java
index b4cb632..bd8d205 100644
--- a/java-spring/accounts-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountEventTest.java
+++ b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountEventTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import net.chrisrichardson.eventstorestore.javaexamples.testutil.AbstractEntityEventTest;
diff --git a/java-spring/accounts-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountTest.java b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountTest.java
similarity index 89%
rename from java-spring/accounts-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountTest.java
rename to java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountTest.java
index 7939e59..77be8d4 100644
--- a/java-spring/accounts-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/accounts/AccountTest.java
+++ b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/backend/AccountTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend;
import io.eventuate.Event;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.accounts.AccountOpenedEvent;
diff --git a/java-spring/accounts-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountControllerIntegrationTest.java b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountControllerIntegrationTest.java
similarity index 95%
rename from java-spring/accounts-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountControllerIntegrationTest.java
rename to java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountControllerIntegrationTest.java
index e1be1e1..8739c69 100644
--- a/java-spring/accounts-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/accounts/AccountControllerIntegrationTest.java
+++ b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountControllerIntegrationTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.web;
import org.junit.Before;
import org.junit.Test;
diff --git a/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountControllerIntegrationTestConfiguration.java b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountControllerIntegrationTestConfiguration.java
new file mode 100644
index 0000000..4a9a313
--- /dev/null
+++ b/java-spring/accounts-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsservice/web/AccountControllerIntegrationTestConfiguration.java
@@ -0,0 +1,13 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.web;
+
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({AccountsWebConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class})
+@EnableAutoConfiguration
+public class AccountControllerIntegrationTestConfiguration {
+
+}
diff --git a/java-spring/accounts-view-service/Dockerfile b/java-spring/accounts-view-service/Dockerfile
new file mode 100644
index 0000000..30b248a
--- /dev/null
+++ b/java-spring/accounts-view-service/Dockerfile
@@ -0,0 +1,4 @@
+FROM java:openjdk-8u91-jdk
+CMD java ${JAVA_OPTS} -jar accounts-view-service.jar
+EXPOSE 8080
+COPY build/libs/accounts-view-service.jar .
diff --git a/java-spring/accounts-query-side-backend/build.gradle b/java-spring/accounts-view-service/build.gradle
similarity index 52%
rename from java-spring/accounts-query-side-backend/build.gradle
rename to java-spring/accounts-view-service/build.gradle
index 0fe1071..5e51216 100644
--- a/java-spring/accounts-query-side-backend/build.gradle
+++ b/java-spring/accounts-view-service/build.gradle
@@ -1,8 +1,15 @@
-apply plugin: 'java'
+apply plugin: VerifyMongoDBConfigurationPlugin
+apply plugin: VerifyEventStoreEnvironmentPlugin
+apply plugin: EventuateDependencyPlugin
+
+apply plugin: 'spring-boot'
dependencies {
+ compile project(":common-swagger")
compile project(":common-backend")
+ compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
+ compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
compile "io.eventuate.client.java:eventuate-client-java-spring:$eventuateClientVersion"
compile "org.springframework.boot:spring-boot-starter-data-mongodb:$springBootVersion"
@@ -10,6 +17,8 @@ dependencies {
testCompile "junit:junit:4.11"
testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-
-
+}
+
+test {
+ ignoreFailures System.getenv("EVENTUATE_API_KEY_ID") == null
}
diff --git a/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/AccountsViewServiceMain.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/AccountsViewServiceMain.java
new file mode 100644
index 0000000..2913e76
--- /dev/null
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/AccountsViewServiceMain.java
@@ -0,0 +1,21 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice;
+
+import io.eventuate.javaclient.driver.EventuateDriverConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.web.AccountViewWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({AccountViewWebConfiguration.class, EventuateDriverConfiguration.class, CommonSwaggerConfiguration.class})
+@EnableAutoConfiguration
+@ComponentScan
+public class AccountsViewServiceMain {
+
+ public static void main(String[] args) {
+ SpringApplication.run(AccountsViewServiceMain.class, args);
+ }
+}
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfo.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfo.java
similarity index 92%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfo.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfo.java
index 8574f66..6c71642 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfo.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfo.java
@@ -1,9 +1,8 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import com.fasterxml.jackson.annotation.JsonProperty;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.AccountChangeInfo;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.AccountTransactionInfo;
-import net.chrisrichardson.eventstore.javaexamples.banking.common.transactions.TransferState;
import java.util.*;
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoRepository.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfoRepository.java
similarity index 72%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoRepository.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfoRepository.java
index ec27c6b..7df97af 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoRepository.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfoRepository.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import org.springframework.data.mongodb.repository.MongoRepository;
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoUpdateService.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfoUpdateService.java
similarity index 95%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoUpdateService.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfoUpdateService.java
index e86d57c..21a91df 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoUpdateService.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountInfoUpdateService.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import com.mongodb.WriteResult;
import io.eventuate.Int128;
@@ -15,7 +15,7 @@ import org.springframework.data.mongodb.core.query.Update;
import java.math.BigDecimal;
import java.util.Date;
-import static net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.MoneyUtil.toIntegerRepr;
+import static net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.MoneyUtil.toIntegerRepr;
import static org.springframework.data.mongodb.core.query.Criteria.where;
public class AccountInfoUpdateService {
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountNotFoundException.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountNotFoundException.java
similarity index 65%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountNotFoundException.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountNotFoundException.java
index f06838c..7d6115b 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountNotFoundException.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountNotFoundException.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
public class AccountNotFoundException extends RuntimeException {
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQueryService.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountQueryService.java
similarity index 87%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQueryService.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountQueryService.java
index 3dfa68b..277ca8c 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQueryService.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountQueryService.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import java.util.List;
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQueryWorkflow.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountQueryWorkflow.java
similarity index 97%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQueryWorkflow.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountQueryWorkflow.java
index a65f53c..5fc76de 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQueryWorkflow.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountQueryWorkflow.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import io.eventuate.DispatchedEvent;
import io.eventuate.EventHandlerMethod;
@@ -16,10 +16,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
-import java.util.Date;
-
-import static net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.MoneyUtil.toIntegerRepr;
+import static net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.MoneyUtil.toIntegerRepr;
@EventSubscriber(id="querySideEventHandlers")
public class AccountQueryWorkflow {
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/QuerySideAccountConfiguration.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountViewBackendConfiguration.java
similarity index 89%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/QuerySideAccountConfiguration.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountViewBackendConfiguration.java
index 43104bb..d6e7d32 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/QuerySideAccountConfiguration.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/AccountViewBackendConfiguration.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import io.eventuate.javaclient.spring.EnableEventHandlers;
@@ -10,7 +10,7 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie
@Configuration
@EnableMongoRepositories
@EnableEventHandlers
-public class QuerySideAccountConfiguration {
+public class AccountViewBackendConfiguration {
@Bean
public AccountQueryWorkflow accountQueryWorkflow(AccountInfoUpdateService accountInfoUpdateService) {
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/MoneyUtil.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/MoneyUtil.java
similarity index 66%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/MoneyUtil.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/MoneyUtil.java
index 49d74be..740aa76 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/MoneyUtil.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/MoneyUtil.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import java.math.BigDecimal;
diff --git a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/QuerySideDependencyChecker.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/QuerySideDependencyChecker.java
similarity index 86%
rename from java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/QuerySideDependencyChecker.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/QuerySideDependencyChecker.java
index 80c7ea3..16c353b 100644
--- a/java-spring/accounts-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/QuerySideDependencyChecker.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/backend/QuerySideDependencyChecker.java
@@ -1,11 +1,10 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import javax.annotation.PostConstruct;
-import java.util.concurrent.TimeUnit;
public class QuerySideDependencyChecker {
private Logger logger = LoggerFactory.getLogger(getClass());
diff --git a/java-spring/accounts-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/queryside/accounts/AccountQueryController.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/web/AccountQueryController.java
similarity index 84%
rename from java-spring/accounts-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/queryside/accounts/AccountQueryController.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/web/AccountQueryController.java
index fd31810..ef73230 100644
--- a/java-spring/accounts-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/queryside/accounts/AccountQueryController.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/web/AccountQueryController.java
@@ -1,9 +1,8 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.web;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.AccountInfo;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.AccountNotFoundException;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.AccountQueryService;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountInfo;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountNotFoundException;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountQueryService;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -58,7 +57,7 @@ public class AccountQueryController {
return ResponseEntity.ok().body(new AccountHistoryResponse(historyEntries));
}
- @ResponseStatus(value= HttpStatus.NOT_FOUND, reason="account not found")
+ @ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "account not found")
@ExceptionHandler(AccountNotFoundException.class)
public void accountNotFound() {
}
diff --git a/java-spring/accounts-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceConfiguration.java b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/web/AccountViewWebConfiguration.java
similarity index 52%
rename from java-spring/accounts-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceConfiguration.java
rename to java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/web/AccountViewWebConfiguration.java
index 8c04d40..798e0e8 100644
--- a/java-spring/accounts-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceConfiguration.java
+++ b/java-spring/accounts-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/accountsviewservice/web/AccountViewWebConfiguration.java
@@ -1,9 +1,6 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.web;
-import io.eventuate.javaclient.spring.httpstomp.EventuateHttpStompClientConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.queryside.QuerySideWebConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountViewBackendConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -13,11 +10,9 @@ import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
@Configuration
-@Import({QuerySideWebConfiguration.class, EventuateHttpStompClientConfiguration.class, CommonSwaggerConfiguration.class})
-@EnableAutoConfiguration
+@Import({AccountViewBackendConfiguration.class})
@ComponentScan
-public class AccountsQuerySideServiceConfiguration {
-
+public class AccountViewWebConfiguration {
@Bean
public HttpMessageConverters customConverters() {
diff --git a/java-spring/accounts-query-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoUpdateServiceTest.java b/java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountInfoUpdateServiceTest.java
similarity index 90%
rename from java-spring/accounts-query-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoUpdateServiceTest.java
rename to java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountInfoUpdateServiceTest.java
index 220b97f..bca5a6d 100644
--- a/java-spring/accounts-query-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountInfoUpdateServiceTest.java
+++ b/java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountInfoUpdateServiceTest.java
@@ -1,9 +1,13 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
+package net.chrisrichardson.eventstore.javaexamples.banking.web;
import io.eventuate.Int128;
import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
import io.eventuate.javaclient.spring.jdbc.IdGenerator;
import io.eventuate.javaclient.spring.jdbc.IdGeneratorImpl;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountInfo;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountInfoUpdateService;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountQueryService;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountViewBackendConfiguration;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.accounts.AccountCreditedEvent;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.AccountChangeInfo;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.AccountTransactionInfo;
@@ -31,7 +35,7 @@ public class AccountInfoUpdateServiceTest {
@Configuration
@EnableAutoConfiguration
- @Import({QuerySideAccountConfiguration.class, EventuateJdbcEventStoreConfiguration.class})
+ @Import({AccountViewBackendConfiguration.class, EventuateJdbcEventStoreConfiguration.class})
public static class AccountInfoUpdateServiceTestConfiguration {
}
diff --git a/java-spring/accounts-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceIntegrationTest.java b/java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceIntegrationTest.java
similarity index 100%
rename from java-spring/accounts-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceIntegrationTest.java
rename to java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceIntegrationTest.java
diff --git a/java-spring/accounts-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceTestConfiguration.java b/java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceTestConfiguration.java
similarity index 64%
rename from java-spring/accounts-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceTestConfiguration.java
rename to java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceTestConfiguration.java
index 7a9d20b..b8a99e4 100644
--- a/java-spring/accounts-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceTestConfiguration.java
+++ b/java-spring/accounts-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsQuerySideServiceTestConfiguration.java
@@ -1,7 +1,12 @@
package net.chrisrichardson.eventstore.javaexamples.banking.web;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.web.AccountViewWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.http.converter.HttpMessageConverter;
@@ -12,7 +17,9 @@ import java.util.Arrays;
import java.util.List;
@Configuration
-@Import(AccountsQuerySideServiceConfiguration.class)
+@Import({AccountViewWebConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class, CommonSwaggerConfiguration.class})
+@EnableAutoConfiguration
+@ComponentScan
public class AccountsQuerySideServiceTestConfiguration {
@Bean
diff --git a/java-spring/backend-integration-tests/build.gradle b/java-spring/backend-integration-tests/build.gradle
index 794cdbf..6cc950a 100644
--- a/java-spring/backend-integration-tests/build.gradle
+++ b/java-spring/backend-integration-tests/build.gradle
@@ -2,11 +2,11 @@ apply plugin: VerifyMongoDBConfigurationPlugin
dependencies {
- testCompile project(":accounts-command-side-backend")
- testCompile project(":transactions-command-side-backend")
- testCompile project(":accounts-query-side-backend")
- testCompile project(":customers-command-side-backend")
- testCompile project(":customers-query-side-backend")
+ testCompile project(":transactions-service")
+ testCompile project(":accounts-service")
+ testCompile project(":accounts-view-service")
+ testCompile project(":customers-service")
+ testCompile project(":customers-view-service")
testCompile project(":testutil")
testCompile "junit:junit:4.11"
testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
diff --git a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/BankingTestConfiguration.java b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/BankingTestConfiguration.java
index 0884986..3267ff2 100644
--- a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/BankingTestConfiguration.java
+++ b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/BankingTestConfiguration.java
@@ -1,15 +1,14 @@
package net.chrisrichardson.eventstore.javaexamples.banking.backend;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.AccountConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransferConfiguration;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.AccountsBackendConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransferBackendConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@Configuration
-@Import({AccountConfiguration.class, MoneyTransferConfiguration.class, EventuateJdbcEventStoreConfiguration.class})
+@Import({AccountsBackendConfiguration.class, MoneyTransferBackendConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class})
@EnableAutoConfiguration
public class BankingTestConfiguration {
diff --git a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/MoneyTransferIntegrationTest.java b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/MoneyTransferIntegrationTest.java
index 0f7df9c..515a394 100644
--- a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/MoneyTransferIntegrationTest.java
+++ b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/MoneyTransferIntegrationTest.java
@@ -2,12 +2,12 @@ package net.chrisrichardson.eventstore.javaexamples.banking.backend;
import io.eventuate.EntityWithIdAndVersion;
import io.eventuate.EventuateAggregateStore;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.Account;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.AccountService;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransfer;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransferService;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.Account;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.AccountService;
import net.chrisrichardson.eventstore.javaexamples.banking.common.transactions.TransferState;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.transactions.TransferDetails;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransfer;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransferService;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideIntegrationTest.java b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideIntegrationTest.java
index 46cba9b..00ac5d8 100644
--- a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideIntegrationTest.java
+++ b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideIntegrationTest.java
@@ -2,12 +2,13 @@ package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.ac
import io.eventuate.EntityWithIdAndVersion;
import io.eventuate.EventuateAggregateStore;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.Account;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.AccountService;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransfer;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransferService;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.Account;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.AccountService;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountQueryService;
import net.chrisrichardson.eventstore.javaexamples.banking.common.transactions.TransferState;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.transactions.TransferDetails;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransfer;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransferService;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideTestConfiguration.java b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideTestConfiguration.java
index 8ea9454..5e57b90 100644
--- a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideTestConfiguration.java
+++ b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/accounts/AccountQuerySideTestConfiguration.java
@@ -1,15 +1,16 @@
package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.AccountConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransferConfiguration;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.AccountsBackendConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.backend.AccountViewBackendConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransferBackendConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
-@Import({AccountConfiguration.class, MoneyTransferConfiguration.class, EventuateJdbcEventStoreConfiguration.class,
- QuerySideAccountConfiguration.class})
+@Import({AccountsBackendConfiguration.class, MoneyTransferBackendConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class,
+ AccountViewBackendConfiguration.class})
@EnableAutoConfiguration
public class AccountQuerySideTestConfiguration {
}
diff --git a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideIntegrationTest.java b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideIntegrationTest.java
index 127b02d..33477a1 100644
--- a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideIntegrationTest.java
+++ b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideIntegrationTest.java
@@ -2,9 +2,10 @@ package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.cu
import io.eventuate.EntityWithIdAndVersion;
import io.eventuate.EventuateAggregateStore;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers.Customer;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers.CustomerService;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend.Customer;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend.CustomerService;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend.CustomerQueryService;
import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.ToAccountInfo;
import net.chrisrichardson.eventstorestore.javaexamples.testutil.Producer;
diff --git a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideTestConfiguration.java b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideTestConfiguration.java
index 2da970b..dbe31ce 100644
--- a/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideTestConfiguration.java
+++ b/java-spring/backend-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQuerySideTestConfiguration.java
@@ -1,14 +1,14 @@
package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers.CustomerConfiguration;
-
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend.CustomerBackendConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend.CustomerViewBackendConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
-@Import({CustomerConfiguration.class, EventuateJdbcEventStoreConfiguration.class, QuerySideCustomerConfiguration.class})
+@Import({CustomerBackendConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class, CustomerViewBackendConfiguration.class})
@EnableAutoConfiguration
public class CustomerQuerySideTestConfiguration {
}
diff --git a/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/accounts/AccountEvent.java b/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/accounts/AccountEvent.java
index f3bd3d4..5175669 100644
--- a/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/accounts/AccountEvent.java
+++ b/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/accounts/AccountEvent.java
@@ -3,6 +3,6 @@ package net.chrisrichardson.eventstore.javaexamples.banking.backend.common.accou
import io.eventuate.Event;
import io.eventuate.EventEntity;
-@EventEntity(entity="net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.accounts.Account")
+@EventEntity(entity="net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.backend.Account")
public abstract class AccountEvent implements Event{
}
diff --git a/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/customers/CustomerEvent.java b/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/customers/CustomerEvent.java
index 8cb1c9d..70633b3 100644
--- a/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/customers/CustomerEvent.java
+++ b/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/customers/CustomerEvent.java
@@ -7,6 +7,6 @@ import io.eventuate.EventEntity;
/**
* Created by Main on 11.02.2016.
*/
-@EventEntity(entity = "net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers.Customer")
+@EventEntity(entity = "net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend.Customer")
public abstract class CustomerEvent implements Event {
}
\ No newline at end of file
diff --git a/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/transactions/MoneyTransferEvent.java b/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/transactions/MoneyTransferEvent.java
index 2b001cb..244166b 100644
--- a/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/transactions/MoneyTransferEvent.java
+++ b/java-spring/common-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/common/transactions/MoneyTransferEvent.java
@@ -3,6 +3,6 @@ package net.chrisrichardson.eventstore.javaexamples.banking.backend.common.trans
import io.eventuate.Event;
import io.eventuate.EventEntity;
-@EventEntity(entity="net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransfer")
+@EventEntity(entity="net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransfer")
public abstract class MoneyTransferEvent implements Event {
}
diff --git a/java-spring/customers-command-side-backend/build.gradle b/java-spring/customers-command-side-backend/build.gradle
deleted file mode 100644
index f633d0e..0000000
--- a/java-spring/customers-command-side-backend/build.gradle
+++ /dev/null
@@ -1,12 +0,0 @@
-apply plugin: 'java'
-
-dependencies {
- compile project(":common")
- compile project(":common-backend")
- compile "io.eventuate.client.java:eventuate-client-java-spring:$eventuateClientVersion"
-
- testCompile project(":testutil")
- testCompile "junit:junit:4.11"
- testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
- testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-}
\ No newline at end of file
diff --git a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerCommand.java b/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerCommand.java
deleted file mode 100644
index 9eca460..0000000
--- a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerCommand.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
-
-import io.eventuate.Command;
-
-interface CustomerCommand extends Command {
-}
diff --git a/java-spring/customers-command-side-service/Dockerfile b/java-spring/customers-command-side-service/Dockerfile
deleted file mode 100644
index ec276ae..0000000
--- a/java-spring/customers-command-side-service/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:openjdk-8u91-jdk
-CMD java ${JAVA_OPTS} -jar customers-command-side-service.jar
-EXPOSE 8080
-COPY build/libs/customers-command-side-service.jar .
diff --git a/java-spring/customers-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceConfiguration.java b/java-spring/customers-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceConfiguration.java
deleted file mode 100644
index f6d3897..0000000
--- a/java-spring/customers-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceConfiguration.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
-
-import io.eventuate.javaclient.spring.httpstomp.EventuateHttpStompClientConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers.CustomersCommandSideWebConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-
-@Configuration
-@Import({CustomersCommandSideWebConfiguration.class, EventuateHttpStompClientConfiguration.class, CommonSwaggerConfiguration.class})
-@EnableAutoConfiguration
-public class CustomersCommandSideServiceConfiguration {
-
-
- @Bean
- public HttpMessageConverters customConverters() {
- HttpMessageConverter> additional = new MappingJackson2HttpMessageConverter();
- return new HttpMessageConverters(additional);
- }
-}
diff --git a/java-spring/customers-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/CustomersCommandSideServiceMain.java b/java-spring/customers-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/CustomersCommandSideServiceMain.java
deleted file mode 100644
index 77353d9..0000000
--- a/java-spring/customers-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/CustomersCommandSideServiceMain.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.main;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.web.CustomersCommandSideServiceConfiguration;
-import org.springframework.boot.SpringApplication;
-
-public class CustomersCommandSideServiceMain {
-
- public static void main(String[] args) {
- SpringApplication.run(CustomersCommandSideServiceConfiguration.class, args);
- }
-}
diff --git a/java-spring/customers-command-side-web/build.gradle b/java-spring/customers-command-side-web/build.gradle
deleted file mode 100644
index 18ce48b..0000000
--- a/java-spring/customers-command-side-web/build.gradle
+++ /dev/null
@@ -1,11 +0,0 @@
-apply plugin: 'java'
-
-dependencies {
- compile project(":common")
- compile project(":customers-command-side-backend")
-
- compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
-
- testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
- testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-}
diff --git a/java-spring/customers-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/customers/CustomersCommandSideWebConfiguration.java b/java-spring/customers-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/customers/CustomersCommandSideWebConfiguration.java
deleted file mode 100644
index 20addb1..0000000
--- a/java-spring/customers-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/customers/CustomersCommandSideWebConfiguration.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers.CustomerConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-@Configuration
-@Import({CustomerConfiguration.class})
-@ComponentScan
-public class CustomersCommandSideWebConfiguration extends WebMvcConfigurerAdapter {
-
-}
\ No newline at end of file
diff --git a/java-spring/customers-query-side-service/Dockerfile b/java-spring/customers-query-side-service/Dockerfile
deleted file mode 100644
index 11abbc1..0000000
--- a/java-spring/customers-query-side-service/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:openjdk-8u91-jdk
-CMD java ${JAVA_OPTS} -jar customers-query-side-service.jar
-EXPOSE 8080
-COPY build/libs/customers-query-side-service.jar .
\ No newline at end of file
diff --git a/java-spring/customers-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceConfiguration.java b/java-spring/customers-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceConfiguration.java
deleted file mode 100644
index eee2af9..0000000
--- a/java-spring/customers-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceConfiguration.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
-
-import io.eventuate.javaclient.spring.httpstomp.EventuateHttpStompClientConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.CustomersQuerySideWebConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-
-@Configuration
-@Import({CustomersQuerySideWebConfiguration.class, EventuateHttpStompClientConfiguration.class, CommonSwaggerConfiguration.class})
-@EnableAutoConfiguration
-public class CustomersQuerySideServiceConfiguration {
-
-
- @Bean
- public HttpMessageConverters customConverters() {
- HttpMessageConverter> additional = new MappingJackson2HttpMessageConverter();
- return new HttpMessageConverters(additional);
- }
-
-}
diff --git a/java-spring/customers-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/CustomersQuerySideServiceMain.java b/java-spring/customers-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/CustomersQuerySideServiceMain.java
deleted file mode 100644
index 759d0f3..0000000
--- a/java-spring/customers-query-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/CustomersQuerySideServiceMain.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.main;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.web.CustomersQuerySideServiceConfiguration;
-import org.springframework.boot.SpringApplication;
-
-public class CustomersQuerySideServiceMain {
-
- public static void main(String[] args) {
- SpringApplication.run(CustomersQuerySideServiceConfiguration.class, args);
- }
-}
diff --git a/java-spring/customers-query-side-web/build.gradle b/java-spring/customers-query-side-web/build.gradle
deleted file mode 100644
index b7c90cf..0000000
--- a/java-spring/customers-query-side-web/build.gradle
+++ /dev/null
@@ -1,8 +0,0 @@
-apply plugin: 'java'
-
-dependencies {
- compile project(":customers-query-side-backend")
-
- compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
- compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
-}
diff --git a/java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomersQuerySideWebConfiguration.java b/java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomersQuerySideWebConfiguration.java
deleted file mode 100644
index 6b9d3c4..0000000
--- a/java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomersQuerySideWebConfiguration.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers.QuerySideCustomerConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-@Configuration
-@Import({QuerySideCustomerConfiguration.class})
-@ComponentScan
-public class CustomersQuerySideWebConfiguration extends WebMvcConfigurerAdapter {
-}
diff --git a/java-spring/customers-service/Dockerfile b/java-spring/customers-service/Dockerfile
new file mode 100644
index 0000000..0adc92d
--- /dev/null
+++ b/java-spring/customers-service/Dockerfile
@@ -0,0 +1,4 @@
+FROM java:openjdk-8u91-jdk
+CMD java ${JAVA_OPTS} -jar customers-service.jar
+EXPOSE 8080
+COPY build/libs/customers-service.jar .
diff --git a/java-spring/customers-command-side-service/build.gradle b/java-spring/customers-service/build.gradle
similarity index 81%
rename from java-spring/customers-command-side-service/build.gradle
rename to java-spring/customers-service/build.gradle
index 8fd432f..047df3c 100644
--- a/java-spring/customers-command-side-service/build.gradle
+++ b/java-spring/customers-service/build.gradle
@@ -5,13 +5,15 @@ apply plugin: 'spring-boot'
apply plugin: EventuateDependencyPlugin
dependencies {
- compile project(":customers-command-side-web")
+ compile project(":common")
+ compile project(":common-backend")
compile project(":common-swagger")
compile "org.springframework.boot:spring-boot-starter-web"
compile "org.springframework.boot:spring-boot-starter-actuator"
testCompile project(":testutil")
- testCompile "org.springframework.boot:spring-boot-starter-test"
+ testCompile "junit:junit:4.11"
+ testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
}
\ No newline at end of file
diff --git a/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersServiceMain.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersServiceMain.java
new file mode 100644
index 0000000..64815e7
--- /dev/null
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersServiceMain.java
@@ -0,0 +1,23 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice;
+
+import io.eventuate.javaclient.driver.EventuateDriverConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.web.CustomersWebConfiguration;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+
+@Configuration
+@Import({CustomersWebConfiguration.class, EventuateDriverConfiguration.class, CommonSwaggerConfiguration.class})
+@EnableAutoConfiguration
+public class CustomersServiceMain {
+
+ public static void main(String[] args) {
+ SpringApplication.run(CustomersServiceMain.class, args);
+ }
+}
diff --git a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/AddToAccountCommand.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/AddToAccountCommand.java
similarity index 82%
rename from java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/AddToAccountCommand.java
rename to java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/AddToAccountCommand.java
index 2de4a38..b685ffc 100644
--- a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/AddToAccountCommand.java
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/AddToAccountCommand.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.ToAccountInfo;
diff --git a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CreateCustomerCommand.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CreateCustomerCommand.java
similarity index 80%
rename from java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CreateCustomerCommand.java
rename to java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CreateCustomerCommand.java
index ef3cc95..a34c7c1 100644
--- a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CreateCustomerCommand.java
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CreateCustomerCommand.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
diff --git a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/Customer.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/Customer.java
similarity index 93%
rename from java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/Customer.java
rename to java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/Customer.java
index 40db795..d97d104 100644
--- a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/Customer.java
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/Customer.java
@@ -1,11 +1,11 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
import io.eventuate.Event;
import io.eventuate.EventUtil;
import io.eventuate.ReflectiveMutableCommandProcessingAggregate;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerToAccountDeleted;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerAddedToAccount;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerCreatedEvent;
+import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerToAccountDeleted;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
import java.util.List;
diff --git a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerConfiguration.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerBackendConfiguration.java
similarity index 85%
rename from java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerConfiguration.java
rename to java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerBackendConfiguration.java
index 2e8a30c..77fd7f0 100644
--- a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerConfiguration.java
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerBackendConfiguration.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
import io.eventuate.AggregateRepository;
import io.eventuate.EventuateAggregateStore;
@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@EnableEventHandlers
@ComponentScan
-public class CustomerConfiguration {
+public class CustomerBackendConfiguration {
@Bean
public CustomerService customerService(AggregateRepository customerRepository) {
diff --git a/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerCommand.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerCommand.java
new file mode 100644
index 0000000..da3c411
--- /dev/null
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerCommand.java
@@ -0,0 +1,6 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
+
+import io.eventuate.Command;
+
+interface CustomerCommand extends Command {
+}
diff --git a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerService.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerService.java
similarity index 92%
rename from java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerService.java
rename to java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerService.java
index 0347622..71619ba 100644
--- a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerService.java
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerService.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
import io.eventuate.AggregateRepository;
diff --git a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/DeleteToAccountCommand.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/DeleteToAccountCommand.java
similarity index 80%
rename from java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/DeleteToAccountCommand.java
rename to java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/DeleteToAccountCommand.java
index f133568..bb1aaa4 100644
--- a/java-spring/customers-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/DeleteToAccountCommand.java
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/DeleteToAccountCommand.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
public class DeleteToAccountCommand implements CustomerCommand {
diff --git a/java-spring/customers-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/customers/CustomerController.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/web/CustomerController.java
similarity index 87%
rename from java-spring/customers-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/customers/CustomerController.java
rename to java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/web/CustomerController.java
index 52e930c..fa6f570 100644
--- a/java-spring/customers-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/customers/CustomerController.java
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/web/CustomerController.java
@@ -1,12 +1,11 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.web;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers.CustomerService;
-import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.CreateAccountResponse;
import net.chrisrichardson.eventstore.javaexamples.banking.common.accounts.DeleteAccountResponse;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.AddToAccountResponse;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerResponse;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.ToAccountInfo;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
diff --git a/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/web/CustomersWebConfiguration.java b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/web/CustomersWebConfiguration.java
new file mode 100644
index 0000000..1567586
--- /dev/null
+++ b/java-spring/customers-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/web/CustomersWebConfiguration.java
@@ -0,0 +1,24 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.web;
+
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend.CustomerBackendConfiguration;
+import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+@Configuration
+@Import({CustomerBackendConfiguration.class})
+@ComponentScan
+public class CustomersWebConfiguration extends WebMvcConfigurerAdapter {
+
+ @Bean
+ public HttpMessageConverters customConverters() {
+ HttpMessageConverter> additional = new MappingJackson2HttpMessageConverter();
+ return new HttpMessageConverters(additional);
+ }
+
+}
\ No newline at end of file
diff --git a/java-spring/customers-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceIntegrationTest.java b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersCommandSideServiceIntegrationTest.java
similarity index 95%
rename from java-spring/customers-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceIntegrationTest.java
rename to java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersCommandSideServiceIntegrationTest.java
index 670462f..bd88150 100644
--- a/java-spring/customers-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceIntegrationTest.java
+++ b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersCommandSideServiceIntegrationTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerResponse;
diff --git a/java-spring/customers-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceTestConfiguration.java b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersCommandSideServiceTestConfiguration.java
similarity index 72%
rename from java-spring/customers-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceTestConfiguration.java
rename to java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersCommandSideServiceTestConfiguration.java
index 0fa58b0..baf0dd9 100644
--- a/java-spring/customers-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersCommandSideServiceTestConfiguration.java
+++ b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/CustomersCommandSideServiceTestConfiguration.java
@@ -1,9 +1,8 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
import net.chrisrichardson.eventstore.javaexamples.banking.commonauth.AuthConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers.CustomersCommandSideWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.web.CustomersWebConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
@@ -17,7 +16,9 @@ import java.util.Arrays;
import java.util.List;
@Configuration
-@Import({CustomersCommandSideWebConfiguration.class, EventuateJdbcEventStoreConfiguration.class, CommonSwaggerConfiguration.class, AuthConfiguration.class})
+@Import({CustomersWebConfiguration.class,
+ EmbeddedTestAggregateStoreConfiguration.class,
+ AuthConfiguration.class})
@EnableAutoConfiguration
public class CustomersCommandSideServiceTestConfiguration {
diff --git a/java-spring/customers-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerEventTest.java b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerEventTest.java
similarity index 73%
rename from java-spring/customers-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerEventTest.java
rename to java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerEventTest.java
index 9ddceee..731eea6 100644
--- a/java-spring/customers-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerEventTest.java
+++ b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerEventTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
import net.chrisrichardson.eventstorestore.javaexamples.testutil.AbstractEntityEventTest;
diff --git a/java-spring/customers-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerTest.java b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerTest.java
similarity index 90%
rename from java-spring/customers-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerTest.java
rename to java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerTest.java
index 43d71fe..7d2a23f 100644
--- a/java-spring/customers-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/customers/CustomerTest.java
+++ b/java-spring/customers-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersservice/backend/CustomerTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersservice.backend;
import io.eventuate.Event;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerCreatedEvent;
diff --git a/java-spring/customers-view-service/Dockerfile b/java-spring/customers-view-service/Dockerfile
new file mode 100644
index 0000000..9c7ea55
--- /dev/null
+++ b/java-spring/customers-view-service/Dockerfile
@@ -0,0 +1,4 @@
+FROM java:openjdk-8u91-jdk
+CMD java ${JAVA_OPTS} -jar customers-view-service.jar
+EXPOSE 8080
+COPY build/libs/customers-view-service.jar .
\ No newline at end of file
diff --git a/java-spring/customers-query-side-backend/build.gradle b/java-spring/customers-view-service/build.gradle
similarity index 56%
rename from java-spring/customers-query-side-backend/build.gradle
rename to java-spring/customers-view-service/build.gradle
index 186d189..bd2b72e 100644
--- a/java-spring/customers-query-side-backend/build.gradle
+++ b/java-spring/customers-view-service/build.gradle
@@ -1,10 +1,16 @@
-apply plugin: 'java'
+apply plugin: VerifyMongoDBConfigurationPlugin
+apply plugin: VerifyEventStoreEnvironmentPlugin
+apply plugin: EventuateDependencyPlugin
+
+apply plugin: 'spring-boot'
dependencies {
compile project(":common-backend")
compile project(":customers-query-side-common")
+ compile project(":common-swagger")
- compile "io.eventuate.client.java:eventuate-client-java-spring:$eventuateClientVersion"
+ compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
+ compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
compile "org.springframework.boot:spring-boot-starter-data-mongodb:$springBootVersion"
compile 'com.fasterxml.jackson.core:jackson-core:2.4.3'
@@ -12,8 +18,13 @@ dependencies {
compile 'com.fasterxml.jackson.module:jackson-module-scala_2.10:2.4.3'
testCompile project(":testutil")
+ testCompile project(":customers-service")
testCompile "junit:junit:4.11"
- testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
+ testCompile "org.springframework.boot:spring-boot-starter-test"
testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-
}
+
+test {
+ ignoreFailures System.getenv("EVENTUATE_API_KEY_ID") == null
+}
+
diff --git a/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersViewServiceMain.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersViewServiceMain.java
new file mode 100644
index 0000000..f18eebe
--- /dev/null
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersViewServiceMain.java
@@ -0,0 +1,25 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice;
+
+import io.eventuate.javaclient.driver.EventuateDriverConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.web.CustomersViewWebConfiguration;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+
+@Configuration
+@Import({CustomersViewWebConfiguration.class,
+ EventuateDriverConfiguration.class,
+ CommonSwaggerConfiguration.class})
+@EnableAutoConfiguration
+public class CustomersViewServiceMain {
+
+ public static void main(String[] args) {
+ SpringApplication.run(CustomersViewServiceMain.class, args);
+ }
+}
diff --git a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerInfoUpdateService.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerInfoUpdateService.java
similarity index 89%
rename from java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerInfoUpdateService.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerInfoUpdateService.java
index dd80e3f..7a2a324 100644
--- a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerInfoUpdateService.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerInfoUpdateService.java
@@ -1,8 +1,8 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.ToAccountInfo;
+import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DuplicateKeyException;
@@ -21,10 +21,10 @@ public class CustomerInfoUpdateService {
private Logger logger = LoggerFactory.getLogger(getClass());
- private QuerySideCustomerRepository querySideCustomerRepository;
+ private CustomerViewRepository querySideCustomerRepository;
private MongoTemplate mongoTemplate;
- public CustomerInfoUpdateService(QuerySideCustomerRepository querySideCustomerRepository, MongoTemplate mongoTemplate) {
+ public CustomerInfoUpdateService(CustomerViewRepository querySideCustomerRepository, MongoTemplate mongoTemplate) {
this.querySideCustomerRepository = querySideCustomerRepository;
this.mongoTemplate = mongoTemplate;
}
diff --git a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQueryService.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerQueryService.java
similarity index 81%
rename from java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQueryService.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerQueryService.java
index 0edf614..1296783 100644
--- a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQueryService.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerQueryService.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend;
import io.eventuate.CompletableFutureUtil;
import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
@@ -9,9 +9,9 @@ import java.util.concurrent.CompletableFuture;
public class CustomerQueryService {
- private QuerySideCustomerRepository querySideCustomerRepository;
+ private CustomerViewRepository querySideCustomerRepository;
- public CustomerQueryService(QuerySideCustomerRepository querySideCustomerRepository) {
+ public CustomerQueryService(CustomerViewRepository querySideCustomerRepository) {
this.querySideCustomerRepository = querySideCustomerRepository;
}
diff --git a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQueryWorkflow.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerQueryWorkflow.java
similarity index 96%
rename from java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQueryWorkflow.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerQueryWorkflow.java
index f625031..1c4e2c5 100644
--- a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerQueryWorkflow.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerQueryWorkflow.java
@@ -1,12 +1,12 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend;
import io.eventuate.DispatchedEvent;
import io.eventuate.EventHandlerMethod;
import io.eventuate.EventSubscriber;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.accounts.AccountDeletedEvent;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerToAccountDeleted;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerAddedToAccount;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerCreatedEvent;
+import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.customers.CustomerToAccountDeleted;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.ToAccountInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideCustomerConfiguration.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerViewBackendConfiguration.java
similarity index 61%
rename from java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideCustomerConfiguration.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerViewBackendConfiguration.java
index 45a44b5..ce5da81 100644
--- a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideCustomerConfiguration.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerViewBackendConfiguration.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend;
import io.eventuate.javaclient.spring.EnableEventHandlers;
import org.springframework.context.annotation.Bean;
@@ -14,26 +14,26 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie
@EnableMongoRepositories
@EnableEventHandlers
@ComponentScan
-public class QuerySideCustomerConfiguration {
+public class CustomerViewBackendConfiguration {
@Bean
public CustomerQueryWorkflow customerQueryWorkflow(CustomerInfoUpdateService accountInfoUpdateService) {
return new CustomerQueryWorkflow(accountInfoUpdateService);
}
@Bean
- public CustomerInfoUpdateService customerInfoUpdateService(QuerySideCustomerRepository querySideCustomerRepository, MongoTemplate mongoTemplate) {
+ public CustomerInfoUpdateService customerInfoUpdateService(CustomerViewRepository querySideCustomerRepository, MongoTemplate mongoTemplate) {
return new CustomerInfoUpdateService(querySideCustomerRepository, mongoTemplate);
}
@Bean
- public CustomerQueryService customerQueryService(QuerySideCustomerRepository accountInfoRepository) {
+ public CustomerQueryService customerQueryService(CustomerViewRepository accountInfoRepository) {
return new CustomerQueryService(accountInfoRepository);
}
@Bean
- public QuerySideDependencyChecker querysideDependencyChecker(MongoTemplate mongoTemplate) {
- return new QuerySideDependencyChecker(mongoTemplate);
+ public ViewDependencyChecker querysideDependencyChecker(MongoTemplate mongoTemplate) {
+ return new ViewDependencyChecker(mongoTemplate);
}
}
diff --git a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideCustomerRepository.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerViewRepository.java
similarity index 59%
rename from java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideCustomerRepository.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerViewRepository.java
index c810524..6d6f8cb 100644
--- a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideCustomerRepository.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerViewRepository.java
@@ -1,11 +1,11 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend;
import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.List;
-interface QuerySideCustomerRepository extends MongoRepository {
+interface CustomerViewRepository extends MongoRepository {
List findByEmailLike(String email);
}
diff --git a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideDependencyChecker.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/ViewDependencyChecker.java
similarity index 58%
rename from java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideDependencyChecker.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/ViewDependencyChecker.java
index 0d7d33c..2a0d095 100644
--- a/java-spring/customers-query-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/QuerySideDependencyChecker.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/ViewDependencyChecker.java
@@ -1,16 +1,16 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.data.mongodb.core.MongoTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.data.mongodb.core.MongoTemplate;
- import javax.annotation.PostConstruct;
+import javax.annotation.PostConstruct;
-public class QuerySideDependencyChecker {
+public class ViewDependencyChecker {
private Logger logger = LoggerFactory.getLogger(getClass());
private MongoTemplate mongoTemplate;
- public QuerySideDependencyChecker(MongoTemplate mongoTemplate) {
+ public ViewDependencyChecker(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
diff --git a/java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomerQueryController.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomerQueryController.java
similarity index 89%
rename from java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomerQueryController.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomerQueryController.java
index 274de37..c00a24d 100644
--- a/java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomerQueryController.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomerQueryController.java
@@ -1,6 +1,6 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.web;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers.CustomerQueryService;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend.CustomerQueryService;
import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
diff --git a/java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomersQueryResponse.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomersQueryResponse.java
similarity index 87%
rename from java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomersQueryResponse.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomersQueryResponse.java
index b4c340d..235cbe0 100644
--- a/java-spring/customers-query-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/customers/queryside/CustomersQueryResponse.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomersQueryResponse.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.web;
import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
diff --git a/java-spring/accounts-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceConfiguration.java b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomersViewWebConfiguration.java
similarity index 50%
rename from java-spring/accounts-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceConfiguration.java
rename to java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomersViewWebConfiguration.java
index b350c35..0ea92c8 100644
--- a/java-spring/accounts-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/AccountsCommandSideServiceConfiguration.java
+++ b/java-spring/customers-view-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/web/CustomersViewWebConfiguration.java
@@ -1,9 +1,6 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.web;
-import io.eventuate.javaclient.spring.httpstomp.EventuateHttpStompClientConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.accounts.CommandSideWebAccountsConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend.CustomerViewBackendConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -11,19 +8,16 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
-@Import({CommandSideWebAccountsConfiguration.class, EventuateHttpStompClientConfiguration.class, CommonSwaggerConfiguration.class})
-@EnableAutoConfiguration
+@Import({CustomerViewBackendConfiguration.class})
@ComponentScan
-public class AccountsCommandSideServiceConfiguration {
-
+public class CustomersViewWebConfiguration extends WebMvcConfigurerAdapter {
@Bean
public HttpMessageConverters customConverters() {
HttpMessageConverter> additional = new MappingJackson2HttpMessageConverter();
return new HttpMessageConverters(additional);
}
-
-
}
diff --git a/java-spring/customers-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceIntegrationTest.java b/java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersQuerySideServiceIntegrationTest.java
similarity index 95%
rename from java-spring/customers-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceIntegrationTest.java
rename to java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersQuerySideServiceIntegrationTest.java
index f48c868..2f68662 100644
--- a/java-spring/customers-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceIntegrationTest.java
+++ b/java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersQuerySideServiceIntegrationTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerResponse;
diff --git a/java-spring/customers-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceTestConfiguration.java b/java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersQuerySideServiceTestConfiguration.java
similarity index 68%
rename from java-spring/customers-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceTestConfiguration.java
rename to java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersQuerySideServiceTestConfiguration.java
index 8e12c30..bd462e6 100644
--- a/java-spring/customers-query-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/CustomersQuerySideServiceTestConfiguration.java
+++ b/java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/CustomersQuerySideServiceTestConfiguration.java
@@ -1,9 +1,9 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
import net.chrisrichardson.eventstore.javaexamples.banking.commonauth.AuthConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers.CustomersCommandSideWebConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.CustomersQuerySideWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.web.CustomersWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.web.CustomersViewWebConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
@@ -17,7 +17,7 @@ import java.util.Arrays;
import java.util.List;
@Configuration
-@Import({CustomersCommandSideWebConfiguration.class, CustomersQuerySideWebConfiguration.class, EventuateJdbcEventStoreConfiguration.class, AuthConfiguration.class})
+@Import({CustomersWebConfiguration.class, CustomersViewWebConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class, AuthConfiguration.class})
@EnableAutoConfiguration
public class CustomersQuerySideServiceTestConfiguration {
diff --git a/java-spring/customers-query-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerInfoUpdateServiceTest.java b/java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerInfoUpdateServiceTest.java
similarity index 89%
rename from java-spring/customers-query-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerInfoUpdateServiceTest.java
rename to java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerInfoUpdateServiceTest.java
index 1b6f256..7c37109 100644
--- a/java-spring/customers-query-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/queryside/customers/CustomerInfoUpdateServiceTest.java
+++ b/java-spring/customers-view-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/customersviewservice/backend/CustomerInfoUpdateServiceTest.java
@@ -1,11 +1,11 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.customers;
+package net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.backend;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
import io.eventuate.javaclient.spring.jdbc.IdGenerator;
import io.eventuate.javaclient.spring.jdbc.IdGeneratorImpl;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.CustomerInfo;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
import net.chrisrichardson.eventstore.javaexamples.banking.common.customers.ToAccountInfo;
+import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.common.QuerySideCustomer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,9 +19,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.concurrent.ExecutionException;
import static net.chrisrichardson.eventstorestore.javaexamples.testutil.CustomersTestUtils.generateCustomerInfo;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = CustomerInfoUpdateServiceTest.CustomerInfoUpdateServiceTestConfiguration.class)
@@ -30,7 +28,7 @@ public class CustomerInfoUpdateServiceTest {
@Configuration
@EnableAutoConfiguration
- @Import({QuerySideCustomerConfiguration.class, EventuateJdbcEventStoreConfiguration.class})
+ @Import({CustomerViewBackendConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class})
public static class CustomerInfoUpdateServiceTestConfiguration {
}
diff --git a/java-spring/docker-compose-common.yml b/java-spring/docker-compose-common.yml
index 1b548cd..5adaf70 100644
--- a/java-spring/docker-compose-common.yml
+++ b/java-spring/docker-compose-common.yml
@@ -4,37 +4,37 @@ apigateway:
- "8080:8080"
environment:
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
- ACCOUNTS_COMMANDSIDE_SERVICE_HOST: accountscommandside
- TRANSFERS_COMMANDSIDE_SERVICE_HOST: transactionscommandside
- ACCOUNTS_QUERYSIDE_SERVICE_HOST: accountsqueryside
- CUSTOMERS_COMMANDSIDE_SERVICE_HOST: customerscommandside
- CUSTOMERS_QUERYSIDE_SERVICE_HOST: customersqueryside
+ ACCOUNTS_COMMANDSIDE_SERVICE_HOST: accountsservice
+ TRANSFERS_COMMANDSIDE_SERVICE_HOST: transactionsservice
+ ACCOUNTS_QUERYSIDE_SERVICE_HOST: accountsviewservice
+ CUSTOMERS_COMMANDSIDE_SERVICE_HOST: customersservice
+ CUSTOMERS_QUERYSIDE_SERVICE_HOST: customersviewservice
-accountscommandside:
- build: ./accounts-command-side-service/
+accountsservice:
+ build: ./accounts-service/
ports:
- "8085:8080"
-transactionscommandside:
- build: ./transactions-command-side-service/
+transactionsservice:
+ build: ./transactions-service/
ports:
- "8082:8080"
-accountsqueryside:
- build: ./accounts-query-side-service/
+accountsviewservice:
+ build: ./accounts-view-service/
environment:
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
ports:
- "8081:8080"
-customerscommandside:
- build: ./customers-command-side-service/
+customersservice:
+ build: ./customers-service/
ports:
- "8083:8080"
-customersqueryside:
- build: ./customers-query-side-service/
+customersviewservice:
+ build: ./customers-view-service/
ports:
- "8084:8080"
environment:
diff --git a/java-spring/docker-compose-eventuate-local.yml b/java-spring/docker-compose-eventuate-local.yml
index 4c07d2e..c08c772 100644
--- a/java-spring/docker-compose-eventuate-local.yml
+++ b/java-spring/docker-compose-eventuate-local.yml
@@ -55,17 +55,17 @@ apigateway:
file: docker-compose-common.yml
service: apigateway
links:
- - accountscommandside
- - transactionscommandside
- - accountsqueryside
- - customerscommandside
- - customersqueryside
+ - accountsservice
+ - transactionsservice
+ - accountsviewservice
+ - customersservice
+ - customersviewservice
- mongodb
-accountscommandside:
+accountsservice:
extends:
file: docker-compose-common.yml
- service: accountscommandside
+ service: accountsservice
links:
- mysql
- kafka
@@ -81,10 +81,10 @@ accountscommandside:
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
-transactionscommandside:
+transactionsservice:
extends:
file: docker-compose-common.yml
- service: transactionscommandside
+ service: transactionsservice
links:
- mysql
- kafka
@@ -99,10 +99,10 @@ transactionscommandside:
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
-accountsqueryside:
+accountsviewservice:
extends:
file: docker-compose-common.yml
- service: accountsqueryside
+ service: accountsviewservice
links:
- mongodb
- mysql
@@ -120,10 +120,10 @@ accountsqueryside:
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
-customerscommandside:
+customersservice:
extends:
file: docker-compose-common.yml
- service: customerscommandside
+ service: customersservice
links:
- mysql
- kafka
@@ -138,10 +138,10 @@ customerscommandside:
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
-customersqueryside:
+customersviewservice:
extends:
file: docker-compose-common.yml
- service: customersqueryside
+ service: customersviewservice
links:
- mongodb
- mysql
diff --git a/java-spring/docker-compose.yml b/java-spring/docker-compose.yml
index 306988c..51deb2a 100644
--- a/java-spring/docker-compose.yml
+++ b/java-spring/docker-compose.yml
@@ -3,52 +3,52 @@ apigateway:
file: docker-compose-common.yml
service: apigateway
links:
- - accountscommandside
- - transactionscommandside
- - accountsqueryside
- - customerscommandside
- - customersqueryside
+ - accountsservice
+ - transactionsservice
+ - accountsviewservice
+ - customersservice
+ - customersviewservice
- mongodb
-accountscommandside:
+accountsservice:
extends:
file: docker-compose-common.yml
- service: accountscommandside
+ service: accountsservice
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
-transactionscommandside:
+transactionsservice:
extends:
file: docker-compose-common.yml
- service: transactionscommandside
+ service: transactionsservice
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
-accountsqueryside:
+accountsviewservice:
extends:
file: docker-compose-common.yml
- service: accountsqueryside
+ service: accountsviewservice
links:
- mongodb
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
-customerscommandside:
+customersservice:
extends:
file: docker-compose-common.yml
- service: customerscommandside
+ service: customersservice
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
-customersqueryside:
+customersviewservice:
extends:
file: docker-compose-common.yml
- service: customersqueryside
+ service: customersviewservice
links:
- mongodb
environment:
diff --git a/java-spring/e2e-test/build.gradle b/java-spring/e2e-test/build.gradle
index 5783c4e..9f6d72f 100644
--- a/java-spring/e2e-test/build.gradle
+++ b/java-spring/e2e-test/build.gradle
@@ -1,10 +1,6 @@
apply plugin: VerifyMongoDBConfigurationPlugin
dependencies {
- testCompile project(":accounts-command-side-web")
- testCompile project(":transactions-command-side-web")
- testCompile project(":accounts-query-side-web")
-
testCompile project(":testutil")
testCompile project(":common-auth")
testCompile "junit:junit:4.11"
diff --git a/java-spring/monolithic-service/build.gradle b/java-spring/monolithic-service/build.gradle
deleted file mode 100644
index ff195c9..0000000
--- a/java-spring/monolithic-service/build.gradle
+++ /dev/null
@@ -1,31 +0,0 @@
-apply plugin: VerifyMongoDBConfigurationPlugin
-
-apply plugin: 'spring-boot'
-
-dependencies {
- compile project(":accounts-query-side-web")
- compile project(":accounts-command-side-web")
- compile project(":transactions-command-side-web")
- compile project(":customers-command-side-web")
- compile project(":customers-query-side-web")
- compile project(":common-auth-web")
- compile project(":common-swagger")
-
- compile "org.springframework.boot:spring-boot-starter-web"
- compile "org.springframework.boot:spring-boot-starter-actuator"
-
- compile "io.eventuate.client.java:eventuate-client-java-http-stomp-spring:$eventuateClientVersion"
- compile project(":common-swagger")
-
- testCompile project(":testutil")
- testCompile "org.springframework.boot:spring-boot-starter-test"
- testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-}
-
-task copyWebStatic(type: Copy) {
- from "../../js-frontend/build"
- into "build/resources/main/static"
-}
-
-jar.dependsOn(copyWebStatic)
-bootRun.dependsOn(copyWebStatic)
diff --git a/java-spring/monolithic-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebConfiguration.java b/java-spring/monolithic-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebConfiguration.java
deleted file mode 100644
index a7c564c..0000000
--- a/java-spring/monolithic-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebConfiguration.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
-
-import io.eventuate.javaclient.spring.httpstomp.EventuateHttpStompClientConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonauth.AuthConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.accounts.CommandSideWebAccountsConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers.CustomersCommandSideWebConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.transactions.CommandSideWebTransactionsConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.CustomersQuerySideWebConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.queryside.QuerySideWebConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-@Configuration
-@Import({CommandSideWebAccountsConfiguration.class, CommandSideWebTransactionsConfiguration.class, EventuateHttpStompClientConfiguration.class, QuerySideWebConfiguration.class, CustomersQuerySideWebConfiguration.class, CustomersCommandSideWebConfiguration.class, AuthConfiguration.class, CommonSwaggerConfiguration.class})
-@EnableAutoConfiguration
-public class BankingWebConfiguration extends WebMvcConfigurerAdapter {
-
-
- @Bean
- public HttpMessageConverters customConverters() {
- HttpMessageConverter> additional = new MappingJackson2HttpMessageConverter();
- return new HttpMessageConverters(additional);
- }
-
- @Bean
- public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
- System.setProperty("vertx.disableFileCPResolving", "true");
- return new PropertySourcesPlaceholderConfigurer();
- }
-
- @Override
- public void addViewControllers(ViewControllerRegistry registry) {
- registry.addViewController("/").setViewName("forward:/index.html");
- }
-}
diff --git a/java-spring/monolithic-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/BankingMain.java b/java-spring/monolithic-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/BankingMain.java
deleted file mode 100644
index 534a3d4..0000000
--- a/java-spring/monolithic-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/BankingMain.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.main;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.web.BankingWebConfiguration;
-import org.springframework.boot.SpringApplication;
-
-public class BankingMain {
-
- public static void main(String[] args) {
- SpringApplication.run(BankingWebConfiguration.class, args);
- }
-}
diff --git a/java-spring/rest-api-integration-tests/build.gradle b/java-spring/rest-api-integration-tests/build.gradle
new file mode 100644
index 0000000..8ed53ba
--- /dev/null
+++ b/java-spring/rest-api-integration-tests/build.gradle
@@ -0,0 +1,14 @@
+apply plugin: VerifyMongoDBConfigurationPlugin
+
+dependencies {
+ testCompile project(":common-auth-web")
+ testCompile project(":transactions-service")
+ testCompile project(":accounts-service")
+ testCompile project(":accounts-view-service")
+ testCompile project(":customers-service")
+ testCompile project(":customers-view-service")
+ testCompile project(":testutil")
+ testCompile "junit:junit:4.11"
+ testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
+ testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
+}
\ No newline at end of file
diff --git a/java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingAuthTest.java b/java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingAuthTest.java
similarity index 100%
rename from java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingAuthTest.java
rename to java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingAuthTest.java
diff --git a/java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebIntegrationTest.java b/java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebIntegrationTest.java
similarity index 94%
rename from java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebIntegrationTest.java
rename to java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebIntegrationTest.java
index 7c014e7..b0fc3ff 100644
--- a/java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebIntegrationTest.java
+++ b/java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebIntegrationTest.java
@@ -2,7 +2,6 @@ package net.chrisrichardson.eventstore.javaexamples.banking.web;
import net.chrisrichardson.eventstorestore.javaexamples.testutil.AbstractRestAPITest;
-import net.chrisrichardson.eventstorestore.javaexamples.testutil.AuthenticatedRestTemplate;
import net.chrisrichardson.eventstorestore.javaexamples.testutil.CustomersTestUtils;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebTestConfiguration.java b/java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebTestConfiguration.java
similarity index 60%
rename from java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebTestConfiguration.java
rename to java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebTestConfiguration.java
index c91f07d..0de078b 100644
--- a/java-spring/monolithic-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebTestConfiguration.java
+++ b/java-spring/rest-api-integration-tests/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/BankingWebTestConfiguration.java
@@ -1,19 +1,16 @@
package net.chrisrichardson.eventstore.javaexamples.banking.web;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsservice.web.AccountsWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.accountsviewservice.web.AccountViewWebConfiguration;
import net.chrisrichardson.eventstore.javaexamples.banking.commonauth.AuthConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.accounts.CommandSideWebAccountsConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.customers.CustomersCommandSideWebConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.transactions.CommandSideWebTransactionsConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.customers.queryside.CustomersQuerySideWebConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.queryside.QuerySideWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersservice.web.CustomersWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.customersviewservice.web.CustomersViewWebConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.web.MoneyTransferWebConfiguration;
import net.chrisrichardson.eventstorestore.javaexamples.testutil.RestTemplateErrorHandler;
-
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.http.converter.HttpMessageConverter;
@@ -25,7 +22,13 @@ import java.util.Arrays;
import java.util.List;
@Configuration
-@Import({CommandSideWebAccountsConfiguration.class, CommandSideWebTransactionsConfiguration.class, EventuateJdbcEventStoreConfiguration.class, QuerySideWebConfiguration.class, CustomersQuerySideWebConfiguration.class, CustomersCommandSideWebConfiguration.class, AuthConfiguration.class, CommonSwaggerConfiguration.class})
+@Import({AccountsWebConfiguration.class,
+ MoneyTransferWebConfiguration.class,
+ AccountViewWebConfiguration.class,
+ CustomersViewWebConfiguration.class,
+ CustomersWebConfiguration.class,
+ EmbeddedTestAggregateStoreConfiguration.class,
+ AuthConfiguration.class})
@EnableAutoConfiguration
public class BankingWebTestConfiguration extends WebMvcConfigurerAdapter {
diff --git a/java-spring/settings.gradle b/java-spring/settings.gradle
index 0425d7a..7badf00 100644
--- a/java-spring/settings.gradle
+++ b/java-spring/settings.gradle
@@ -4,33 +4,18 @@ include 'common-backend'
include 'common-auth'
include 'common-auth-web'
include 'common-swagger'
-
-include 'accounts-command-side-backend'
-include 'accounts-command-side-web'
-include 'accounts-command-side-service'
-
-include 'accounts-query-side-backend'
-include 'accounts-query-side-web'
-include 'accounts-query-side-service'
-
-include 'transactions-command-side-backend'
-include 'transactions-command-side-web'
-include 'transactions-command-side-service'
-
-include 'customers-command-side-backend'
-include 'customers-command-side-web'
-include 'customers-command-side-service'
-
include 'customers-query-side-common'
-include 'customers-query-side-backend'
-include 'customers-query-side-web'
-include 'customers-query-side-service'
+
+include 'accounts-service'
+include 'accounts-view-service'
+include 'transactions-service'
+include 'customers-service'
+include 'customers-view-service'
include 'api-gateway-service'
-include 'monolithic-service'
-
include 'backend-integration-tests'
+include 'rest-api-integration-tests'
include 'e2e-test'
rootProject.name = 'java-spring-event-sourcing-example'
diff --git a/java-spring/transactions-command-side-backend/build.gradle b/java-spring/transactions-command-side-backend/build.gradle
deleted file mode 100644
index 075d8fa..0000000
--- a/java-spring/transactions-command-side-backend/build.gradle
+++ /dev/null
@@ -1,14 +0,0 @@
-apply plugin: 'java'
-
-dependencies {
-
- compile project(":common-backend")
- compile "io.eventuate.client.java:eventuate-client-java-spring:$eventuateClientVersion"
-
- testCompile project(":testutil")
- testCompile "junit:junit:4.11"
- testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
- testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-
-
-}
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferCommand.java b/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferCommand.java
deleted file mode 100644
index 91eada6..0000000
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferCommand.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
-
-import io.eventuate.Command;
-
-interface MoneyTransferCommand extends Command {
-}
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordCreditCommand.java b/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordCreditCommand.java
deleted file mode 100644
index 421ef61..0000000
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordCreditCommand.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
-
-public class RecordCreditCommand implements MoneyTransferCommand {
-}
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordDebitCommand.java b/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordDebitCommand.java
deleted file mode 100644
index 0d1d1f0..0000000
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordDebitCommand.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
-
-public class RecordDebitCommand implements MoneyTransferCommand {
-}
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordDebitFailedCommand.java b/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordDebitFailedCommand.java
deleted file mode 100644
index 159d7ab..0000000
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/RecordDebitFailedCommand.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
-
-public class RecordDebitFailedCommand implements MoneyTransferCommand {
-}
diff --git a/java-spring/transactions-command-side-service/Dockerfile b/java-spring/transactions-command-side-service/Dockerfile
deleted file mode 100644
index 53031e0..0000000
--- a/java-spring/transactions-command-side-service/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:openjdk-8u91-jdk
-CMD java ${JAVA_OPTS} -jar transactions-command-side-service.jar
-EXPOSE 8080
-COPY build/libs/transactions-command-side-service.jar .
\ No newline at end of file
diff --git a/java-spring/transactions-command-side-service/build.gradle b/java-spring/transactions-command-side-service/build.gradle
deleted file mode 100644
index 3d530db..0000000
--- a/java-spring/transactions-command-side-service/build.gradle
+++ /dev/null
@@ -1,20 +0,0 @@
-apply plugin: 'spring-boot'
-apply plugin: EventuateDependencyPlugin
-
-apply plugin: VerifyEventStoreEnvironmentPlugin
-
-dependencies {
- compile project(":transactions-command-side-web")
- compile project(":common-swagger")
-
- compile "org.springframework.boot:spring-boot-starter-web"
- compile "org.springframework.boot:spring-boot-starter-actuator"
-
- testCompile "org.springframework.boot:spring-boot-starter-test"
-
-}
-
-test {
- ignoreFailures System.getenv("EVENTUATE_API_KEY_ID") == null
-}
-
diff --git a/java-spring/transactions-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/TransactionsCommandSideServiceMain.java b/java-spring/transactions-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/TransactionsCommandSideServiceMain.java
deleted file mode 100644
index 2980e56..0000000
--- a/java-spring/transactions-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/main/TransactionsCommandSideServiceMain.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.main;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.web.TransactionsCommandSideServiceConfiguration;
-import org.springframework.boot.SpringApplication;
-
-public class TransactionsCommandSideServiceMain {
-
- public static void main(String[] args) {
- SpringApplication.run(TransactionsCommandSideServiceConfiguration.class, args);
- }
-}
diff --git a/java-spring/transactions-command-side-web/build.gradle b/java-spring/transactions-command-side-web/build.gradle
deleted file mode 100644
index 32f9aa9..0000000
--- a/java-spring/transactions-command-side-web/build.gradle
+++ /dev/null
@@ -1,12 +0,0 @@
-
-dependencies {
- compile project(":transactions-command-side-backend")
-
- compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
-
- testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
- testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
-}
-
-
-
diff --git a/java-spring/transactions-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/CommandSideWebTransactionsConfiguration.java b/java-spring/transactions-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/CommandSideWebTransactionsConfiguration.java
deleted file mode 100644
index 42e0c6b..0000000
--- a/java-spring/transactions-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/CommandSideWebTransactionsConfiguration.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.transactions;
-
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransferConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import({MoneyTransferConfiguration.class})
-@ComponentScan
-public class CommandSideWebTransactionsConfiguration {
-
-}
diff --git a/java-spring/transactions-service/Dockerfile b/java-spring/transactions-service/Dockerfile
new file mode 100644
index 0000000..b75309e
--- /dev/null
+++ b/java-spring/transactions-service/Dockerfile
@@ -0,0 +1,4 @@
+FROM java:openjdk-8u91-jdk
+CMD java ${JAVA_OPTS} -jar transactions-service.jar
+EXPOSE 8080
+COPY build/libs/transactions-service.jar .
\ No newline at end of file
diff --git a/java-spring/accounts-query-side-service/build.gradle b/java-spring/transactions-service/build.gradle
similarity index 58%
rename from java-spring/accounts-query-side-service/build.gradle
rename to java-spring/transactions-service/build.gradle
index 67ac6a5..ccc4a03 100644
--- a/java-spring/accounts-query-side-service/build.gradle
+++ b/java-spring/transactions-service/build.gradle
@@ -1,21 +1,22 @@
-apply plugin: VerifyMongoDBConfigurationPlugin
-apply plugin: VerifyEventStoreEnvironmentPlugin
+apply plugin: 'spring-boot'
apply plugin: EventuateDependencyPlugin
-apply plugin: 'spring-boot'
+apply plugin: VerifyEventStoreEnvironmentPlugin
dependencies {
- compile project(":accounts-query-side-web")
+ compile project(":common-backend")
compile project(":common-swagger")
- compile "org.springframework.boot:spring-boot-starter-web"
- compile "org.springframework.boot:spring-boot-starter-actuator"
+ compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
+ compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
testCompile project(":testutil")
- testCompile "org.springframework.boot:spring-boot-starter-test"
-
+ testCompile "junit:junit:4.11"
+ testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
+ testCompile "io.eventuate.client.java:eventuate-client-java-jdbc:$eventuateClientVersion"
}
test {
ignoreFailures System.getenv("EVENTUATE_API_KEY_ID") == null
}
+
diff --git a/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsServiceMain.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsServiceMain.java
new file mode 100644
index 0000000..4c7be34
--- /dev/null
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsServiceMain.java
@@ -0,0 +1,23 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice;
+
+import io.eventuate.javaclient.driver.EventuateDriverConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.web.MoneyTransferWebConfiguration;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({MoneyTransferWebConfiguration.class,
+ EventuateDriverConfiguration.class,
+ CommonSwaggerConfiguration.class})
+@EnableAutoConfiguration
+@ComponentScan
+public class TransactionsServiceMain {
+
+ public static void main(String[] args) {
+ SpringApplication.run(TransactionsServiceMain.class, args);
+ }
+}
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/CreateMoneyTransferCommand.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/CreateMoneyTransferCommand.java
similarity index 80%
rename from java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/CreateMoneyTransferCommand.java
rename to java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/CreateMoneyTransferCommand.java
index 4d15699..e5cb1f4 100644
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/CreateMoneyTransferCommand.java
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/CreateMoneyTransferCommand.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.transactions.TransferDetails;
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransfer.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransfer.java
similarity index 94%
rename from java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransfer.java
rename to java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransfer.java
index 849175a..eb31f04 100644
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransfer.java
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransfer.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
import io.eventuate.Event;
import io.eventuate.EventUtil;
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferConfiguration.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferBackendConfiguration.java
similarity index 82%
rename from java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferConfiguration.java
rename to java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferBackendConfiguration.java
index 5f915f3..5ebebcc 100644
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferConfiguration.java
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferBackendConfiguration.java
@@ -1,15 +1,14 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
import io.eventuate.AggregateRepository;
import io.eventuate.EventuateAggregateStore;
import io.eventuate.javaclient.spring.EnableEventHandlers;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
@Configuration
@EnableEventHandlers
-public class MoneyTransferConfiguration {
+public class MoneyTransferBackendConfiguration {
@Bean
public MoneyTransferService moneyTransferService(AggregateRepository moneyTransferRepository) {
diff --git a/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferCommand.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferCommand.java
new file mode 100644
index 0000000..64b3819
--- /dev/null
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferCommand.java
@@ -0,0 +1,6 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
+
+import io.eventuate.Command;
+
+interface MoneyTransferCommand extends Command {
+}
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferService.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferService.java
similarity index 88%
rename from java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferService.java
rename to java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferService.java
index b31358f..c0209da 100644
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferService.java
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferService.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
import io.eventuate.AggregateRepository;
import io.eventuate.EntityWithIdAndVersion;
diff --git a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferWorkflow.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferWorkflow.java
similarity index 93%
rename from java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferWorkflow.java
rename to java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferWorkflow.java
index 0328cb3..a6724a4 100644
--- a/java-spring/transactions-command-side-backend/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferWorkflow.java
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferWorkflow.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
import io.eventuate.EntityWithIdAndVersion;
diff --git a/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordCreditCommand.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordCreditCommand.java
new file mode 100644
index 0000000..015ce28
--- /dev/null
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordCreditCommand.java
@@ -0,0 +1,4 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
+
+public class RecordCreditCommand implements MoneyTransferCommand {
+}
diff --git a/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordDebitCommand.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordDebitCommand.java
new file mode 100644
index 0000000..e4be904
--- /dev/null
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordDebitCommand.java
@@ -0,0 +1,4 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
+
+public class RecordDebitCommand implements MoneyTransferCommand {
+}
diff --git a/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordDebitFailedCommand.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordDebitFailedCommand.java
new file mode 100644
index 0000000..559e574
--- /dev/null
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/RecordDebitFailedCommand.java
@@ -0,0 +1,4 @@
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
+
+public class RecordDebitFailedCommand implements MoneyTransferCommand {
+}
diff --git a/java-spring/transactions-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferController.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferController.java
similarity index 89%
rename from java-spring/transactions-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferController.java
rename to java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferController.java
index 8c8a348..df2cb80 100644
--- a/java-spring/transactions-command-side-web/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferController.java
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferController.java
@@ -1,10 +1,10 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.web;
-import net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions.MoneyTransferService;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.common.transactions.TransferDetails;
import net.chrisrichardson.eventstore.javaexamples.banking.common.transactions.CreateMoneyTransferRequest;
import net.chrisrichardson.eventstore.javaexamples.banking.common.transactions.CreateMoneyTransferResponse;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransferService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/java-spring/transactions-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceConfiguration.java b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferWebConfiguration.java
similarity index 50%
rename from java-spring/transactions-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceConfiguration.java
rename to java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferWebConfiguration.java
index 429084a..643bbe7 100644
--- a/java-spring/transactions-command-side-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceConfiguration.java
+++ b/java-spring/transactions-service/src/main/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferWebConfiguration.java
@@ -1,9 +1,6 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.web;
-import io.eventuate.javaclient.spring.httpstomp.EventuateHttpStompClientConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.commonswagger.CommonSwaggerConfiguration;
-import net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.transactions.CommandSideWebTransactionsConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend.MoneyTransferBackendConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -13,16 +10,14 @@ import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
@Configuration
-@Import({CommandSideWebTransactionsConfiguration.class, EventuateHttpStompClientConfiguration.class, CommonSwaggerConfiguration.class})
-@EnableAutoConfiguration
+@Import({MoneyTransferBackendConfiguration.class})
@ComponentScan
-public class TransactionsCommandSideServiceConfiguration {
-
+public class MoneyTransferWebConfiguration {
@Bean
public HttpMessageConverters customConverters() {
HttpMessageConverter> additional = new MappingJackson2HttpMessageConverter();
return new HttpMessageConverters(additional);
}
-
+
}
diff --git a/java-spring/transactions-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceIntegrationTest.java b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsCommandSideServiceIntegrationTest.java
similarity index 92%
rename from java-spring/transactions-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceIntegrationTest.java
rename to java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsCommandSideServiceIntegrationTest.java
index 8d82dfd..14a0e7b 100644
--- a/java-spring/transactions-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceIntegrationTest.java
+++ b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsCommandSideServiceIntegrationTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/java-spring/transactions-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceTestConfiguration.java b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsCommandSideServiceTestConfiguration.java
similarity index 75%
rename from java-spring/transactions-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceTestConfiguration.java
rename to java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsCommandSideServiceTestConfiguration.java
index 03667ea..70182ef 100644
--- a/java-spring/transactions-command-side-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/TransactionsCommandSideServiceTestConfiguration.java
+++ b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/TransactionsCommandSideServiceTestConfiguration.java
@@ -1,5 +1,7 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice;
+import net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.web.MoneyTransferWebConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -12,7 +14,8 @@ import java.util.Arrays;
import java.util.List;
@Configuration
-@Import(TransactionsCommandSideServiceConfiguration.class)
+@Import(MoneyTransferWebConfiguration.class)
+@EnableAutoConfiguration
public class TransactionsCommandSideServiceTestConfiguration {
@Bean
diff --git a/java-spring/transactions-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferEventTest.java b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferEventTest.java
similarity index 72%
rename from java-spring/transactions-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferEventTest.java
rename to java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferEventTest.java
index 12bf27a..58cd9f9 100644
--- a/java-spring/transactions-command-side-backend/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/backend/commandside/transactions/MoneyTransferEventTest.java
+++ b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/backend/MoneyTransferEventTest.java
@@ -1,5 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.backend.commandside.transactions;
-
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.backend;
import net.chrisrichardson.eventstorestore.javaexamples.testutil.AbstractEntityEventTest;
diff --git a/java-spring/transactions-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferControllerIntegrationTest.java b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferControllerIntegrationTest.java
similarity index 95%
rename from java-spring/transactions-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferControllerIntegrationTest.java
rename to java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferControllerIntegrationTest.java
index 4aa88a7..f6931bc 100644
--- a/java-spring/transactions-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferControllerIntegrationTest.java
+++ b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferControllerIntegrationTest.java
@@ -1,4 +1,4 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.web;
import org.junit.Before;
diff --git a/java-spring/transactions-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferControllerIntegrationTestConfiguration.java b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferControllerIntegrationTestConfiguration.java
similarity index 52%
rename from java-spring/transactions-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferControllerIntegrationTestConfiguration.java
rename to java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferControllerIntegrationTestConfiguration.java
index 915cbcc..da8a456 100644
--- a/java-spring/transactions-command-side-web/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/web/commandside/transactions/MoneyTransferControllerIntegrationTestConfiguration.java
+++ b/java-spring/transactions-service/src/test/java/net/chrisrichardson/eventstore/javaexamples/banking/transactionsservice/web/MoneyTransferControllerIntegrationTestConfiguration.java
@@ -1,12 +1,12 @@
-package net.chrisrichardson.eventstore.javaexamples.banking.web.commandside.transactions;
+package net.chrisrichardson.eventstore.javaexamples.banking.transactionsservice.web;
-import io.eventuate.javaclient.spring.jdbc.EventuateJdbcEventStoreConfiguration;
+import io.eventuate.javaclient.spring.jdbc.EmbeddedTestAggregateStoreConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
-@Import({CommandSideWebTransactionsConfiguration.class, EventuateJdbcEventStoreConfiguration.class})
+@Import({MoneyTransferWebConfiguration.class, EmbeddedTestAggregateStoreConfiguration.class})
@EnableAutoConfiguration
public class MoneyTransferControllerIntegrationTestConfiguration {
}