Started migration to Java 11
This commit is contained in:
@@ -4,20 +4,18 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<parent>
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>cqrs4j-example-aggregates</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
|
||||
<name>cqrs4j-example-aggregates</name>
|
||||
<description>DDD related code for all demo applications (aggregates, entities and business exceptions)</description>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<java.version>1.8</java.version>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- Compile -->
|
||||
@@ -31,31 +29,26 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>objects4j</artifactId>
|
||||
<version>0.6.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>javax.json</artifactId>
|
||||
<version>1.1.4</version>
|
||||
<artifactId>jakarta.json</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Test -->
|
||||
@@ -63,79 +56,123 @@
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<version>3.10.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<version>0.8.4</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<version>2.4.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>yasson</artifactId>
|
||||
<version>1.0.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>6.1.0.Final</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-impl</artifactId>
|
||||
<groupId>com.sun.xml.bind</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<build>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<plugins>
|
||||
|
||||
</repositories>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
<archive>
|
||||
<manifestEntries>
|
||||
<Automatic-Module-Name>org.fuin.cqrs4j.example.shared</Automatic-Module-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
|
||||
<plugins>
|
||||
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
<versionRange>[3.1.2,)</versionRange>
|
||||
<goals>
|
||||
<goal>jdkinternals</goal>
|
||||
<goal>test-jdkinternals</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</pluginManagement>
|
||||
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
*/
|
||||
package org.fuin.cqrs4j.example.aggregates;
|
||||
|
||||
import javax.annotation.concurrent.NotThreadSafe;
|
||||
import org.fuin.objects4j.common.NotThreadSafe;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import org.fuin.cqrs4j.example.shared.PersonId;
|
||||
|
||||
@@ -4,7 +4,7 @@ Minimal standalone example application that uses the [ddd-4-java](https://github
|
||||
## Starting the demo
|
||||
|
||||
1. Start an EventStore locally on your PC
|
||||
* You can use the [EventStore Docker Image](https://hub.docker.com/r/eventstore/eventstore/): ```docker run --name eventstore-node -p 2113:2113 -p 1113:1113 --rm eventstore/eventstore:release-4.1.3```
|
||||
* You can use the [EventStore Docker Image](https://hub.docker.com/r/eventstore/eventstore/): ```docker run --name eventstore-node -p 2113:2113 -p 1113:1113 --rm eventstore/eventstore:release-5.0.9```
|
||||
* Or simply start an instance (See [Install and run Event Store](https://eventstore.org/docs/server/index.html?tabs=tabid-1) for more information)
|
||||
2. Run the [QryExampleApp](src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/app/QryExampleApp.java) to make the view/read part listen to new events
|
||||
* You should see something like this on the console: ```INFO o.f.d.qry.handler.QryProjector - Create projection 'qry-person-stream' with events: [PersonCreatedEvent]```
|
||||
@@ -12,7 +12,8 @@ Minimal standalone example application that uses the [ddd-4-java](https://github
|
||||
3. Run the [CmdExampleApp](src/main/java/org/fuin/cqrs4j/example/javasecdi/cmd/app/CmdExampleApp.java) to create a [PersonCreatedEvent](src/main/java/org/fuin/cqrs4j/example/javasecdi/shared/domain/PersonCreatedEvent.java)
|
||||
* You should see something like this on the console: ```INFO o.f.d.cmd.app.CmdExampleApp - Updated event store...```
|
||||
* There should also be an update on the 'QryExampleApp' console: ```INFO o.f.d.q.h.PersonCreatedEventHandler - Handle Person 'Peter Parker Inc.' was created```
|
||||
* If you open the [Event Store UI](http://localhost:2113/web/index.html#/projections) (User 'admin' / Password 'changeit') and open the projection details for 'qry-person-stream' it should show 'Events processed = 1'
|
||||
* If you open the [Event Store UI](http://localhost:2113/web/index.html#/projections) (User 'admin' / Password 'changeit') and open the projection details for 'qry-person-stream' it should show 'Events processed = 1'
|
||||
* Look at the person's aggregate event stream: ```http://localhost:2113/web/index.html#/streams/PERSON-00000000-0000-0000-0000-000000000000`` - Replace the zero UUID with the one shown in the event handler message 'Person 'Peter Parker Inc.' (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) was created'
|
||||
4. Kill the [QryExampleApp](src/main/java/org/fuin/cqrs4j/example/javasecdi/qry/app/QryExampleApp.java)
|
||||
5. Stop the event store
|
||||
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>pom</artifactId>
|
||||
<version>1.6.0</version>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.javasecdi</groupId>
|
||||
<artifactId>cqrs4j-javasecdi-example</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<description>Minimal standalone example application that uses the 'ddd-4-java' and 'ddd-cqrs-4-java-example' libraries</description>
|
||||
|
||||
<scm>
|
||||
@@ -28,10 +28,7 @@
|
||||
</issueManagement>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
<esc.version>0.4.0</esc.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@@ -41,7 +38,7 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.deltaspike.distribution</groupId>
|
||||
<artifactId>distributions-bom</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<version>1.9.4</version>
|
||||
<scope>import</scope>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
@@ -63,116 +60,98 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpasyncclient</artifactId>
|
||||
<version>4.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ext4logback</artifactId>
|
||||
<version>0.2.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
<version>2.0.1.Final</version>
|
||||
<optional>true</optional>
|
||||
<groupId>jakarta.validation</groupId>
|
||||
<artifactId>jakarta.validation-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.7</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>1.1.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.enterprise</groupId>
|
||||
<artifactId>cdi-api</artifactId>
|
||||
<version>2.0</version>
|
||||
<groupId>jakarta.enterprise</groupId>
|
||||
<artifactId>jakarta.enterprise.cdi-api</artifactId>
|
||||
<version>2.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jboss.weld.se</groupId>
|
||||
<artifactId>weld-se-core</artifactId>
|
||||
<version>3.0.4.Final</version>
|
||||
<version>3.1.5.SP1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse.microprofile.config</groupId>
|
||||
<artifactId>microprofile-config-api</artifactId>
|
||||
<version>1.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.smallrye</groupId>
|
||||
<artifactId>smallrye-config</artifactId>
|
||||
<version>1.3.5</version>
|
||||
<groupId>io.smallrye.config</groupId>
|
||||
<artifactId>smallrye-config</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.json</groupId>
|
||||
<artifactId>javax.json-api</artifactId>
|
||||
<version>1.1.4</version>
|
||||
<groupId>jakarta.json</groupId>
|
||||
<artifactId>jakarta.json-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>javax.json</artifactId>
|
||||
<version>1.1.4</version>
|
||||
<artifactId>jakarta.json</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>yasson</artifactId>
|
||||
<version>1.0.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -188,41 +167,26 @@
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>6.1.0.Final</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-impl</artifactId>
|
||||
<groupId>com.sun.xml.bind</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hibernate.javax.persistence</groupId>
|
||||
<artifactId>hibernate-jpa-2.1-api</artifactId>
|
||||
<version>1.0.2</version>
|
||||
<groupId>jakarta.persistence</groupId>
|
||||
<artifactId>jakarta.persistence-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-entitymanager</artifactId>
|
||||
<version>5.4.2.Final</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hsqldb</groupId>
|
||||
<artifactId>hsqldb</artifactId>
|
||||
<version>2.4.1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Test -->
|
||||
@@ -230,7 +194,6 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-mem</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -243,32 +206,144 @@
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<version>3.10.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<version>0.8.4</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<version>2.4.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<build>
|
||||
|
||||
<plugins>
|
||||
<pluginManagement>
|
||||
|
||||
</plugins>
|
||||
<plugins>
|
||||
|
||||
</build>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
<version>3.1.2</version>
|
||||
<configuration>
|
||||
<multiRelease>base</multiRelease>
|
||||
<failOnWarning>true</failOnWarning>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>jdkinternals</goal>
|
||||
<goal>test-jdkinternals</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<release>${java.version}</release>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>3.2.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-release-plugin</artifactId>
|
||||
<version>3.0.0-M1</version>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</pluginManagement>
|
||||
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>3.0.0-M3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce-java-and-maven-version</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireJavaVersion>
|
||||
<version>${java.version}</version>
|
||||
<message>Java 11 or later is required!</message>
|
||||
</requireJavaVersion>
|
||||
<requireMavenVersion>
|
||||
<version>3.6.0</version>
|
||||
<message>Please use at least Maven 3.6.0 as older versions may cause problems with Java 11+</message>
|
||||
</requireMavenVersion>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
|
||||
</project>
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.fuin.cqrs4j.example.javasecdi.cmd.domain;
|
||||
|
||||
import javax.annotation.concurrent.NotThreadSafe;
|
||||
import org.fuin.objects4j.common.NotThreadSafe;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import org.fuin.cqrs4j.example.shared.PersonId;
|
||||
|
||||
@@ -40,8 +40,10 @@ public class QryProjectionAdminEventStoreFactory {
|
||||
config.getEventStorePassword());
|
||||
credentialsProvider.setCredentials(AuthScope.ANY, credentials);
|
||||
final SimpleSerializerDeserializerRegistry registry = new SimpleSerializerDeserializerRegistry();
|
||||
final ProjectionAdminEventStore es = new ESHttpEventStore(threadFactory, new URL(url), ESEnvelopeType.JSON, registry, registry,
|
||||
credentialsProvider);
|
||||
|
||||
final ProjectionAdminEventStore es = new ESHttpEventStore.Builder().threadFactory(threadFactory).url(new URL(url))
|
||||
.envelopeType(ESEnvelopeType.JSON).serDesRegistry(registry).credentialsProvider(credentialsProvider).build();
|
||||
|
||||
es.open();
|
||||
return es;
|
||||
} catch (final MalformedURLException ex) {
|
||||
|
||||
@@ -21,20 +21,22 @@ public class SharedEventStoreFactory {
|
||||
/**
|
||||
* Creates an event store.<br>
|
||||
* <br>
|
||||
* CAUTION: The returned event store instance is NOT thread safe.
|
||||
* CAUTION: The returned event store instance is NOT thread safe.
|
||||
*
|
||||
* @param es Native event store API.
|
||||
* @param registry Serialization registry.
|
||||
* @param es
|
||||
* Native event store API.
|
||||
* @param registry
|
||||
* Serialization registry.
|
||||
*
|
||||
* @return Dependent scope event store.
|
||||
*/
|
||||
*/
|
||||
@Produces
|
||||
@RequestScoped
|
||||
public EventStore createEventStore(final com.github.msemys.esjc.EventStore es,
|
||||
final SerDeserializerRegistry registry) {
|
||||
public EventStore createEventStore(final com.github.msemys.esjc.EventStore es, final SerDeserializerRegistry registry) {
|
||||
|
||||
final EventStore eventstore = new ESJCEventStore.Builder().eventStore(es).serDesRegistry(registry)
|
||||
.targetContentType(EnhancedMimeType.create("application", "json", Charset.forName("utf-8"))).build();
|
||||
|
||||
final EventStore eventstore = new ESJCEventStore(es, registry, registry,
|
||||
EnhancedMimeType.create("application", "json", Charset.forName("utf-8")));
|
||||
eventstore.open();
|
||||
return eventstore;
|
||||
|
||||
@@ -43,7 +45,8 @@ public class SharedEventStoreFactory {
|
||||
/**
|
||||
* Closes the event store when the context is disposed.
|
||||
*
|
||||
* @param es Event store to close.
|
||||
* @param es
|
||||
* Event store to close.
|
||||
*/
|
||||
public void closeEventStore(@Disposes final EventStore es) {
|
||||
es.close();
|
||||
|
||||
379
pom.xml
379
pom.xml
@@ -1,20 +1,371 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
<maven.compiler.release>${java.version}</maven.compiler.release>
|
||||
<maven.compiler.parameters>true</maven.compiler.parameters>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<esc.version>0.4.0</esc.version>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>shared</module>
|
||||
<module>aggregates</module>
|
||||
<module>java-se-cdi</module>
|
||||
<module>quarkus</module>
|
||||
<module>spring-boot</module>
|
||||
</modules>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
<version>0.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>objects4j</artifactId>
|
||||
<version>0.7.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-api</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-mem</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpasyncclient</artifactId>
|
||||
<version>4.1.4</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.13</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ext4logback</artifactId>
|
||||
<version>0.2.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>1.2.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.11</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.validation</groupId>
|
||||
<artifactId>jakarta.validation-api</artifactId>
|
||||
<version>2.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.json.bind</groupId>
|
||||
<artifactId>jakarta.json.bind-api</artifactId>
|
||||
<version>1.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.persistence</groupId>
|
||||
<artifactId>jakarta.persistence-api</artifactId>
|
||||
<version>2.2.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse.microprofile.config</groupId>
|
||||
<artifactId>microprofile-config-api</artifactId>
|
||||
<version>1.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.smallrye.config</groupId>
|
||||
<artifactId>smallrye-config</artifactId>
|
||||
<version>1.10.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.json</groupId>
|
||||
<artifactId>jakarta.json-api</artifactId>
|
||||
<version>1.1.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-entitymanager</artifactId>
|
||||
<version>5.4.26.Final</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hsqldb</groupId>
|
||||
<artifactId>hsqldb</artifactId>
|
||||
<version>2.5.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<version>3.18.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<version>0.9.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<version>3.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.8.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>6.1.7.Final</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>jakarta.json</artifactId>
|
||||
<version>1.1.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>yasson</artifactId>
|
||||
<version>1.0.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.mail</groupId>
|
||||
<artifactId>jakarta.mail-api</artifactId>
|
||||
<version>1.6.4</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.sun.mail</groupId>
|
||||
<artifactId>jakarta.mail</artifactId>
|
||||
<version>1.6.4</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
|
||||
<pluginManagement>
|
||||
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
<version>3.1.2</version>
|
||||
<configuration>
|
||||
<multiRelease>base</multiRelease>
|
||||
<failOnWarning>true</failOnWarning>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>jdkinternals</goal>
|
||||
<goal>test-jdkinternals</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<release>${java.version}</release>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>3.2.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-release-plugin</artifactId>
|
||||
<version>3.0.0-M1</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.2</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.22.2</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.34.1</version>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</pluginManagement>
|
||||
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>3.0.0-M3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce-java-and-maven-version</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireJavaVersion>
|
||||
<version>${java.version}</version>
|
||||
<message>Java 11 or later is required!</message>
|
||||
</requireJavaVersion>
|
||||
<requireMavenVersion>
|
||||
<version>3.6.0</version>
|
||||
<message>Please use at least Maven 3.6.0 as older versions may cause problems with Java 11+</message>
|
||||
</requireMavenVersion>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
|
||||
<modules>
|
||||
<module>shared</module>
|
||||
<module>aggregates</module>
|
||||
<module>java-se-cdi</module>
|
||||
<module>quarkus</module>
|
||||
<module>spring-boot</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -6,35 +6,14 @@
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<parent>
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<artifactId>cqrs4j-quarkus-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>cqrs4j-quarkus-example-command</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.parameters>true</maven.compiler.parameters>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
<quarkus.version>1.2.0.Final</quarkus.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-universe-bom</artifactId>
|
||||
<version>${quarkus.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -90,25 +69,16 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.mail</groupId>
|
||||
<artifactId>mail</artifactId>
|
||||
<version>1.4.7</version>
|
||||
<groupId>jakarta.mail</groupId>
|
||||
<artifactId>jakarta.mail-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- test -->
|
||||
@@ -134,7 +104,6 @@
|
||||
<plugin>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-maven-plugin</artifactId>
|
||||
<version>${quarkus.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
@@ -145,13 +114,13 @@
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.1</version>
|
||||
<configuration>
|
||||
<systemProperties>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
@@ -160,8 +129,8 @@
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.22.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
@@ -180,12 +149,11 @@
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.31.0</version>
|
||||
<configuration>
|
||||
|
||||
<images>
|
||||
<image>
|
||||
<name>eventstore/eventstore:release-4.1.3</name>
|
||||
<name>eventstore/eventstore:release-${eventstore.version}</name>
|
||||
<run>
|
||||
<network>
|
||||
<mode>bridge</mode>
|
||||
@@ -242,21 +210,4 @@
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<repositories>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -16,7 +16,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import org.fuin.objects4j.common.Nullable;
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.ConstraintViolationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
|
||||
@@ -4,11 +4,50 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<artifactId>cqrs4j-quarkus-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<quarkus.version>1.10.5.Final</quarkus.version>
|
||||
<eventstore.version>5.0.9</eventstore.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-universe-bom</artifactId>
|
||||
<version>${quarkus.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.enterprise</groupId>
|
||||
<artifactId>jakarta.enterprise.cdi-api</artifactId>
|
||||
<version>2.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jboss.weld.se</groupId>
|
||||
<artifactId>weld-se-core</artifactId>
|
||||
<version>3.1.5.SP1</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</dependencyManagement>
|
||||
|
||||
<modules>
|
||||
<module>shared</module>
|
||||
<module>query</module>
|
||||
|
||||
@@ -16,6 +16,36 @@ Make sure you installed everything as described [here](../../../../).
|
||||
## Overview
|
||||

|
||||
|
||||
## Running test in IDE
|
||||
In case you want to run the integration test inside your IDE (Eclipse or other), you need to start the Eventstore and MariaDB before.
|
||||
|
||||
1. Start the Eventstore Docker container:
|
||||
|
||||
```
|
||||
docker run -d --name eventstore-node \
|
||||
-p 2113:2113 \
|
||||
-p 1113:1113 \
|
||||
--rm \
|
||||
eventstore/eventstore:release-5.0.9
|
||||
```
|
||||
|
||||
2. Start the MariaDB Docker container:
|
||||
|
||||
```
|
||||
docker run -d --name mariadb \
|
||||
-p 3306:3306 \
|
||||
-e MYSQL_INITDB_SKIP_TZINFO=1 \
|
||||
-e MYSQL_ROOT_PASSWORD=xyz \
|
||||
-e MYSQL_DATABASE=querydb \
|
||||
-e MYSQL_USER=mary \
|
||||
-e MYSQL_PASSWORD=abc \
|
||||
--rm \
|
||||
mariadb:10.4
|
||||
```
|
||||
|
||||
3. Run the test: [QryPersonResourceIT.java](src/test/java/org/fuin/cqrs4j/example/quarkus/query/api/QryPersonResourceIT.java)
|
||||
|
||||
4. Run `docker ps` to see the CONTAINER IDs and stop the Eventstore and MariaDB with `docker stop <CONTAINER_ID>`
|
||||
|
||||
# TODO ... (Does currently not work)
|
||||
|
||||
|
||||
@@ -1,287 +1,235 @@
|
||||
<?xml version="1.0"?>
|
||||
<project
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<artifactId>cqrs4j-quarkus-example-query</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<parent>
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<artifactId>cqrs4j-quarkus-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.parameters>true</maven.compiler.parameters>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
<quarkus.version>1.2.0.Final</quarkus.version>
|
||||
</properties>
|
||||
<artifactId>cqrs4j-quarkus-example-query</artifactId>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
||||
<dependencies>
|
||||
<!-- compile -->
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-universe-bom</artifactId>
|
||||
<version>${quarkus.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-resteasy</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-resteasy-jsonb</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencyManagement>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-resteasy-jackson</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-scheduler</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- compile -->
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-hibernate-orm</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-resteasy</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-jdbc-mariadb</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-resteasy-jsonb</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.security.jacc</groupId>
|
||||
<artifactId>jakarta.security.jacc-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-resteasy-jackson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-aggregates</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-scheduler</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<artifactId>cqrs4j-quarkus-example-shared</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-hibernate-orm</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-jdbc-postgresql</artifactId>
|
||||
</dependency>
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-jdbc-mariadb</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.security.jacc</groupId>
|
||||
<artifactId>jakarta.security.jacc-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-aggregates</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<!-- test -->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<artifactId>cqrs4j-quarkus-example-shared</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-junit5</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.rest-assured</groupId>
|
||||
<artifactId>rest-assured</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- test -->
|
||||
<dependency>
|
||||
<groupId>org.awaitility</groupId>
|
||||
<artifactId>awaitility</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-junit5</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.rest-assured</groupId>
|
||||
<artifactId>rest-assured</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<build>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.awaitility</groupId>
|
||||
<artifactId>awaitility</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<plugins>
|
||||
|
||||
</dependencies>
|
||||
<plugin>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-maven-plugin</artifactId>
|
||||
<version>${quarkus.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<build>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<systemProperties>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-maven-plugin</artifactId>
|
||||
<version>${quarkus.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<systemProperties>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.1</version>
|
||||
<configuration>
|
||||
<systemProperties>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<images>
|
||||
<image>
|
||||
<name>eventstore/eventstore:release-${eventstore.version}</name>
|
||||
<run>
|
||||
<network>
|
||||
<mode>bridge</mode>
|
||||
</network>
|
||||
<ports>
|
||||
<port>1113:1113</port>
|
||||
<port>2113:2113</port>
|
||||
</ports>
|
||||
<log>
|
||||
<enabled>false</enabled>
|
||||
</log>
|
||||
<wait>
|
||||
<http>
|
||||
<url>http://localhost:2113/web/index.html#/</url>
|
||||
<method>GET</method>
|
||||
</http>
|
||||
<time>20000</time>
|
||||
</wait>
|
||||
</run>
|
||||
</image>
|
||||
|
||||
<plugin>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.22.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<systemProperties>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<image>
|
||||
<name>mariadb:10.4</name>
|
||||
<run>
|
||||
<network>
|
||||
<mode>bridge</mode>
|
||||
</network>
|
||||
<ports>
|
||||
<port>3306:3306</port>
|
||||
</ports>
|
||||
<log>
|
||||
<enabled>false</enabled>
|
||||
</log>
|
||||
<env>
|
||||
<MYSQL_INITDB_SKIP_TZINFO>1</MYSQL_INITDB_SKIP_TZINFO>
|
||||
<MYSQL_ROOT_PASSWORD>xyz</MYSQL_ROOT_PASSWORD>
|
||||
<MYSQL_DATABASE>querydb</MYSQL_DATABASE>
|
||||
<MYSQL_USER>mary</MYSQL_USER>
|
||||
<MYSQL_PASSWORD>abc</MYSQL_PASSWORD>
|
||||
</env>
|
||||
<wait>
|
||||
<time>10000</time>
|
||||
</wait>
|
||||
</run>
|
||||
</image>
|
||||
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.31.0</version>
|
||||
<configuration>
|
||||
</images>
|
||||
</configuration>
|
||||
|
||||
<images>
|
||||
<image>
|
||||
<name>eventstore/eventstore:release-4.1.3</name>
|
||||
<run>
|
||||
<network>
|
||||
<mode>bridge</mode>
|
||||
</network>
|
||||
<ports>
|
||||
<port>1113:1113</port>
|
||||
<port>2113:2113</port>
|
||||
</ports>
|
||||
<log>
|
||||
<enabled>false</enabled>
|
||||
</log>
|
||||
<wait>
|
||||
<http>
|
||||
<url>http://localhost:2113/web/index.html#/</url>
|
||||
<method>GET</method>
|
||||
</http>
|
||||
<time>20000</time>
|
||||
</wait>
|
||||
</run>
|
||||
</image>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>start-images</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>start</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>stop-images</id>
|
||||
<phase>post-integration-test</phase>
|
||||
<goals>
|
||||
<goal>stop</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
|
||||
<image>
|
||||
<name>mariadb:10.4</name>
|
||||
<run>
|
||||
<network>
|
||||
<mode>bridge</mode>
|
||||
</network>
|
||||
<ports>
|
||||
<port>3306:3306</port>
|
||||
</ports>
|
||||
<log>
|
||||
<enabled>false</enabled>
|
||||
</log>
|
||||
<env>
|
||||
<MYSQL_INITDB_SKIP_TZINFO>1</MYSQL_INITDB_SKIP_TZINFO>
|
||||
<MYSQL_ROOT_PASSWORD>xyz</MYSQL_ROOT_PASSWORD>
|
||||
<MYSQL_DATABASE>querydb</MYSQL_DATABASE>
|
||||
<MYSQL_USER>mary</MYSQL_USER>
|
||||
<MYSQL_PASSWORD>abc</MYSQL_PASSWORD>
|
||||
</env>
|
||||
<wait>
|
||||
<time>10000</time>
|
||||
</wait>
|
||||
</run>
|
||||
</image>
|
||||
</plugin>
|
||||
|
||||
</images>
|
||||
</configuration>
|
||||
</plugins>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
<id>start-images</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>start</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>stop-images</id>
|
||||
<phase>post-integration-test</phase>
|
||||
<goals>
|
||||
<goal>stop</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</build>
|
||||
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>native</id>
|
||||
<properties>
|
||||
<quarkus.package.type>native</quarkus.package.type>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<repositories>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>native</id>
|
||||
<properties>
|
||||
<quarkus.package.type>native</quarkus.package.type>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
# Configuration file
|
||||
|
||||
#quarkus.datasource.url=jdbc:postgresql://localhost:5432/querydb
|
||||
#quarkus.datasource.driver=org.postgresql.Driver
|
||||
#quarkus.datasource.username=postgres
|
||||
#quarkus.datasource.password=abc
|
||||
|
||||
quarkus.datasource.url=jdbc:mariadb://localhost:3306/querydb
|
||||
quarkus.datasource.driver=org.mariadb.jdbc.Driver
|
||||
quarkus.datasource.db-kind=mariadb
|
||||
quarkus.datasource.username=mary
|
||||
quarkus.datasource.password=abc
|
||||
quarkus.datasource.jdbc.url=jdbc:mariadb://localhost:3306/querydb
|
||||
|
||||
quarkus.hibernate-orm.database.generation=drop-and-create
|
||||
|
||||
|
||||
@@ -4,37 +4,17 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<parent>
|
||||
<groupId>org.fuin.cqrs4j.example.quarkus</groupId>
|
||||
<artifactId>cqrs4j-quarkus-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>cqrs4j-quarkus-example-shared</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<name>cqrs4j-quarkus-example-shared</name>
|
||||
<description>Quarkus CQRS Shared Code for Demo Application</description>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<java.version>1.8</java.version>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
<quarkus.version>1.2.0.Final</quarkus.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-universe-bom</artifactId>
|
||||
<version>${quarkus.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- Compile -->
|
||||
@@ -48,31 +28,26 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>objects4j</artifactId>
|
||||
<version>0.6.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -98,22 +73,11 @@
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-impl</artifactId>
|
||||
<groupId>com.sun.xml.bind</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>javax.json</artifactId>
|
||||
<version>1.1.4</version>
|
||||
<artifactId>jakarta.json</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -143,14 +107,12 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<version>0.8.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<version>2.4.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -162,21 +124,82 @@
|
||||
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<build>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<plugins>
|
||||
|
||||
</repositories>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
<archive>
|
||||
<manifestEntries>
|
||||
<Automatic-Module-Name>org.fuin.cqrs4j.example.shared</Automatic-Module-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
|
||||
<plugins>
|
||||
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
<versionRange>[3.1.2,)</versionRange>
|
||||
<goals>
|
||||
<goal>jdkinternals</goal>
|
||||
<goal>test-jdkinternals</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</pluginManagement>
|
||||
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -43,20 +43,22 @@ public class EventStoreFactory {
|
||||
/**
|
||||
* Creates an ESJC event store.<br>
|
||||
* <br>
|
||||
* CAUTION: The returned event store instance is NOT thread safe.
|
||||
* CAUTION: The returned event store instance is NOT thread safe.
|
||||
*
|
||||
* @param es Native event store API.
|
||||
* @param registry Serialization registry.
|
||||
* @param es
|
||||
* Native event store API.
|
||||
* @param registry
|
||||
* Serialization registry.
|
||||
*
|
||||
* @return Dependent scope event store.
|
||||
*/
|
||||
*/
|
||||
@Produces
|
||||
@RequestScoped
|
||||
public IESJCEventStore createEventStore(final com.github.msemys.esjc.EventStore es,
|
||||
final SerDeserializerRegistry registry) {
|
||||
public IESJCEventStore createEventStore(final com.github.msemys.esjc.EventStore es, final SerDeserializerRegistry registry) {
|
||||
|
||||
final IESJCEventStore eventstore = new ESJCEventStore.Builder().eventStore(es).serDesRegistry(registry)
|
||||
.targetContentType(EnhancedMimeType.create("application", "json", Charset.forName("utf-8"))).build();
|
||||
|
||||
final IESJCEventStore eventstore = new ESJCEventStore(es, registry, registry,
|
||||
EnhancedMimeType.create("application", "json", Charset.forName("utf-8")));
|
||||
eventstore.open();
|
||||
return eventstore;
|
||||
|
||||
@@ -65,7 +67,8 @@ public class EventStoreFactory {
|
||||
/**
|
||||
* Closes the ESJC event store when the context is disposed.
|
||||
*
|
||||
* @param es Event store to close.
|
||||
* @param es
|
||||
* Event store to close.
|
||||
*/
|
||||
public void closeEventStore(@Disposes final IESJCEventStore es) {
|
||||
es.close();
|
||||
@@ -92,8 +95,10 @@ public class EventStoreFactory {
|
||||
config.getEventStorePassword());
|
||||
credentialsProvider.setCredentials(AuthScope.ANY, credentials);
|
||||
final ThreadFactory threadFactory = Executors.defaultThreadFactory();
|
||||
final IESHttpEventStore eventStore = new ESHttpEventStore(threadFactory, config.getEventStoreURL(), ESEnvelopeType.JSON, registry,
|
||||
registry, credentialsProvider);
|
||||
|
||||
final IESHttpEventStore eventStore = new ESHttpEventStore.Builder().threadFactory(threadFactory).url(config.getEventStoreURL())
|
||||
.envelopeType(ESEnvelopeType.JSON).serDesRegistry(registry).credentialsProvider(credentialsProvider).build();
|
||||
|
||||
eventStore.open();
|
||||
return eventStore;
|
||||
|
||||
@@ -108,5 +113,5 @@ public class EventStoreFactory {
|
||||
public void closeEventStore(@Disposes final IESHttpEventStore es) {
|
||||
es.close();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
301
shared/pom.xml
301
shared/pom.xml
@@ -1,166 +1,197 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-shared</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<name>cqrs4j-example-shared</name>
|
||||
<description>Shared code for all demo applications and client & server</description>
|
||||
<parent>
|
||||
<groupId>org.fuin.cqrs4j.example</groupId>
|
||||
<artifactId>cqrs4j-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<java.version>1.8</java.version>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
</properties>
|
||||
<artifactId>cqrs4j-example-shared</artifactId>
|
||||
<name>cqrs4j-example-shared</name>
|
||||
<description>Shared code for all demo applications and client & server</description>
|
||||
|
||||
<dependencies>
|
||||
<dependencies>
|
||||
|
||||
<!-- Compile -->
|
||||
<!-- Compile -->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>objects4j</artifactId>
|
||||
<version>0.6.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>objects4j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-api</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
<version>2.0.1.Final</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.validation</groupId>
|
||||
<artifactId>jakarta.validation-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.json.bind</groupId>
|
||||
<artifactId>javax.json.bind-api</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.json.bind</groupId>
|
||||
<artifactId>jakarta.json.bind-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>jakarta.persistence</groupId>
|
||||
<artifactId>jakarta.persistence-api</artifactId>
|
||||
<version>2.2.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.persistence</groupId>
|
||||
<artifactId>jakarta.persistence-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Test -->
|
||||
<!-- Test -->
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<version>3.10.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<version>0.8.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<version>2.4.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>6.1.0.Final</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-impl</artifactId>
|
||||
<groupId>com.sun.xml.bind</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>javax.json</artifactId>
|
||||
<version>1.1.4</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<artifactId>jakarta.json</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>yasson</artifactId>
|
||||
<version>1.0.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>yasson</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<build>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<plugins>
|
||||
|
||||
</repositories>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
<archive>
|
||||
<manifestEntries>
|
||||
<Automatic-Module-Name>org.fuin.cqrs4j.example.shared</Automatic-Module-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
|
||||
<plugins>
|
||||
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jdeps-plugin</artifactId>
|
||||
<versionRange>[3.1.2,)</versionRange>
|
||||
<goals>
|
||||
<goal>jdkinternals</goal>
|
||||
<goal>test-jdkinternals</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</pluginManagement>
|
||||
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
*/
|
||||
package org.fuin.cqrs4j.example.shared;
|
||||
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
import javax.json.bind.annotation.JsonbProperty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@@ -26,6 +25,7 @@ import org.fuin.ddd4j.ddd.DomainEventExpectedEntityIdPath;
|
||||
import org.fuin.ddd4j.ddd.EventType;
|
||||
import org.fuin.esc.spi.SerializedDataType;
|
||||
import org.fuin.objects4j.common.Contract;
|
||||
import org.fuin.objects4j.common.Immutable;
|
||||
|
||||
/**
|
||||
* A new person should be created in the system.
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
package org.fuin.cqrs4j.example.shared;
|
||||
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
import org.fuin.objects4j.common.Immutable;
|
||||
import javax.json.bind.annotation.JsonbProperty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ package org.fuin.cqrs4j.example.shared;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
import org.fuin.objects4j.common.Immutable;
|
||||
import javax.json.bind.adapter.JsonbAdapter;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
import org.fuin.objects4j.common.Immutable;
|
||||
import javax.json.bind.adapter.JsonbAdapter;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.ConstraintValidator;
|
||||
|
||||
@@ -92,7 +92,7 @@ public final class CreatePersonCommandTest {
|
||||
|
||||
// VERIFY
|
||||
assertThat(copy.getEventId().asBaseType()).isEqualTo(UUID.fromString("109a77b2-1de2-46fc-aee1-97fa7740a552"));
|
||||
assertThat(copy.getTimestamp()).isEqualTo(ZonedDateTime.parse("2019-11-17T10:27:13.183+01:00[Europe/Berlin]"));
|
||||
assertThat(copy.getEventTimestamp()).isEqualTo(ZonedDateTime.parse("2019-11-17T10:27:13.183+01:00[Europe/Berlin]"));
|
||||
assertThat(copy.getAggregateRootId().asString()).isEqualTo(PERSON_UUID);
|
||||
assertThat(copy.getName().asString()).isEqualTo("Peter Parker");
|
||||
|
||||
|
||||
@@ -2,28 +2,20 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.0.RELEASE</version>
|
||||
<relativePath /> <!-- lookup parent from repository -->
|
||||
<groupId>org.fuin.cqrs4j.example.spring</groupId>
|
||||
<artifactId>cqrs4j-spring-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.spring</groupId>
|
||||
<artifactId>cqrs4j-spring-example-command</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<name>cqrs4j-spring-example-command</name>
|
||||
<description>Spring Boot CQRS Command Demo Application</description>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<java.version>1.8</java.version>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- compile -->
|
||||
@@ -59,19 +51,16 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- runtime -->
|
||||
@@ -157,12 +146,11 @@
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.31.0</version>
|
||||
<configuration>
|
||||
|
||||
<images>
|
||||
<image>
|
||||
<name>eventstore/eventstore:release-4.1.3</name>
|
||||
<name>eventstore/eventstore:release-${eventstore.version}</name>
|
||||
<run>
|
||||
<network>
|
||||
<mode>bridge</mode>
|
||||
|
||||
@@ -3,11 +3,161 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.12.RELEASE</version>
|
||||
<relativePath /> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.spring</groupId>
|
||||
<artifactId>cqrs4j-spring-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
<maven.compiler.release>${java.version}</maven.compiler.release>
|
||||
<maven.compiler.parameters>true</maven.compiler.parameters>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<esc.version>0.4.0</esc.version>
|
||||
<eventstore.version>5.0.9</eventstore.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
<version>0.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>objects4j</artifactId>
|
||||
<version>0.7.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-api</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-mem</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>jakarta.json</artifactId>
|
||||
<version>1.1.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>yasson</artifactId>
|
||||
<version>1.0.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<version>3.18.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<version>0.9.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<version>3.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.8.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
|
||||
<pluginManagement>
|
||||
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.34.1</version>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
</pluginManagement>
|
||||
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
|
||||
<modules>
|
||||
<module>shared</module>
|
||||
<module>query</module>
|
||||
|
||||
@@ -16,6 +16,37 @@ Make sure you installed everything as described [here](../../../../).
|
||||
## Overview
|
||||

|
||||
|
||||
## Running test in IDE
|
||||
In case you want to run the integration test inside your IDE (Eclipse or other), you need to start the Eventstore and MariaDB before.
|
||||
|
||||
1. Start the Eventstore Docker container:
|
||||
|
||||
```
|
||||
docker run -d --name eventstore-node \
|
||||
-p 2113:2113 \
|
||||
-p 1113:1113 \
|
||||
--rm \
|
||||
eventstore/eventstore:release-5.0.9
|
||||
```
|
||||
|
||||
2. Start the MariaDB Docker container:
|
||||
|
||||
```
|
||||
docker run -d --name mariadb \
|
||||
-p 3306:3306 \
|
||||
-e MYSQL_INITDB_SKIP_TZINFO=1 \
|
||||
-e MYSQL_ROOT_PASSWORD=xyz \
|
||||
-e MYSQL_DATABASE=querydb \
|
||||
-e MYSQL_USER=mary \
|
||||
-e MYSQL_PASSWORD=abc \
|
||||
--rm \
|
||||
mariadb:10.4
|
||||
```
|
||||
|
||||
3. Run the test: [PersonControllerIT.java](src/test/java/org/fuin/cqrs4j/example/spring/query/api/PersonControllerIT.java)
|
||||
|
||||
4. Run `docker ps` to see the CONTAINER IDs and stop the Eventstore and MariaDB with `docker stop <CONTAINER_ID>`
|
||||
|
||||
# TODO ...
|
||||
|
||||
**Issues**
|
||||
|
||||
@@ -2,28 +2,20 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.0.RELEASE</version>
|
||||
<relativePath /> <!-- lookup parent from repository -->
|
||||
<groupId>org.fuin.cqrs4j.example.spring</groupId>
|
||||
<artifactId>cqrs4j-spring-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.spring</groupId>
|
||||
<artifactId>cqrs4j-spring-example-query</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<name>cqrs4j-spring-example-query</name>
|
||||
<description>Spring Boot CQRS Query Demo Application</description>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<java.version>1.8</java.version>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- compile -->
|
||||
@@ -63,25 +55,21 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- runtime -->
|
||||
@@ -167,12 +155,11 @@
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.31.0</version>
|
||||
<configuration>
|
||||
|
||||
<images>
|
||||
<image>
|
||||
<name>eventstore/eventstore:release-4.1.3</name>
|
||||
<name>eventstore/eventstore:release-${eventstore.version}</name>
|
||||
<run>
|
||||
<network>
|
||||
<mode>bridge</mode>
|
||||
@@ -245,21 +232,4 @@
|
||||
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
|
||||
<repository>
|
||||
<id>sonatype.oss.snapshots</id>
|
||||
<name>Sonatype OSS Snapshot Repository</name>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
|
||||
</repositories>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -2,7 +2,7 @@ package org.fuin.cqrs4j.example.spring.query.views.personlist;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.concurrent.NotThreadSafe;
|
||||
import org.fuin.objects4j.common.NotThreadSafe;
|
||||
|
||||
import org.fuin.cqrs4j.ProjectionService;
|
||||
import org.fuin.cqrs4j.example.shared.SharedUtils;
|
||||
|
||||
@@ -3,7 +3,7 @@ package org.fuin.cqrs4j.example.spring.query.views.personlist;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.concurrent.NotThreadSafe;
|
||||
import org.fuin.objects4j.common.NotThreadSafe;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import org.fuin.cqrs4j.EventDispatcher;
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.concurrent.Semaphore;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import javax.annotation.PreDestroy;
|
||||
import javax.annotation.concurrent.ThreadSafe;
|
||||
import org.fuin.objects4j.common.ThreadSafe;
|
||||
|
||||
import org.fuin.ddd4j.ddd.EventType;
|
||||
import org.fuin.esc.api.TypeName;
|
||||
|
||||
@@ -91,6 +91,8 @@ public class PersonControllerIT {
|
||||
|
||||
// TEST & VERIFY
|
||||
|
||||
// given().pathParam("id", personId.asString()).when().get("/persons/{id}").then().log().all(true);
|
||||
|
||||
final PersonListEntry person = given().pathParam("id", personId.asString()).when().get("/persons/{id}").then()
|
||||
.statusCode(200).extract().as(PersonListEntry.class);
|
||||
assertThat(person.getId(), is(equalTo(personId)));
|
||||
|
||||
@@ -5,26 +5,16 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.0.RELEASE</version>
|
||||
<relativePath /> <!-- lookup parent from repository -->
|
||||
<groupId>org.fuin.cqrs4j.example.spring</groupId>
|
||||
<artifactId>cqrs4j-spring-example-root</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<groupId>org.fuin.cqrs4j.example.spring</groupId>
|
||||
<artifactId>cqrs4j-spring-example-shared</artifactId>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
<name>cqrs4j-spring-example-shared</name>
|
||||
<description>Spring Boot CQRS Shared Code for Demo Application</description>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<java.version>1.8</java.version>
|
||||
<esc.version>0.3.1</esc.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- Compile -->
|
||||
@@ -48,37 +38,31 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>ddd-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>cqrs-4-java</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>objects4j</artifactId>
|
||||
<version>0.6.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-spi</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-esjc</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.fuin.esc</groupId>
|
||||
<artifactId>esc-eshttp</artifactId>
|
||||
<version>${esc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -93,14 +77,12 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>javax.json</artifactId>
|
||||
<version>1.1.4</version>
|
||||
<artifactId>jakarta.json</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.eclipse</groupId>
|
||||
<artifactId>yasson</artifactId>
|
||||
<version>1.0.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -125,21 +107,18 @@
|
||||
<dependency>
|
||||
<groupId>org.fuin</groupId>
|
||||
<artifactId>units4j</artifactId>
|
||||
<version>0.8.4</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>nl.jqno.equalsverifier</groupId>
|
||||
<artifactId>equalsverifier</artifactId>
|
||||
<version>2.4.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -30,77 +30,81 @@ import com.github.msemys.esjc.EventStoreBuilder;
|
||||
@Component
|
||||
public class BeanFactory {
|
||||
|
||||
/**
|
||||
* Creates a Jsonb instance.
|
||||
*
|
||||
* @return Fully configured instance.
|
||||
*/
|
||||
@Bean
|
||||
public Jsonb createJsonb() {
|
||||
final JsonbConfig config = new JsonbConfig().withAdapters(SharedUtils.JSONB_ADAPTERS)
|
||||
.withPropertyVisibilityStrategy(new FieldAccessStrategy());
|
||||
final Jsonb jsonb = JsonbBuilder.create(config);
|
||||
return jsonb;
|
||||
}
|
||||
/**
|
||||
* Creates a Jsonb instance.
|
||||
*
|
||||
* @return Fully configured instance.
|
||||
*/
|
||||
@Bean
|
||||
public Jsonb createJsonb() {
|
||||
final JsonbConfig config = new JsonbConfig().withAdapters(SharedUtils.JSONB_ADAPTERS)
|
||||
.withPropertyVisibilityStrategy(new FieldAccessStrategy());
|
||||
final Jsonb jsonb = JsonbBuilder.create(config);
|
||||
return jsonb;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a TCP based event store connection.
|
||||
*
|
||||
* @param config Configuration to use.
|
||||
*
|
||||
* @return New event store instance.
|
||||
*/
|
||||
@Bean(destroyMethod = "shutdown")
|
||||
public com.github.msemys.esjc.EventStore getEventStore(final Config config) {
|
||||
return EventStoreBuilder.newBuilder()
|
||||
.singleNodeAddress(config.getEventStoreHost(), config.getEventStoreTcpPort())
|
||||
.executor(Executors.newFixedThreadPool(10))
|
||||
.userCredentials(config.getEventStoreUser(), config.getEventStorePassword()).build();
|
||||
}
|
||||
/**
|
||||
* Creates a TCP based event store connection.
|
||||
*
|
||||
* @param config
|
||||
* Configuration to use.
|
||||
*
|
||||
* @return New event store instance.
|
||||
*/
|
||||
@Bean(destroyMethod = "shutdown")
|
||||
public com.github.msemys.esjc.EventStore getEventStore(final Config config) {
|
||||
return EventStoreBuilder.newBuilder().singleNodeAddress(config.getEventStoreHost(), config.getEventStoreTcpPort())
|
||||
.executor(Executors.newFixedThreadPool(10)).userCredentials(config.getEventStoreUser(), config.getEventStorePassword())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an event store connection.
|
||||
*
|
||||
* @param config Configuration to use.
|
||||
*
|
||||
* @return New event store instance.
|
||||
*/
|
||||
@Bean(destroyMethod = "close")
|
||||
public IESJCEventStore getESJCEventStore(final com.github.msemys.esjc.EventStore es) {
|
||||
/**
|
||||
* Creates an event store connection.
|
||||
*
|
||||
* @param config
|
||||
* Configuration to use.
|
||||
*
|
||||
* @return New event store instance.
|
||||
*/
|
||||
@Bean(destroyMethod = "close")
|
||||
public IESJCEventStore getESJCEventStore(final com.github.msemys.esjc.EventStore es) {
|
||||
|
||||
final SerDeserializerRegistry registry = SharedUtils.createRegistry();
|
||||
final IESJCEventStore eventstore = new ESJCEventStore(es, registry, registry,
|
||||
EnhancedMimeType.create("application", "json", Charset.forName("utf-8")));
|
||||
eventstore.open();
|
||||
return eventstore;
|
||||
final SerDeserializerRegistry registry = SharedUtils.createRegistry();
|
||||
|
||||
}
|
||||
final IESJCEventStore eventstore = new ESJCEventStore.Builder().eventStore(es).serDesRegistry(registry)
|
||||
.targetContentType(EnhancedMimeType.create("application", "json", Charset.forName("utf-8"))).build();
|
||||
|
||||
eventstore.open();
|
||||
return eventstore;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a HTTP based event store connection.
|
||||
*
|
||||
* @param config
|
||||
* Configuration to use.
|
||||
*
|
||||
* @return New event store instance.
|
||||
*/
|
||||
@Bean(destroyMethod = "close")
|
||||
public IESHttpEventStore getESHttpEventStore(final Config config) {
|
||||
final String url = config.getEventStoreProtocol() + "://" + config.getEventStoreHost() + ":" + config.getEventStoreHttpPort();
|
||||
try {
|
||||
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
|
||||
final UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(config.getEventStoreUser(),
|
||||
config.getEventStorePassword());
|
||||
credentialsProvider.setCredentials(AuthScope.ANY, credentials);
|
||||
final SerDeserializerRegistry registry = SharedUtils.createRegistry();
|
||||
|
||||
final ESHttpEventStore es = new ESHttpEventStore.Builder().threadFactory(Executors.defaultThreadFactory()).url(new URL(url))
|
||||
.envelopeType(ESEnvelopeType.JSON).serDesRegistry(registry).credentialsProvider(credentialsProvider).build();
|
||||
|
||||
es.open();
|
||||
return es;
|
||||
} catch (final MalformedURLException ex) {
|
||||
throw new RuntimeException("Failed to create URL: " + url, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a HTTP based event store connection.
|
||||
*
|
||||
* @param config Configuration to use.
|
||||
*
|
||||
* @return New event store instance.
|
||||
*/
|
||||
@Bean(destroyMethod = "close")
|
||||
public IESHttpEventStore getESHttpEventStore(final Config config) {
|
||||
final String url = config.getEventStoreProtocol() + "://" + config.getEventStoreHost() + ":"
|
||||
+ config.getEventStoreHttpPort();
|
||||
try {
|
||||
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
|
||||
final UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(config.getEventStoreUser(),
|
||||
config.getEventStorePassword());
|
||||
credentialsProvider.setCredentials(AuthScope.ANY, credentials);
|
||||
final SerDeserializerRegistry registry = SharedUtils.createRegistry();
|
||||
final ESHttpEventStore es = new ESHttpEventStore(Executors.defaultThreadFactory(), new URL(url),
|
||||
ESEnvelopeType.JSON, registry, registry, credentialsProvider);
|
||||
es.open();
|
||||
return es;
|
||||
} catch (final MalformedURLException ex) {
|
||||
throw new RuntimeException("Failed to create URL: " + url, ex);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import org.fuin.objects4j.common.Nullable;
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.ConstraintViolationException;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user