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> { return parse("", o); } - public enum PathTypes { - UNKNOWN, - STRING, - NUMBER, - BOOLEAN, - LIST, - OBJECT - } - List parse(String basePath, Object data) { final List paths = new ArrayList<>(); diff --git a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/UIDGenerator.java b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/UIDGenerator.java index 4c840f3..8a30ddf 100644 --- a/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/UIDGenerator.java +++ b/modules/semrack-core/runtime/src/main/java/fr/codeanddata/semrack/core/utils/UIDGenerator.java @@ -1,6 +1,6 @@ package fr.codeanddata.semrack.core.utils; -import fr.codeanddata.semrack.core.models.Document; +import fr.codeanddata.semrack.models.Document; import jakarta.enterprise.context.ApplicationScoped; import org.apache.commons.codec.digest.DigestUtils; diff --git a/modules/semrack-core/testing/pom.xml b/modules/semrack-core/testing/pom.xml index fc22389..2b9bd9c 100644 --- a/modules/semrack-core/testing/pom.xml +++ b/modules/semrack-core/testing/pom.xml @@ -16,6 +16,10 @@ io.quarkus quarkus-arc + + 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