diff --git a/bom/pom.xml b/bom/pom.xml
new file mode 100644
index 0000000..c3f1ac8
--- /dev/null
+++ b/bom/pom.xml
@@ -0,0 +1,179 @@
+
+
+ 4.0.0
+
+ fr.codeanddata.semrack
+ semrack-parent
+ 1.0-SNAPSHOT
+ ../pom.xml
+
+
+ pom
+ semrack-bom
+ Bom
+
+
+
+ 3.14.0
+ 21
+ UTF-8
+ UTF-8
+ quarkus-bom
+ io.quarkus.platform
+ ${quarkus.version}
+ true
+ 3.5.3
+
+
+ 1.16.0
+ 2.9.0
+ 1.18.38
+ 1.6.3
+ 3.31.3
+ ${project.version}
+
+
+
+
+
+ ${quarkus.platform.group-id}
+ ${quarkus.platform.artifact-id}
+ ${quarkus.platform.version}
+ pom
+ import
+
+
+ commons-codec
+ commons-codec
+ ${commons-codec.version}
+
+
+ org.mapstruct
+ mapstruct
+ ${org.mapstruct.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+ provided
+
+
+
+
+ fr.codeanddata.semrack
+ semrack-bom
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-core
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-core-testing
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-core-deployment
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-index-postgres
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-index-postgres-deployment
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-storage-postgres
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-storage-postgres-deployment
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-api-rest
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-api-rest-deployment
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-rest-client
+ ${semrack.version}
+
+
+ fr.codeanddata.semrack
+ semrack-rest-client-deployment
+ ${semrack.version}
+
+
+ com.jayway.jsonpath
+ json-path
+ ${jsonpath.version}
+
+
+
+
+
+
+
+
+ io.quarkus
+ quarkus-maven-plugin
+ ${quarkus.version}
+
+
+ maven-surefire-plugin
+ ${surefire-plugin.version}
+
+
+ org.jboss.logmanager.LogManager
+ ${maven.home}
+ ${settings.localRepository}
+
+
+
+
+ maven-failsafe-plugin
+ ${failsafe-plugin.version}
+
+
+ org.jboss.logmanager.LogManager
+ ${maven.home}
+ ${settings.localRepository}
+
+
+
+
+ maven-compiler-plugin
+ ${compiler-plugin.version}
+
+ true
+
+
+
+
+
+
+
diff --git a/domain/pom.xml b/domain/pom.xml
new file mode 100644
index 0000000..f36f645
--- /dev/null
+++ b/domain/pom.xml
@@ -0,0 +1,36 @@
+
+
+ 4.0.0
+
+ fr.codeanddata.semrack
+ semrack-bom
+ 1.0-SNAPSHOT
+ ../bom/pom.xml
+
+
+ semrack
+ Semrack
+
+
+
+ io.quarkus
+ quarkus-arc
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/Index.java b/domain/src/main/java/fr/codeanddata/semrack/Index.java
similarity index 63%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/Index.java
rename to domain/src/main/java/fr/codeanddata/semrack/Index.java
index 42e8554..2b135bd 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/Index.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/Index.java
@@ -1,7 +1,7 @@
-package fr.codeanddata.semrack.core;
+package fr.codeanddata.semrack;
-import fr.codeanddata.semrack.core.models.IndexSearchResult;
-import fr.codeanddata.semrack.core.models.Search;
+import fr.codeanddata.semrack.models.IndexSearchResult;
+import fr.codeanddata.semrack.models.Search;
import io.smallrye.mutiny.Uni;
public interface Index {
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/LookupExpression.java b/domain/src/main/java/fr/codeanddata/semrack/LookupExpression.java
similarity index 93%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/LookupExpression.java
rename to domain/src/main/java/fr/codeanddata/semrack/LookupExpression.java
index 117a7de..82370f7 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/LookupExpression.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/LookupExpression.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core;
+package fr.codeanddata.semrack;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/ReadInterceptor.java b/domain/src/main/java/fr/codeanddata/semrack/ReadInterceptor.java
similarity index 57%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/ReadInterceptor.java
rename to domain/src/main/java/fr/codeanddata/semrack/ReadInterceptor.java
index 9cb9fce..dc57bc5 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/ReadInterceptor.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/ReadInterceptor.java
@@ -1,6 +1,6 @@
-package fr.codeanddata.semrack.core;
+package fr.codeanddata.semrack;
-import fr.codeanddata.semrack.core.models.ReadContext;
+import fr.codeanddata.semrack.models.ReadContext;
import io.smallrye.mutiny.Uni;
public interface ReadInterceptor {
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/SearchInterceptor.java b/domain/src/main/java/fr/codeanddata/semrack/SearchInterceptor.java
similarity index 58%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/SearchInterceptor.java
rename to domain/src/main/java/fr/codeanddata/semrack/SearchInterceptor.java
index 50771f3..235cb18 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/SearchInterceptor.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/SearchInterceptor.java
@@ -1,6 +1,6 @@
-package fr.codeanddata.semrack.core;
+package fr.codeanddata.semrack;
-import fr.codeanddata.semrack.core.models.SearchContext;
+import fr.codeanddata.semrack.models.SearchContext;
import io.smallrye.mutiny.Uni;
public interface SearchInterceptor {
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/Storage.java b/domain/src/main/java/fr/codeanddata/semrack/Storage.java
similarity index 64%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/Storage.java
rename to domain/src/main/java/fr/codeanddata/semrack/Storage.java
index c27c527..337a35d 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/Storage.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/Storage.java
@@ -1,7 +1,7 @@
-package fr.codeanddata.semrack.core;
+package fr.codeanddata.semrack;
-import fr.codeanddata.semrack.core.models.Document;
-import fr.codeanddata.semrack.core.models.StorageGet;
+import fr.codeanddata.semrack.models.Document;
+import fr.codeanddata.semrack.models.StorageGet;
import io.smallrye.mutiny.Uni;
import java.util.List;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/WriteInterceptor.java b/domain/src/main/java/fr/codeanddata/semrack/WriteInterceptor.java
similarity index 57%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/WriteInterceptor.java
rename to domain/src/main/java/fr/codeanddata/semrack/WriteInterceptor.java
index a3419e8..c294d6d 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/WriteInterceptor.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/WriteInterceptor.java
@@ -1,6 +1,6 @@
-package fr.codeanddata.semrack.core;
+package fr.codeanddata.semrack;
-import fr.codeanddata.semrack.core.models.WriteContext;
+import fr.codeanddata.semrack.models.WriteContext;
import io.smallrye.mutiny.Uni;
public interface WriteInterceptor {
diff --git a/domain/src/main/java/fr/codeanddata/semrack/enums/PathTypes.java b/domain/src/main/java/fr/codeanddata/semrack/enums/PathTypes.java
new file mode 100644
index 0000000..f111f97
--- /dev/null
+++ b/domain/src/main/java/fr/codeanddata/semrack/enums/PathTypes.java
@@ -0,0 +1,10 @@
+package fr.codeanddata.semrack.enums;
+
+public enum PathTypes {
+ UNKNOWN,
+ STRING,
+ NUMBER,
+ BOOLEAN,
+ LIST,
+ OBJECT
+}
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/enums/SortDirection.java b/domain/src/main/java/fr/codeanddata/semrack/enums/SortDirection.java
similarity index 50%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/enums/SortDirection.java
rename to domain/src/main/java/fr/codeanddata/semrack/enums/SortDirection.java
index 1d911e3..bfad3f0 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/enums/SortDirection.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/enums/SortDirection.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.enums;
+package fr.codeanddata.semrack.enums;
public enum SortDirection {
asc, desc
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/exceptions/SemrackException.java b/domain/src/main/java/fr/codeanddata/semrack/exceptions/SemrackException.java
similarity index 86%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/exceptions/SemrackException.java
rename to domain/src/main/java/fr/codeanddata/semrack/exceptions/SemrackException.java
index 99bb5f1..5b97ace 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/exceptions/SemrackException.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/exceptions/SemrackException.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.exceptions;
+package fr.codeanddata.semrack.exceptions;
public class SemrackException extends Exception {
public SemrackException() {
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/exceptions/SemrackRuntimeException.java b/domain/src/main/java/fr/codeanddata/semrack/exceptions/SemrackRuntimeException.java
similarity index 88%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/exceptions/SemrackRuntimeException.java
rename to domain/src/main/java/fr/codeanddata/semrack/exceptions/SemrackRuntimeException.java
index de688ca..d0e2405 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/exceptions/SemrackRuntimeException.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/exceptions/SemrackRuntimeException.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.exceptions;
+package fr.codeanddata.semrack.exceptions;
public class SemrackRuntimeException extends RuntimeException {
public SemrackRuntimeException() {
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Document.java b/domain/src/main/java/fr/codeanddata/semrack/models/Document.java
similarity index 94%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Document.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/Document.java
index 34e0ba5..f9ec287 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Document.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/Document.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/IndexSearchResult.java b/domain/src/main/java/fr/codeanddata/semrack/models/IndexSearchResult.java
similarity index 81%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/IndexSearchResult.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/IndexSearchResult.java
index 1bd90c3..0200d9e 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/IndexSearchResult.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/IndexSearchResult.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Pagination.java b/domain/src/main/java/fr/codeanddata/semrack/models/Pagination.java
similarity index 76%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Pagination.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/Pagination.java
index ba1d6d3..7883f08 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Pagination.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/Pagination.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/PaginationInfo.java b/domain/src/main/java/fr/codeanddata/semrack/models/PaginationInfo.java
similarity index 77%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/PaginationInfo.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/PaginationInfo.java
index 3728829..dee1cb4 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/PaginationInfo.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/PaginationInfo.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/PushDocument.java b/domain/src/main/java/fr/codeanddata/semrack/models/PushDocument.java
similarity index 91%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/PushDocument.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/PushDocument.java
index e2aceb9..6640bf4 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/PushDocument.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/PushDocument.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/ReadContext.java b/domain/src/main/java/fr/codeanddata/semrack/models/ReadContext.java
similarity index 76%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/ReadContext.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/ReadContext.java
index 774613b..d5c8f3f 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/ReadContext.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/ReadContext.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Search.java b/domain/src/main/java/fr/codeanddata/semrack/models/Search.java
similarity index 87%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Search.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/Search.java
index aac333e..41c3d2f 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Search.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/Search.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/SearchContext.java b/domain/src/main/java/fr/codeanddata/semrack/models/SearchContext.java
similarity index 79%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/SearchContext.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/SearchContext.java
index 573576a..4a49542 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/SearchContext.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/SearchContext.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/SearchResult.java b/domain/src/main/java/fr/codeanddata/semrack/models/SearchResult.java
similarity index 81%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/SearchResult.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/SearchResult.java
index 4922f72..e28b8e0 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/SearchResult.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/SearchResult.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Sort.java b/domain/src/main/java/fr/codeanddata/semrack/models/Sort.java
similarity index 59%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Sort.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/Sort.java
index 24fe263..d531d41 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/Sort.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/Sort.java
@@ -1,6 +1,6 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
-import fr.codeanddata.semrack.core.enums.SortDirection;
+import fr.codeanddata.semrack.enums.SortDirection;
import lombok.*;
@Getter
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/StorageGet.java b/domain/src/main/java/fr/codeanddata/semrack/models/StorageGet.java
similarity index 83%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/StorageGet.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/StorageGet.java
index c54a29b..a302231 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/StorageGet.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/StorageGet.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/TraverserPath.java b/domain/src/main/java/fr/codeanddata/semrack/models/TraverserPath.java
similarity index 54%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/TraverserPath.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/TraverserPath.java
index 6ab0388..7cf1baa 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/TraverserPath.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/TraverserPath.java
@@ -1,6 +1,6 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
-import fr.codeanddata.semrack.core.utils.Traverser;
+import fr.codeanddata.semrack.enums.PathTypes;
import lombok.*;
@Getter
@@ -9,7 +9,7 @@ import lombok.*;
@AllArgsConstructor
@NoArgsConstructor
public class TraverserPath {
- Traverser.PathTypes type;
+ PathTypes type;
String fullPath;
Object value;
}
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/WriteContext.java b/domain/src/main/java/fr/codeanddata/semrack/models/WriteContext.java
similarity index 91%
rename from modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/WriteContext.java
rename to domain/src/main/java/fr/codeanddata/semrack/models/WriteContext.java
index ea8a1f9..0b484ba 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/models/WriteContext.java
+++ b/domain/src/main/java/fr/codeanddata/semrack/models/WriteContext.java
@@ -1,4 +1,4 @@
-package fr.codeanddata.semrack.core.models;
+package fr.codeanddata.semrack.models;
import lombok.*;
diff --git a/integration/semrack-integration/docker-compose.yml b/integration/semrack-integration/docker-compose.yml
deleted file mode 100644
index 7865b39..0000000
--- a/integration/semrack-integration/docker-compose.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-services:
- postgres:
- image: postgres
- environment:
- POSTGRES_USER: postgres
- POSTGRES_PASSWORD: quarkus
- ports:
- - "35532:5432"
-
- semrack:
- build:
- context: .
- dockerfile: src/main/docker/Dockerfile.native-micro
- environment:
- QUARKUS_FLYWAY_ACTIVE: true
- ports:
- - "9090:8080"
- links:
- - postgres
- volumes:
- - ./.env:/work/.env
- - ./src/main/resources/application.properties:/work/config/application.properties
-
-
diff --git a/integration/semrack-integration/pom.xml b/integration/semrack-integration/pom.xml
deleted file mode 100644
index 9385285..0000000
--- a/integration/semrack-integration/pom.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
- 4.0.0
-
- fr.codeanddata.semrack
- 1.0-SNAPSHOT
- semrack-parent
- ../../pom.xml
-
- semrack-integration
-
-
-
- fr.codeanddata.semrack
- semrack-core
-
-
- fr.codeanddata.semrack
- semrack-storage-postgres
-
-
- fr.codeanddata.semrack
- semrack-index-postgres
-
-
- fr.codeanddata.semrack
- semrack-api-rest
-
-
-
- io.quarkus
- quarkus-junit5
- test
-
-
- io.rest-assured
- rest-assured
- test
-
-
-
- commons-codec
- commons-codec
-
-
- org.projectlombok
- lombok
-
-
- org.mapstruct
- mapstruct
-
-
-
-
-
-
- ${quarkus.platform.group-id}
- quarkus-maven-plugin
- ${quarkus.platform.version}
- true
-
-
-
- build
- generate-code
- generate-code-tests
- native-image-agent
-
-
-
-
-
- maven-compiler-plugin
- ${compiler-plugin.version}
-
-
-
- org.projectlombok
- lombok
- ${lombok.version}
-
-
- org.mapstruct
- mapstruct-processor
- ${org.mapstruct.version}
-
-
- true
-
-
-
- maven-surefire-plugin
- ${surefire-plugin.version}
-
-
- org.jboss.logmanager.LogManager
- ${maven.home}
-
-
-
-
- maven-failsafe-plugin
- ${surefire-plugin.version}
-
-
-
- integration-test
- verify
-
-
-
-
-
- ${project.build.directory}/${project.build.finalName}-runner
- org.jboss.logmanager.LogManager
- ${maven.home}
-
-
-
-
-
-
-
-
- native
-
-
- native
-
-
-
- false
- true
-
-
-
-
diff --git a/integration/semrack-integration/src/main/docker/Dockerfile.jvm b/integration/semrack-integration/src/main/docker/Dockerfile.jvm
deleted file mode 100644
index 642a2f2..0000000
--- a/integration/semrack-integration/src/main/docker/Dockerfile.jvm
+++ /dev/null
@@ -1,98 +0,0 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode
-#
-# Before building the container image run:
-#
-# ./mvnw package
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/semrack-jvm .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/semrack-jvm
-#
-# If you want to include the debug port into your docker image
-# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005.
-# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005
-# when running the container
-#
-# Then run the container using :
-#
-# docker run -i --rm -p 8080:8080 quarkus/semrack-jvm
-#
-# This image uses the `run-java.sh` script to run the application.
-# This scripts computes the command line to execute your Java application, and
-# includes memory/GC tuning.
-# You can configure the behavior using the following environment properties:
-# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") - Be aware that this will override
-# the default JVM options, use `JAVA_OPTS_APPEND` to append options
-# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options
-# in JAVA_OPTS (example: "-Dsome.property=foo")
-# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is
-# used to calculate a default maximal heap memory based on a containers restriction.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio
-# of the container available memory as set here. The default is `50` which means 50%
-# of the available memory is used as an upper boundary. You can skip this mechanism by
-# setting this value to `0` in which case no `-Xmx` option is added.
-# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This
-# is used to calculate a default initial heap memory based on the maximum heap memory.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio
-# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx`
-# is used as the initial heap size. You can skip this mechanism by setting this value
-# to `0` in which case no `-Xms` option is added (example: "25")
-# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS.
-# This is used to calculate the maximum value of the initial heap memory. If used in
-# a container without any memory constraints for the container then this option has
-# no effect. If there is a memory constraint then `-Xms` is limited to the value set
-# here. The default is 4096MB which means the calculated value of `-Xms` never will
-# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096")
-# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output
-# when things are happening. This option, if set to true, will set
-# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true").
-# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example:
-# true").
-# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787").
-# - CONTAINER_CORE_LIMIT: A calculated core limit as described in
-# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2")
-# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024").
-# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion.
-# (example: "20")
-# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking.
-# (example: "40")
-# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection.
-# (example: "4")
-# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus
-# previous GC times. (example: "90")
-# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20")
-# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100")
-# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should
-# contain the necessary JRE command-line options to specify the required GC, which
-# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC).
-# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080")
-# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080")
-# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be
-# accessed directly. (example: "foo.example.com,bar.example.com")
-#
-###
-FROM registry.access.redhat.com/ubi9/openjdk-21:1.21
-
-ENV LANGUAGE='en_US:en'
-
-
-# We make four distinct layers so if there are application changes the library layers can be re-used
-COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/
-COPY --chown=185 target/quarkus-app/*.jar /deployments/
-COPY --chown=185 target/quarkus-app/app/ /deployments/app/
-COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/
-
-EXPOSE 8080
-USER 185
-ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
-ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
-
-ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ]
-
diff --git a/integration/semrack-integration/src/main/docker/Dockerfile.legacy-jar b/integration/semrack-integration/src/main/docker/Dockerfile.legacy-jar
deleted file mode 100644
index c7196af..0000000
--- a/integration/semrack-integration/src/main/docker/Dockerfile.legacy-jar
+++ /dev/null
@@ -1,94 +0,0 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode
-#
-# Before building the container image run:
-#
-# ./mvnw package -Dquarkus.package.jar.type=legacy-jar
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/semrack-legacy-jar .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/semrack-legacy-jar
-#
-# If you want to include the debug port into your docker image
-# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005.
-# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005
-# when running the container
-#
-# Then run the container using :
-#
-# docker run -i --rm -p 8080:8080 quarkus/semrack-legacy-jar
-#
-# This image uses the `run-java.sh` script to run the application.
-# This scripts computes the command line to execute your Java application, and
-# includes memory/GC tuning.
-# You can configure the behavior using the following environment properties:
-# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class") - Be aware that this will override
-# the default JVM options, use `JAVA_OPTS_APPEND` to append options
-# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options
-# in JAVA_OPTS (example: "-Dsome.property=foo")
-# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is
-# used to calculate a default maximal heap memory based on a containers restriction.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio
-# of the container available memory as set here. The default is `50` which means 50%
-# of the available memory is used as an upper boundary. You can skip this mechanism by
-# setting this value to `0` in which case no `-Xmx` option is added.
-# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This
-# is used to calculate a default initial heap memory based on the maximum heap memory.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio
-# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx`
-# is used as the initial heap size. You can skip this mechanism by setting this value
-# to `0` in which case no `-Xms` option is added (example: "25")
-# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS.
-# This is used to calculate the maximum value of the initial heap memory. If used in
-# a container without any memory constraints for the container then this option has
-# no effect. If there is a memory constraint then `-Xms` is limited to the value set
-# here. The default is 4096MB which means the calculated value of `-Xms` never will
-# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096")
-# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output
-# when things are happening. This option, if set to true, will set
-# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true").
-# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example:
-# true").
-# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787").
-# - CONTAINER_CORE_LIMIT: A calculated core limit as described in
-# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2")
-# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024").
-# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion.
-# (example: "20")
-# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking.
-# (example: "40")
-# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection.
-# (example: "4")
-# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus
-# previous GC times. (example: "90")
-# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20")
-# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100")
-# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should
-# contain the necessary JRE command-line options to specify the required GC, which
-# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC).
-# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080")
-# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080")
-# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be
-# accessed directly. (example: "foo.example.com,bar.example.com")
-#
-###
-FROM registry.access.redhat.com/ubi9/openjdk-21:1.21
-
-ENV LANGUAGE='en_US:en'
-
-
-COPY target/lib/* /deployments/lib/
-COPY target/*-runner.jar /deployments/quarkus-run.jar
-
-EXPOSE 8080
-USER 185
-ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
-ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
-
-ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ]
diff --git a/integration/semrack-integration/src/main/docker/Dockerfile.native b/integration/semrack-integration/src/main/docker/Dockerfile.native
deleted file mode 100644
index 69d2b69..0000000
--- a/integration/semrack-integration/src/main/docker/Dockerfile.native
+++ /dev/null
@@ -1,29 +0,0 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode.
-#
-# Before building the container image run:
-#
-# ./mvnw package -Dnative
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.native -t quarkus/semrack .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/semrack
-#
-# The ` registry.access.redhat.com/ubi9/ubi-minimal:9.5` base image is based on UBI 9.
-# To use UBI 8, switch to `quay.io/ubi8/ubi-minimal:8.10`.
-###
-FROM registry.access.redhat.com/ubi9/ubi-minimal:9.5
-WORKDIR /work/
-RUN chown 1001 /work \
- && chmod "g+rwX" /work \
- && chown 1001:root /work
-COPY --chown=1001:root --chmod=0755 target/*-runner /work/application
-
-EXPOSE 8080
-USER 1001
-
-ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]
diff --git a/integration/semrack-integration/src/main/docker/Dockerfile.native-micro b/integration/semrack-integration/src/main/docker/Dockerfile.native-micro
deleted file mode 100644
index a4b708f..0000000
--- a/integration/semrack-integration/src/main/docker/Dockerfile.native-micro
+++ /dev/null
@@ -1,32 +0,0 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode.
-# It uses a micro base image, tuned for Quarkus native executables.
-# It reduces the size of the resulting container image.
-# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image.
-#
-# Before building the container image run:
-#
-# ./mvnw package -Dnative
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/semrack .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/semrack
-#
-# The `quay.io/quarkus/ubi9-quarkus-micro-image:2.0` base image is based on UBI 9.
-# To use UBI 8, switch to `quay.io/quarkus/quarkus-micro-image:2.0`.
-###
-FROM quay.io/quarkus/ubi9-quarkus-micro-image:2.0
-WORKDIR /work/
-RUN chown 1001 /work \
- && chmod "g+rwX" /work \
- && chown 1001:root /work
-COPY --chown=1001:root --chmod=0755 target/*-runner /work/application
-
-EXPOSE 8080
-USER 1001
-
-ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]
diff --git a/integration/semrack-integration/src/main/resources/application.properties b/integration/semrack-integration/src/main/resources/application.properties
deleted file mode 100644
index 4b1b531..0000000
--- a/integration/semrack-integration/src/main/resources/application.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-%dev.quarkus.log.min-level=TRACE
-
-#quarkus.hibernate-orm.mapping.format.global=ignore
-
-# Datasource
-quarkus.datasource.devservices.port=35432
-quarkus.hibernate-orm.scripts.generation=none
-%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://${semrack.db.host}:${semrack.db.port}/${semrack.db.name}
-%prod.quarkus.datasource.reactive.url=postgresql://${semrack.db.host}:${semrack.db.port}/${semrack.db.name}
-%prod.quarkus.datasource.username=${semrack.db.user}
-%prod.quarkus.datasource.password=${semrack.db.password}
-quarkus.hibernate-orm.log.sql=true
-
-## Flyway
-quarkus.flyway.active=false
-
-# Security
-quarkus.keycloak.devservices.port=35180
-quarkus.oidc.client-id=m2m-client
-quarkus.oidc.credentials.secret=m2m-password
-quarkus.oidc.discovery-enabled=true
-%prod.quarkus.oidc.auth-server-url=${semrack.oidc.url}
-%prod.quarkus.oidc.client-id=${semrack.oidc.client-id}
-%prod.quarkus.oidc.credentials.secret=${semrack.oidc.client-secret}
-
diff --git a/modules/semrack-api-rest/pom.xml b/modules/semrack-api-rest/pom.xml
index a34fae5..0284501 100644
--- a/modules/semrack-api-rest/pom.xml
+++ b/modules/semrack-api-rest/pom.xml
@@ -4,9 +4,9 @@
4.0.0
fr.codeanddata.semrack
- semrack-parent
+ semrack-bom
1.0-SNAPSHOT
- ../../pom.xml
+ ../../bom/pom.xml
semrack-api-rest-parent
pom
diff --git a/modules/semrack-api-rest/runtime/src/main/java/fr/codeanddata/semrack/api/rest/SemrackApi.java b/modules/semrack-api-rest/runtime/src/main/java/fr/codeanddata/semrack/api/rest/SemrackApi.java
index 565412a..b122b09 100644
--- a/modules/semrack-api-rest/runtime/src/main/java/fr/codeanddata/semrack/api/rest/SemrackApi.java
+++ b/modules/semrack-api-rest/runtime/src/main/java/fr/codeanddata/semrack/api/rest/SemrackApi.java
@@ -1,12 +1,11 @@
package fr.codeanddata.semrack.api.rest;
-import fr.codeanddata.semrack.core.models.*;
import fr.codeanddata.semrack.core.repositories.DocumentRepository;
+import fr.codeanddata.semrack.models.*;
import io.smallrye.mutiny.Uni;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST;
-import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
diff --git a/modules/semrack-core/pom.xml b/modules/semrack-core/pom.xml
index 1064c39..1a575b2 100644
--- a/modules/semrack-core/pom.xml
+++ b/modules/semrack-core/pom.xml
@@ -4,9 +4,9 @@
4.0.0
fr.codeanddata.semrack
- semrack-parent
+ semrack-bom
1.0-SNAPSHOT
- ../../pom.xml
+ ../../bom/pom.xml
semrack-core-parent
pom
diff --git a/modules/semrack-core/runtime/pom.xml b/modules/semrack-core/runtime/pom.xml
index 4931182..439cfe6 100644
--- a/modules/semrack-core/runtime/pom.xml
+++ b/modules/semrack-core/runtime/pom.xml
@@ -12,6 +12,10 @@
Semrack Core - Runtime
+
+ fr.codeanddata.semrack
+ semrack
+
io.quarkus
quarkus-arc
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/AnnotateWriteInterceptor.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/AnnotateWriteInterceptor.java
index 0747b3d..e96f9d3 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/AnnotateWriteInterceptor.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/AnnotateWriteInterceptor.java
@@ -2,8 +2,8 @@ package fr.codeanddata.semrack.core.interceptors;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
-import fr.codeanddata.semrack.core.WriteInterceptor;
-import fr.codeanddata.semrack.core.models.WriteContext;
+import fr.codeanddata.semrack.WriteInterceptor;
+import fr.codeanddata.semrack.models.WriteContext;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/PublishWriteInterceptor.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/PublishWriteInterceptor.java
index 9fb14c9..f47996e 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/PublishWriteInterceptor.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/interceptors/PublishWriteInterceptor.java
@@ -1,8 +1,8 @@
package fr.codeanddata.semrack.core.interceptors;
-import fr.codeanddata.semrack.core.WriteInterceptor;
-import fr.codeanddata.semrack.core.models.WriteContext;
-import fr.codeanddata.semrack.core.models.Document;
+import fr.codeanddata.semrack.WriteInterceptor;
+import fr.codeanddata.semrack.models.WriteContext;
+import fr.codeanddata.semrack.models.Document;
import fr.codeanddata.semrack.core.utils.UIDGenerator;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/mappers/DocumentMapper.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/mappers/DocumentMapper.java
index e04367d..12a2d77 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/mappers/DocumentMapper.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/mappers/DocumentMapper.java
@@ -1,7 +1,7 @@
package fr.codeanddata.semrack.core.mappers;
-import fr.codeanddata.semrack.core.models.Document;
-import fr.codeanddata.semrack.core.models.PushDocument;
+import fr.codeanddata.semrack.models.Document;
+import fr.codeanddata.semrack.models.PushDocument;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingConstants;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/repositories/DocumentRepository.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/repositories/DocumentRepository.java
index 0029062..e376daa 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/repositories/DocumentRepository.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/repositories/DocumentRepository.java
@@ -1,10 +1,10 @@
package fr.codeanddata.semrack.core.repositories;
-import fr.codeanddata.semrack.core.WriteInterceptor;
-import fr.codeanddata.semrack.core.exceptions.SemrackRuntimeException;
-import fr.codeanddata.semrack.core.models.*;
+import fr.codeanddata.semrack.WriteInterceptor;
+import fr.codeanddata.semrack.exceptions.SemrackRuntimeException;
import fr.codeanddata.semrack.core.storages.StorageProxy;
import fr.codeanddata.semrack.core.utils.UIDGenerator;
+import fr.codeanddata.semrack.models.*;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Any;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/IndexService.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/IndexService.java
index 3f92e37..2d47458 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/IndexService.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/IndexService.java
@@ -1,8 +1,8 @@
package fr.codeanddata.semrack.core.services;
-import fr.codeanddata.semrack.core.Index;
-import fr.codeanddata.semrack.core.models.IndexSearchResult;
-import fr.codeanddata.semrack.core.models.Search;
+import fr.codeanddata.semrack.Index;
+import fr.codeanddata.semrack.models.IndexSearchResult;
+import fr.codeanddata.semrack.models.Search;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/LookupService.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/LookupService.java
index ac1a6b8..51cdb56 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/LookupService.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/services/LookupService.java
@@ -1,6 +1,6 @@
package fr.codeanddata.semrack.core.services;
-import fr.codeanddata.semrack.core.LookupExpression;
+import fr.codeanddata.semrack.LookupExpression;
import io.quarkus.runtime.StartupEvent;
import io.smallrye.common.annotation.Identifier;
import jakarta.enterprise.context.ApplicationScoped;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/storages/StorageProxy.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/storages/StorageProxy.java
index 68f8758..bffc50d 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/storages/StorageProxy.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/storages/StorageProxy.java
@@ -1,11 +1,11 @@
package fr.codeanddata.semrack.core.storages;
-import fr.codeanddata.semrack.core.Index;
-import fr.codeanddata.semrack.core.Storage;
-import fr.codeanddata.semrack.core.models.Search;
-import fr.codeanddata.semrack.core.models.SearchResult;
-import fr.codeanddata.semrack.core.models.Document;
-import fr.codeanddata.semrack.core.models.StorageGet;
+import fr.codeanddata.semrack.Index;
+import fr.codeanddata.semrack.Storage;
+import fr.codeanddata.semrack.models.Search;
+import fr.codeanddata.semrack.models.SearchResult;
+import fr.codeanddata.semrack.models.Document;
+import fr.codeanddata.semrack.models.StorageGet;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/Traverser.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/Traverser.java
index af78f3a..4afcee2 100644
--- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/Traverser.java
+++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/Traverser.java
@@ -2,8 +2,8 @@ package fr.codeanddata.semrack.core.utils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
-import fr.codeanddata.semrack.core.models.TraverserPath;
-import io.vertx.core.json.Json;
+import fr.codeanddata.semrack.enums.PathTypes;
+import fr.codeanddata.semrack.models.TraverserPath;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@@ -21,15 +21,6 @@ public class Traverser implements Function
+
+ fr.codeanddata.semrack
+ semrack
+
fr.codeanddata.semrack
semrack-core
diff --git a/modules/semrack-core/testing/src/main/java/fr/codeanddata/semrack/core/MockProducer.java b/modules/semrack-core/testing/src/main/java/fr/codeanddata/semrack/core/MockProducer.java
index 4183569..3c04165 100644
--- a/modules/semrack-core/testing/src/main/java/fr/codeanddata/semrack/core/MockProducer.java
+++ b/modules/semrack-core/testing/src/main/java/fr/codeanddata/semrack/core/MockProducer.java
@@ -1,9 +1,11 @@
package fr.codeanddata.semrack.core;
-import fr.codeanddata.semrack.core.models.IndexSearchResult;
-import fr.codeanddata.semrack.core.models.Search;
-import fr.codeanddata.semrack.core.models.Document;
-import fr.codeanddata.semrack.core.models.StorageGet;
+import fr.codeanddata.semrack.Index;
+import fr.codeanddata.semrack.Storage;
+import fr.codeanddata.semrack.models.IndexSearchResult;
+import fr.codeanddata.semrack.models.Search;
+import fr.codeanddata.semrack.models.Document;
+import fr.codeanddata.semrack.models.StorageGet;
import io.quarkus.arc.DefaultBean;
import io.smallrye.mutiny.Uni;
import jakarta.annotation.Priority;
diff --git a/modules/semrack-core/testing/src/test/java/fr/codeanddata/semrack/core/utils/TraverserTest.java b/modules/semrack-core/testing/src/test/java/fr/codeanddata/semrack/core/utils/TraverserTest.java
index c7d9974..0fdc5b1 100644
--- a/modules/semrack-core/testing/src/test/java/fr/codeanddata/semrack/core/utils/TraverserTest.java
+++ b/modules/semrack-core/testing/src/test/java/fr/codeanddata/semrack/core/utils/TraverserTest.java
@@ -1,6 +1,7 @@
package fr.codeanddata.semrack.core.utils;
-import fr.codeanddata.semrack.core.models.TraverserPath;
+import fr.codeanddata.semrack.enums.PathTypes;
+import fr.codeanddata.semrack.models.TraverserPath;
import io.quarkus.test.junit.QuarkusTest;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Assertions;
@@ -33,16 +34,16 @@ public class TraverserTest {
Assertions.assertEquals(14, paths.size());
List> expectations = List.of(
- Arrays.asList(".user", null, Traverser.PathTypes.OBJECT),
- Arrays.asList(".user.age", 14, Traverser.PathTypes.NUMBER),
- Arrays.asList(".user.family[0].age", 38, Traverser.PathTypes.NUMBER),
- Arrays.asList(".user.family[0].isAdult", true, Traverser.PathTypes.BOOLEAN),
- Arrays.asList(".user.family[0].name", "mom", Traverser.PathTypes.STRING),
- Arrays.asList(".user.family[1].age", 6, Traverser.PathTypes.NUMBER),
- Arrays.asList(".user.family[1].isAdult", false, Traverser.PathTypes.BOOLEAN),
- Arrays.asList(".user.family[1].name", "bro", Traverser.PathTypes.STRING),
- Arrays.asList(".user.isAdult", false, Traverser.PathTypes.BOOLEAN),
- Arrays.asList(".user.name", "bob", Traverser.PathTypes.STRING)
+ Arrays.asList(".user", null, PathTypes.OBJECT),
+ Arrays.asList(".user.age", 14, PathTypes.NUMBER),
+ Arrays.asList(".user.family[0].age", 38, PathTypes.NUMBER),
+ Arrays.asList(".user.family[0].isAdult", true, PathTypes.BOOLEAN),
+ Arrays.asList(".user.family[0].name", "mom", PathTypes.STRING),
+ Arrays.asList(".user.family[1].age", 6, PathTypes.NUMBER),
+ Arrays.asList(".user.family[1].isAdult", false, PathTypes.BOOLEAN),
+ Arrays.asList(".user.family[1].name", "bro", PathTypes.STRING),
+ Arrays.asList(".user.isAdult", false, PathTypes.BOOLEAN),
+ Arrays.asList(".user.name", "bob", PathTypes.STRING)
);
for (List> expectation : expectations) {
diff --git a/modules/semrack-index-postgres/deployment/pom.xml b/modules/semrack-index-postgres/deployment/pom.xml
index 78a9c9d..1d9def1 100644
--- a/modules/semrack-index-postgres/deployment/pom.xml
+++ b/modules/semrack-index-postgres/deployment/pom.xml
@@ -54,6 +54,7 @@
fr.codeanddata.semrack
semrack-core-testing
+ test
diff --git a/modules/semrack-index-postgres/pom.xml b/modules/semrack-index-postgres/pom.xml
index fceb32a..c37f5b7 100644
--- a/modules/semrack-index-postgres/pom.xml
+++ b/modules/semrack-index-postgres/pom.xml
@@ -4,9 +4,9 @@
4.0.0
fr.codeanddata.semrack
- semrack-parent
+ semrack-bom
1.0-SNAPSHOT
- ../../pom.xml
+ ../../bom/pom.xml
semrack-index-postgres-parent
Semrack Index Postgres - Parent
diff --git a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/JpaIndex.java b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/JpaIndex.java
index 01cab99..ae4facb 100644
--- a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/JpaIndex.java
+++ b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/JpaIndex.java
@@ -1,13 +1,13 @@
package fr.codeanddata.semrack.index.postgres;
-import fr.codeanddata.semrack.core.Index;
-import fr.codeanddata.semrack.core.Storage;
-import fr.codeanddata.semrack.core.models.*;
+import fr.codeanddata.semrack.Index;
+import fr.codeanddata.semrack.Storage;
import fr.codeanddata.semrack.core.services.LookupService;
import fr.codeanddata.semrack.core.utils.Traverser;
import fr.codeanddata.semrack.index.postgres.dtos.IndexEntry;
import fr.codeanddata.semrack.index.postgres.entities.SemrackIndexEntity;
import fr.codeanddata.semrack.index.postgres.repositories.SemrackIndexRepository;
+import fr.codeanddata.semrack.models.*;
import io.quarkus.hibernate.reactive.panache.PanacheRepository;
import io.quarkus.hibernate.reactive.panache.common.WithSession;
import io.quarkus.hibernate.reactive.panache.common.WithTransaction;
diff --git a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/dtos/IndexEntry.java b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/dtos/IndexEntry.java
index c70d188..2ca7981 100644
--- a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/dtos/IndexEntry.java
+++ b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/dtos/IndexEntry.java
@@ -1,6 +1,6 @@
package fr.codeanddata.semrack.index.postgres.dtos;
-import fr.codeanddata.semrack.core.utils.Traverser;
+import fr.codeanddata.semrack.enums.PathTypes;
import lombok.*;
@Getter
@@ -9,6 +9,6 @@ import lombok.*;
@NoArgsConstructor
@AllArgsConstructor
public class IndexEntry {
- Traverser.PathTypes type;
+ PathTypes type;
Object value;
}
diff --git a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/EqualLookup.java b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/EqualLookup.java
index 0c00ebb..f5975c9 100644
--- a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/EqualLookup.java
+++ b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/EqualLookup.java
@@ -2,7 +2,7 @@ package fr.codeanddata.semrack.index.postgres.operators;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import fr.codeanddata.semrack.core.exceptions.SemrackRuntimeException;
+import fr.codeanddata.semrack.exceptions.SemrackRuntimeException;
import fr.codeanddata.semrack.index.postgres.EqualLookupParams;
import io.smallrye.common.annotation.Identifier;
import jakarta.enterprise.context.ApplicationScoped;
diff --git a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/InLookup.java b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/InLookup.java
index e8f3205..fb27b69 100644
--- a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/InLookup.java
+++ b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/InLookup.java
@@ -2,7 +2,7 @@ package fr.codeanddata.semrack.index.postgres.operators;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import fr.codeanddata.semrack.core.exceptions.SemrackRuntimeException;
+import fr.codeanddata.semrack.exceptions.SemrackRuntimeException;
import fr.codeanddata.semrack.index.postgres.InLookupParams;
import io.smallrye.common.annotation.Identifier;
import jakarta.enterprise.context.ApplicationScoped;
diff --git a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/JpaLookupExpression.java b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/JpaLookupExpression.java
index 2c0f09d..e70b905 100644
--- a/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/JpaLookupExpression.java
+++ b/modules/semrack-index-postgres/runtime/src/main/java/fr/codeanddata/semrack/index/postgres/operators/JpaLookupExpression.java
@@ -1,6 +1,6 @@
package fr.codeanddata.semrack.index.postgres.operators;
-import fr.codeanddata.semrack.core.LookupExpression;
+import fr.codeanddata.semrack.LookupExpression;
public interface JpaLookupExpression extends LookupExpression {
}
diff --git a/modules/semrack-rest-client/deployment/pom.xml b/modules/semrack-rest-client/deployment/pom.xml
new file mode 100644
index 0000000..51f6964
--- /dev/null
+++ b/modules/semrack-rest-client/deployment/pom.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+
+ fr.codeanddata.semrack
+ semrack-rest-client-parent
+ 1.0-SNAPSHOT
+
+ semrack-rest-client-deployment
+ Semrack Rest Client - Deployment
+
+
+
+ io.quarkus
+ quarkus-arc-deployment
+
+
+ io.quarkus
+ quarkus-rest-client-deployment
+
+
+ io.quarkus
+ quarkus-rest-client-jackson-deployment
+
+
+
+ fr.codeanddata.semrack
+ semrack-rest-client
+ ${project.version}
+
+
+
+ io.quarkus
+ quarkus-junit-internal
+ test
+
+
+ io.quarkus
+ quarkus-junit-mockito
+ test
+
+
+ fr.codeanddata.semrack
+ semrack-core-testing
+ test
+
+
+
+
+
+
+ maven-compiler-plugin
+
+
+ default-compile
+
+
+
+ io.quarkus
+ quarkus-extension-processor
+ ${quarkus.version}
+
+
+
+
+
+
+
+
+
diff --git a/modules/semrack-rest-client/deployment/src/main/java/fr/codeanddata/semrack/rest/client/deployment/SemrackRestClientProcessor.java b/modules/semrack-rest-client/deployment/src/main/java/fr/codeanddata/semrack/rest/client/deployment/SemrackRestClientProcessor.java
new file mode 100644
index 0000000..7f2275b
--- /dev/null
+++ b/modules/semrack-rest-client/deployment/src/main/java/fr/codeanddata/semrack/rest/client/deployment/SemrackRestClientProcessor.java
@@ -0,0 +1,14 @@
+package fr.codeanddata.semrack.rest.client.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class SemrackRestClientProcessor {
+
+ private static final String FEATURE = "semrack-rest-client";
+
+ @BuildStep
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
+ }
+}
diff --git a/modules/semrack-rest-client/deployment/src/test/java/fr/codeanddata/semrack/rest/client/test/SemrackRestClientDevModeTest.java b/modules/semrack-rest-client/deployment/src/test/java/fr/codeanddata/semrack/rest/client/test/SemrackRestClientDevModeTest.java
new file mode 100644
index 0000000..4e0fd77
--- /dev/null
+++ b/modules/semrack-rest-client/deployment/src/test/java/fr/codeanddata/semrack/rest/client/test/SemrackRestClientDevModeTest.java
@@ -0,0 +1,23 @@
+package fr.codeanddata.semrack.rest.client.test;
+
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import io.quarkus.test.QuarkusDevModeTest;
+
+public class SemrackRestClientDevModeTest {
+
+ // Start hot reload (DevMode) test with your extension loaded
+ @RegisterExtension
+ static final QuarkusDevModeTest devModeTest = new QuarkusDevModeTest()
+ .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class));
+
+ @Test
+ public void writeYourOwnDevModeTest() {
+ // Write your dev mode tests here - see the testing extension guide https://quarkus.io/guides/writing-extensions#testing-hot-reload for more information
+ Assertions.assertTrue(true, "Add dev mode assertions to " + getClass().getName());
+ }
+}
diff --git a/modules/semrack-rest-client/deployment/src/test/java/fr/codeanddata/semrack/rest/client/test/SemrackRestClientTest.java b/modules/semrack-rest-client/deployment/src/test/java/fr/codeanddata/semrack/rest/client/test/SemrackRestClientTest.java
new file mode 100644
index 0000000..876716a
--- /dev/null
+++ b/modules/semrack-rest-client/deployment/src/test/java/fr/codeanddata/semrack/rest/client/test/SemrackRestClientTest.java
@@ -0,0 +1,28 @@
+package fr.codeanddata.semrack.rest.client.test;
+
+import fr.codeanddata.semrack.rest.client.runtime.SemrackRestClient;
+import io.quarkus.test.QuarkusUnitTest;
+import org.eclipse.microprofile.rest.client.inject.RestClient;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+public class SemrackRestClientTest {
+
+ @RestClient
+ SemrackRestClient restClient;
+
+ // Start unit test with your extension loaded
+ @RegisterExtension
+ static final QuarkusUnitTest unitTest = new QuarkusUnitTest()
+ .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class));
+
+ @Test
+ public void writeYourOwnUnitTest() {
+ // Write your unit tests here - see the testing extension guide https://quarkus.io/guides/writing-extensions#testing-extensions for more information
+ Assertions.assertTrue(true, "Add some assertions to " + getClass().getName());
+ Assertions.assertNotNull(restClient);
+ }
+}
diff --git a/modules/semrack-rest-client/integration-tests/pom.xml b/modules/semrack-rest-client/integration-tests/pom.xml
new file mode 100644
index 0000000..52ace18
--- /dev/null
+++ b/modules/semrack-rest-client/integration-tests/pom.xml
@@ -0,0 +1,98 @@
+
+
+ 4.0.0
+
+
+ fr.codeanddata.semrack
+ semrack-rest-client-parent
+ 1.0.0-SNAPSHOT
+
+ semrack-rest-client-integration-tests
+ Semrack Rest Client - Integration Tests
+
+
+ true
+
+
+
+
+ io.quarkus
+ quarkus-rest
+
+
+ fr.codeanddata.semrack
+ semrack-rest-client
+ ${project.version}
+
+
+ io.quarkus
+ quarkus-junit
+ test
+
+
+ io.rest-assured
+ rest-assured
+ test
+
+
+
+
+
+
+ io.quarkus
+ quarkus-maven-plugin
+
+
+
+ build
+
+
+
+
+
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+ ${project.build.directory}/${project.build.finalName}-runner
+ org.jboss.logmanager.LogManager
+ ${maven.home}
+
+
+
+
+
+
+
+
+ native-image
+
+
+ native
+
+
+
+
+
+ maven-surefire-plugin
+
+ ${native.surefire.skip}
+
+
+
+
+
+ false
+ false
+ true
+
+
+
+
diff --git a/modules/semrack-rest-client/integration-tests/src/main/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResource.java b/modules/semrack-rest-client/integration-tests/src/main/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResource.java
new file mode 100644
index 0000000..75213b2
--- /dev/null
+++ b/modules/semrack-rest-client/integration-tests/src/main/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResource.java
@@ -0,0 +1,32 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package fr.codeanddata.semrack.rest.client.it;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+
+@Path("/semrack-rest-client")
+@ApplicationScoped
+public class SemrackRestClientResource {
+ // add some rest methods here
+
+ @GET
+ public String hello() {
+ return "Hello semrack-rest-client";
+ }
+}
diff --git a/modules/semrack-rest-client/integration-tests/src/main/resources/application.properties b/modules/semrack-rest-client/integration-tests/src/main/resources/application.properties
new file mode 100644
index 0000000..e69de29
diff --git a/modules/semrack-rest-client/integration-tests/src/test/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResourceIT.java b/modules/semrack-rest-client/integration-tests/src/test/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResourceIT.java
new file mode 100644
index 0000000..c681fc7
--- /dev/null
+++ b/modules/semrack-rest-client/integration-tests/src/test/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResourceIT.java
@@ -0,0 +1,7 @@
+package fr.codeanddata.semrack.rest.client.it;
+
+import io.quarkus.test.junit.QuarkusIntegrationTest;
+
+@QuarkusIntegrationTest
+public class SemrackRestClientResourceIT extends SemrackRestClientResourceTest {
+}
diff --git a/modules/semrack-rest-client/integration-tests/src/test/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResourceTest.java b/modules/semrack-rest-client/integration-tests/src/test/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResourceTest.java
new file mode 100644
index 0000000..2eedcda
--- /dev/null
+++ b/modules/semrack-rest-client/integration-tests/src/test/java/fr/codeanddata/semrack/rest/client/it/SemrackRestClientResourceTest.java
@@ -0,0 +1,21 @@
+package fr.codeanddata.semrack.rest.client.it;
+
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.Matchers.is;
+
+import org.junit.jupiter.api.Test;
+
+import io.quarkus.test.junit.QuarkusTest;
+
+@QuarkusTest
+public class SemrackRestClientResourceTest {
+
+ @Test
+ public void testHelloEndpoint() {
+ given()
+ .when().get("/semrack-rest-client")
+ .then()
+ .statusCode(200)
+ .body(is("Hello semrack-rest-client"));
+ }
+}
diff --git a/modules/semrack-rest-client/pom.xml b/modules/semrack-rest-client/pom.xml
new file mode 100644
index 0000000..f58dcb3
--- /dev/null
+++ b/modules/semrack-rest-client/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ fr.codeanddata.semrack
+ semrack-bom
+ 1.0-SNAPSHOT
+ ../../bom/pom.xml
+
+ pom
+
+ semrack-rest-client-parent
+ Semrack Rest Client - Parent
+
+
+ deployment
+ runtime
+
+
+
diff --git a/modules/semrack-rest-client/runtime/pom.xml b/modules/semrack-rest-client/runtime/pom.xml
new file mode 100644
index 0000000..29eea49
--- /dev/null
+++ b/modules/semrack-rest-client/runtime/pom.xml
@@ -0,0 +1,70 @@
+
+
+ 4.0.0
+
+
+ fr.codeanddata.semrack
+ semrack-rest-client-parent
+ 1.0-SNAPSHOT
+
+ semrack-rest-client
+ Semrack Rest Client - Runtime
+
+
+
+ io.quarkus
+ quarkus-arc
+
+
+ io.quarkus
+ quarkus-rest-client
+
+
+ io.quarkus
+ quarkus-rest-client-jackson
+
+
+ fr.codeanddata.semrack
+ semrack
+
+
+
+
+
+
+ io.quarkus
+ quarkus-extension-maven-plugin
+ ${quarkus.version}
+
+
+ compile
+
+ extension-descriptor
+
+
+ ${project.groupId}:${project.artifactId}-deployment:${project.version}
+
+
+
+
+
+ maven-compiler-plugin
+
+
+ default-compile
+
+
+
+ io.quarkus
+ quarkus-extension-processor
+
+
+ true
+
+
+
+
+
+
+
diff --git a/modules/semrack-rest-client/runtime/src/main/java/fr/codeanddata/semrack/rest/client/runtime/SemrackRestClient.java b/modules/semrack-rest-client/runtime/src/main/java/fr/codeanddata/semrack/rest/client/runtime/SemrackRestClient.java
new file mode 100644
index 0000000..988869b
--- /dev/null
+++ b/modules/semrack-rest-client/runtime/src/main/java/fr/codeanddata/semrack/rest/client/runtime/SemrackRestClient.java
@@ -0,0 +1,40 @@
+package fr.codeanddata.semrack.rest.client.runtime;
+
+import fr.codeanddata.semrack.models.*;
+import io.smallrye.mutiny.Uni;
+import jakarta.ws.rs.*;
+import jakarta.ws.rs.core.MediaType;
+import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
+import org.jboss.resteasy.reactive.RestPath;
+
+@Path("/documents")
+@RegisterRestClient(configKey="semrack-api")
+public interface SemrackRestClient {
+ @POST
+ @Consumes("application/json")
+ @Produces("application/json")
+ Uni pushDocument(PushDocument semrackDocument);
+
+ @POST
+ @Path("/search")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ Uni searchDocument(Search query);
+
+ @GET
+ @Path("{uid}")
+ @Produces(MediaType.APPLICATION_JSON)
+ Uni getDocument(@RestPath String uid);
+
+ @POST
+ @Path("{uid}")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ Uni getDocument(@RestPath String uid, StorageGet request);
+
+ @POST
+ @Path("{uid}/update")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ Uni updateDocument(@RestPath String uid, PushDocument semrackDocument);
+}
diff --git a/modules/semrack-rest-client/runtime/src/main/resources/META-INF/beans.xml b/modules/semrack-rest-client/runtime/src/main/resources/META-INF/beans.xml
new file mode 100644
index 0000000..e69de29
diff --git a/modules/semrack-rest-client/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/modules/semrack-rest-client/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..376fa58
--- /dev/null
+++ b/modules/semrack-rest-client/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,9 @@
+name: Semrack Rest Client
+#description: Do something useful.
+metadata:
+# keywords:
+# - semrack-rest-client
+# guide: ... # To create and publish this guide, see https://github.com/quarkiverse/quarkiverse/wiki#documenting-your-extension
+# categories:
+# - "miscellaneous"
+# status: "preview"
diff --git a/modules/semrack-rest-client/runtime/src/main/resources/application.properties b/modules/semrack-rest-client/runtime/src/main/resources/application.properties
new file mode 100644
index 0000000..be4eecf
--- /dev/null
+++ b/modules/semrack-rest-client/runtime/src/main/resources/application.properties
@@ -0,0 +1,2 @@
+semrack.rest.client.url=http://localhost:8080/semrack
+quarkus.rest-client.semrack-api.url=semrack.rest.client.url
diff --git a/modules/semrack-storage-postgres/deployment/src/test/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorageTest.java b/modules/semrack-storage-postgres/deployment/src/test/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorageTest.java
index dc34d37..33452fd 100644
--- a/modules/semrack-storage-postgres/deployment/src/test/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorageTest.java
+++ b/modules/semrack-storage-postgres/deployment/src/test/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorageTest.java
@@ -1,6 +1,6 @@
package fr.codeanddata.semrack.storage.postgres.storage;
-import fr.codeanddata.semrack.core.models.StorageGet;
+import fr.codeanddata.semrack.models.StorageGet;
import io.quarkus.hibernate.reactive.panache.Panache;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.vertx.RunOnVertxContext;
diff --git a/modules/semrack-storage-postgres/pom.xml b/modules/semrack-storage-postgres/pom.xml
index 419d3c8..5e7bb83 100644
--- a/modules/semrack-storage-postgres/pom.xml
+++ b/modules/semrack-storage-postgres/pom.xml
@@ -4,9 +4,9 @@
4.0.0
fr.codeanddata.semrack
- semrack-parent
+ semrack-bom
1.0-SNAPSHOT
- ../../pom.xml
+ ../../bom/pom.xml
semrack-storage-postgres-parent
Semrack Storage Postgres - Parent
diff --git a/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/entities/SemrackDocumentEntity.java b/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/entities/SemrackDocumentEntity.java
index 849b695..03679a4 100644
--- a/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/entities/SemrackDocumentEntity.java
+++ b/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/entities/SemrackDocumentEntity.java
@@ -1,6 +1,6 @@
package fr.codeanddata.semrack.storage.postgres.entities;
-import fr.codeanddata.semrack.core.models.Document;
+import fr.codeanddata.semrack.models.Document;
import io.quarkus.hibernate.reactive.panache.PanacheEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
diff --git a/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorage.java b/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorage.java
index 0978921..28d69c3 100644
--- a/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorage.java
+++ b/modules/semrack-storage-postgres/runtime/src/main/java/fr/codeanddata/semrack/storage/postgres/storage/JpaStorage.java
@@ -2,9 +2,9 @@ package fr.codeanddata.semrack.storage.postgres.storage;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
-import fr.codeanddata.semrack.core.Storage;
-import fr.codeanddata.semrack.core.models.Document;
-import fr.codeanddata.semrack.core.models.StorageGet;
+import fr.codeanddata.semrack.Storage;
+import fr.codeanddata.semrack.models.Document;
+import fr.codeanddata.semrack.models.StorageGet;
import fr.codeanddata.semrack.core.utils.UIDGenerator;
import fr.codeanddata.semrack.storage.postgres.entities.SemrackDocumentEntity;
import io.quarkus.hibernate.reactive.panache.PanacheRepository;
diff --git a/pom.xml b/pom.xml
index 38876e5..8ec496b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,157 +6,18 @@
semrack-parent
1.0-SNAPSHOT
pom
+ Parent
+ bom
+ domain
modules/semrack-core
modules/semrack-index-postgres
modules/semrack-storage-postgres
modules/semrack-api-rest
-
+ modules/semrack-rest-client
-
-
- 3.14.0
- 21
- UTF-8
- UTF-8
- quarkus-bom
- io.quarkus.platform
- ${quarkus.version}
- true
- 3.5.3
-
-
- 1.16.0
- 2.9.0
- 1.18.38
- 1.6.3
- 3.29.4
- ${project.version}
-
-
-
-
-
- ${quarkus.platform.group-id}
- ${quarkus.platform.artifact-id}
- ${quarkus.platform.version}
- pom
- import
-
-
- commons-codec
- commons-codec
- ${commons-codec.version}
-
-
- org.mapstruct
- mapstruct
- ${org.mapstruct.version}
-
-
- org.projectlombok
- lombok
- ${lombok.version}
- provided
-
-
-
-
- fr.codeanddata.semrack
- semrack-core
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-core-testing
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-core-deployment
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-index-postgres
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-index-postgres-deployment
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-storage-postgres
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-storage-postgres-deployment
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-api-rest
- ${semrack.version}
-
-
- fr.codeanddata.semrack
- semrack-api-rest-deployment
- ${semrack.version}
-
-
- com.jayway.jsonpath
- json-path
- ${jsonpath.version}
-
-
-
-
-
-
-
-
- io.quarkus
- quarkus-maven-plugin
- ${quarkus.version}
-
-
- maven-surefire-plugin
- ${surefire-plugin.version}
-
-
- org.jboss.logmanager.LogManager
- ${maven.home}
- ${settings.localRepository}
-
-
-
-
- maven-failsafe-plugin
- ${failsafe-plugin.version}
-
-
- org.jboss.logmanager.LogManager
- ${maven.home}
- ${settings.localRepository}
-
-
-
-
- maven-compiler-plugin
- ${compiler-plugin.version}
-
- true
-
-
-
-
-
-
gitea