getAggregateClass() {
+ return Person.class;
+ }
+
+ @Override
+ @NotNull
+ public EntityType getAggregateType() {
+ return PersonId.TYPE;
+ }
+
+ @Override
+ @NotNull
+ public Person create() {
+ return new Person();
+ }
+
+ @Override
+ @NotNull
+ public String getIdParamName() {
+ return "personId";
+ }
+
+}
\ No newline at end of file
diff --git a/quarkus/command/src/main/java/org/fuin/cqrs4j/example/quarkus/command/domain/PersonRepositoryFactory.java b/quarkus/command/src/main/java/org/fuin/cqrs4j/example/quarkus/command/domain/PersonRepositoryFactory.java
new file mode 100644
index 0000000..4d7eb7f
--- /dev/null
+++ b/quarkus/command/src/main/java/org/fuin/cqrs4j/example/quarkus/command/domain/PersonRepositoryFactory.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (C) 2015 Michael Schnell. All rights reserved. http://www.fuin.org/
+ *
+ * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License along with this library. If not, see
+ * http://www.gnu.org/licenses/.
+ */
+package org.fuin.cqrs4j.example.quarkus.command.domain;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.Dependent;
+import javax.enterprise.inject.Produces;
+
+import org.fuin.esc.api.EventStore;
+
+/**
+ * CDI factory that creates an event store connection and repositories.
+ */
+@ApplicationScoped
+public class PersonRepositoryFactory {
+
+ /**
+ * Creates a repository.
+ *
+ * @param eventStore
+ * Event store implementation.
+ *
+ * @return Request scoped project repository.
+ */
+ @Produces
+ @Dependent
+ public PersonRepository create(final EventStore eventStore) {
+ return new PersonRepository(eventStore);
+ }
+
+}
diff --git a/quarkus/command/src/main/java/org/fuin/cqrs4j/example/quarkus/command/domain/package-info.java b/quarkus/command/src/main/java/org/fuin/cqrs4j/example/quarkus/command/domain/package-info.java
new file mode 100644
index 0000000..040b9c5
--- /dev/null
+++ b/quarkus/command/src/main/java/org/fuin/cqrs4j/example/quarkus/command/domain/package-info.java
@@ -0,0 +1,17 @@
+/**
+ * Copyright (C) 2015 Michael Schnell. All rights reserved. http://www.fuin.org/
+ *
+ * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License along with this library. If not, see
+ * http://www.gnu.org/licenses/.
+ */
+package org.fuin.cqrs4j.example.quarkus.command.domain;
+
+/**
+ * Domain specific code like aggregate root classes and their repositories.
+ */
diff --git a/quarkus/command/src/main/resources/META-INF/resources/index.html b/quarkus/command/src/main/resources/META-INF/resources/index.html
new file mode 100644
index 0000000..cdd702d
--- /dev/null
+++ b/quarkus/command/src/main/resources/META-INF/resources/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ CQRS Quarkus Example Command Module
+
+
+ CQRS Quarkus Example Command Module
+ This page is served by Quarkus. The source is in src/main/resources/META-INF/resources/index.html.
+
+
diff --git a/quarkus/command/src/main/resources/application.properties b/quarkus/command/src/main/resources/application.properties
new file mode 100644
index 0000000..5750fa9
--- /dev/null
+++ b/quarkus/command/src/main/resources/application.properties
@@ -0,0 +1,8 @@
+# Configuration file
+# key = value
+
+quarkus.native.additional-build-args=-H:ReflectionConfigurationFiles=reflection-config.json,--report-unsupported-elements-at-runtime
+
+quarkus.index-dependency.ddd4j.group-id=org.fuin
+quarkus.index-dependency.ddd4j.artifact-id=ddd-4-java
+
\ No newline at end of file
diff --git a/quarkus/command/src/main/resources/reflection-config.json b/quarkus/command/src/main/resources/reflection-config.json
new file mode 100644
index 0000000..0fa9976
--- /dev/null
+++ b/quarkus/command/src/main/resources/reflection-config.json
@@ -0,0 +1,11 @@
+[
+ {
+ "name" : "org.fuin.cqrs4j.SimpleResult",
+ "allDeclaredConstructors" : true,
+ "allPublicConstructors" : true,
+ "allDeclaredMethods" : true,
+ "allPublicMethods" : true,
+ "allDeclaredFields" : true,
+ "allPublicFields" : true
+ }
+]