From 8214ec00699e7fdcc352ff3738f05b2960e0250c Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Wed, 18 Jan 2023 10:23:45 -0300 Subject: [PATCH 01/11] fix: upgrade quarkus --- Dockerfile.spring | 34 +++++++++++++++ README.md | 2 +- acceptance-test/pom.xml | 23 +++++++++- .../atdd/DefaultContainerStarterTest.java | 1 + app/spring-app/pom.xml | 23 +++++++--- .../config/WebJerseyConfiguration.java | 22 +++++++++- app/spring-app/src/main/resources/logback.xml | 42 +++++++++++++++++++ pom.xml | 18 +++----- 8 files changed, 143 insertions(+), 22 deletions(-) create mode 100644 Dockerfile.spring create mode 100644 app/spring-app/src/main/resources/logback.xml diff --git a/Dockerfile.spring b/Dockerfile.spring new file mode 100644 index 0000000..8f2f444 --- /dev/null +++ b/Dockerfile.spring @@ -0,0 +1,34 @@ +FROM openjdk:17.0.2 + +ARG RUN_JAVA_VERSION=1.3.8 +ENV FLYWAY_VERSION 7.5.2 +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' + +# Install java and the run-java script +# Also set up permissions for user `1001` +RUN microdnf update \ + && microdnf install curl ca-certificates tar gzip \ + && microdnf clean all \ + && mkdir /deployments \ + && mkdir /flyway \ + && chown 1001 /deployments \ + && chmod "g+rwX" /deployments \ + && chown 1001:root /deployments \ + && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ + && chown 1001 /deployments/run-java.sh \ + && chmod 540 /deployments/run-java.sh + +# Install and configure Flyway +RUN curl https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${FLYWAY_VERSION}/flyway-commandline-${FLYWAY_VERSION}.tar.gz -o /flyway/flyway-commandline-${FLYWAY_VERSION}.tar.gz \ + && tar -xzf /flyway/flyway-commandline-${FLYWAY_VERSION}.tar.gz --strip-components=1 -C /flyway \ + && rm /flyway/flyway-commandline-${FLYWAY_VERSION}.tar.gz \ + && chown 1001 /flyway/flyway \ + && chmod 540 /flyway/flyway + +COPY app/spring-app/target/*.jar /deployments/app.jar +COPY resources/flyway/db/migration /flyway/sql + +EXPOSE 8080 +USER 1001 + +ENTRYPOINT [ "/deployments/run-java.sh" ] diff --git a/README.md b/README.md index ffcb994..bb08181 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ Fornecendo toda infraestrutura necessária para o desenvolvedor. ### Requerido -- Java 11+ +- Java 17+ - Maven 3+ - docker - docker-compose diff --git a/acceptance-test/pom.xml b/acceptance-test/pom.xml index e927a61..6c0d446 100644 --- a/acceptance-test/pom.xml +++ b/acceptance-test/pom.xml @@ -90,6 +90,27 @@ + + + quarkus + + true + + + Dockerfile + + + + spring + + false + + + Dockerfile.spring + + + + @@ -112,7 +133,7 @@ dockerfile ${project.parent.basedir} - ${project.parent.basedir}/Dockerfile + ${project.parent.basedir}/${dockerfile} diff --git a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java index 3b023cd..6e72f75 100644 --- a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java +++ b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java @@ -66,6 +66,7 @@ private static GenericContainer buildAppContainer(final Startable... dependsO .withEnv("MYSQL_PASSWORD", "test") .withEnv("MYSQL_URL", "jdbc:mysql://testdb:" + MySQLContainer.MYSQL_PORT + "/test?autoReconnect=true&useSSL=false") .withExposedPorts(8080) + //TODO: change to: '/actuator/health' if you use spring .waitingFor(Wait.forHttp("/q/health/ready").forStatusCode(200)) .withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("APP_CONTAINER"))); } diff --git a/app/spring-app/pom.xml b/app/spring-app/pom.xml index 046c32b..4e87147 100644 --- a/app/spring-app/pom.xml +++ b/app/spring-app/pom.xml @@ -39,6 +39,10 @@ org.springframework.boot spring-boot-starter-jersey + + org.springframework.boot + spring-boot-starter-aop + ${project.groupId} jaxrs-controller-v1 @@ -64,14 +68,24 @@ org.springframework.boot spring-boot-starter-actuator + + io.micrometer + micrometer-core + io.micrometer micrometer-registry-prometheus + + + ch.qos.logback + logback-core + + - org.springframework.boot - spring-boot-starter-test - test + net.logstash.logback + logstash-logback-encoder + ${logstash-logback-encoder-version} @@ -81,6 +95,7 @@ org.springframework.boot spring-boot-maven-plugin + ${spring-boot.version} br.com.helpdev.SpringSampleApplication @@ -88,7 +103,6 @@ ${project.basedir}/src/layers.xml - @@ -96,7 +110,6 @@ - diff --git a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java index ec6a83d..a8d2d1b 100644 --- a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java +++ b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java @@ -1,12 +1,30 @@ package br.com.helpdev.config; +import java.util.Objects; +import java.util.stream.Collectors; +import javax.ws.rs.Path; +import javax.ws.rs.ext.Provider; import org.glassfish.jersey.server.ResourceConfig; -import org.springframework.stereotype.Component; +import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.type.filter.AnnotationTypeFilter; +import org.springframework.util.ClassUtils; -@Component +@Configuration public class WebJerseyConfiguration extends ResourceConfig { public WebJerseyConfiguration() { packages("br.com.helpdev.controller"); + var scanner = new ClassPathScanningCandidateComponentProvider(false); + scanner.addIncludeFilter(new AnnotationTypeFilter(Provider.class)); + scanner.addIncludeFilter(new AnnotationTypeFilter(Path.class)); + registerClasses( + scanner.findCandidateComponents("br.com.helpdev.controller").stream() + .map( + beanDefinition -> + ClassUtils.resolveClassName( + Objects.requireNonNull(beanDefinition.getBeanClassName()), + getClassLoader())) + .collect(Collectors.toSet())); } } diff --git a/app/spring-app/src/main/resources/logback.xml b/app/spring-app/src/main/resources/logback.xml new file mode 100644 index 0000000..4d84cb2 --- /dev/null +++ b/app/spring-app/src/main/resources/logback.xml @@ -0,0 +1,42 @@ + + + + + + + ts + UTC + + + logger + + + severity + + + thread + + + + false + + + stack + + + message + + + + + + + %d{HH:mm:ss.SSS} [%X{traceId},%X{spanId}] %X{external.id} [%t] %-5level %logger{36} - %msg%n + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index d853a2b..777035b 100644 --- a/pom.xml +++ b/pom.xml @@ -102,7 +102,11 @@ 2.32 1.18.20 - 1.7.30 + + 1.7.36 + 1.2.3 + 6.6 + 4.3.3 2.13.4.2 2.14.1 @@ -292,18 +296,6 @@ ${testcontainers.version} test - - com.jparams - to-string-verifier - ${to-string-verifier.version} - test - - - nl.jqno.equalsverifier - equalsverifier - ${equals-verifier.version} - test - com.github.javafaker javafaker From 3614e3c9d9794cbb1fb8df5f38e659c75f28d285 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Wed, 18 Jan 2023 12:01:57 -0300 Subject: [PATCH 02/11] fix: web jersey --- acceptance-test/pom.xml | 2 +- .../atdd/DefaultContainerStarterTest.java | 2 +- adapter/input/jaxrs-controller-v1/pom.xml | 2 +- adapter/output/jpa-mysql-repository/pom.xml | 2 +- .../output/restclient-http-services/pom.xml | 2 +- app/quarkus-app/pom.xml | 2 +- .../src/main/resources/application.properties | 6 ++--- app/spring-app/pom.xml | 22 ++++++++-------- app/spring-app/src/layers.xml | 6 ++++- .../com/helpdev/SpringSampleApplication.java | 2 ++ .../config/WebJerseyConfiguration.java | 21 +++++++--------- .../src/main/resources/application.properties | 1 + core/domain/pom.xml | 2 +- core/use-case/pom.xml | 2 +- pom.xml | 25 +++---------------- 15 files changed, 43 insertions(+), 56 deletions(-) diff --git a/acceptance-test/pom.xml b/acceptance-test/pom.xml index 6c0d446..82f4ccf 100644 --- a/acceptance-test/pom.xml +++ b/acceptance-test/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT 4.0.0 diff --git a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java index 6e72f75..5c3e0ec 100644 --- a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java +++ b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java @@ -67,7 +67,7 @@ private static GenericContainer buildAppContainer(final Startable... dependsO .withEnv("MYSQL_URL", "jdbc:mysql://testdb:" + MySQLContainer.MYSQL_PORT + "/test?autoReconnect=true&useSSL=false") .withExposedPorts(8080) //TODO: change to: '/actuator/health' if you use spring - .waitingFor(Wait.forHttp("/q/health/ready").forStatusCode(200)) + .waitingFor(Wait.forHttp("/actuator/health").forStatusCode(200)) .withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("APP_CONTAINER"))); } diff --git a/adapter/input/jaxrs-controller-v1/pom.xml b/adapter/input/jaxrs-controller-v1/pom.xml index 7bf8b9c..f05c800 100644 --- a/adapter/input/jaxrs-controller-v1/pom.xml +++ b/adapter/input/jaxrs-controller-v1/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT ../../../pom.xml 4.0.0 diff --git a/adapter/output/jpa-mysql-repository/pom.xml b/adapter/output/jpa-mysql-repository/pom.xml index deaad9b..111c5e9 100644 --- a/adapter/output/jpa-mysql-repository/pom.xml +++ b/adapter/output/jpa-mysql-repository/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT ../../../pom.xml 4.0.0 diff --git a/adapter/output/restclient-http-services/pom.xml b/adapter/output/restclient-http-services/pom.xml index 75af23b..6c8716b 100644 --- a/adapter/output/restclient-http-services/pom.xml +++ b/adapter/output/restclient-http-services/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT ../../../pom.xml 4.0.0 diff --git a/app/quarkus-app/pom.xml b/app/quarkus-app/pom.xml index f129f13..9c02e75 100644 --- a/app/quarkus-app/pom.xml +++ b/app/quarkus-app/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/app/quarkus-app/src/main/resources/application.properties b/app/quarkus-app/src/main/resources/application.properties index 03c0952..b05e4af 100644 --- a/app/quarkus-app/src/main/resources/application.properties +++ b/app/quarkus-app/src/main/resources/application.properties @@ -1,12 +1,12 @@ +# DI use-case +quarkus.index-dependency.use-case.group-id=br.com.helpdev +quarkus.index-dependency.use-case.artifact-id=use-case # DI output quarkus.index-dependency.restclient-http-services.group-id=br.com.helpdev quarkus.index-dependency.restclient-http-services.artifact-id=restclient-http-services # quarkus.index-dependency.jpa-mysql-repository.group-id=br.com.helpdev quarkus.index-dependency.jpa-mysql-repository.artifact-id=jpa-mysql-repository -# DI use-case -quarkus.index-dependency.use-case.group-id=br.com.helpdev -quarkus.index-dependency.use-case.artifact-id=use-case # DI input quarkus.index-dependency.jaxrs-controller-v1.group-id=br.com.helpdev quarkus.index-dependency.jaxrs-controller-v1.artifact-id=jaxrs-controller-v1 diff --git a/app/spring-app/pom.xml b/app/spring-app/pom.xml index 4e87147..beefe50 100644 --- a/app/spring-app/pom.xml +++ b/app/spring-app/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT ../../pom.xml 4.0.0 @@ -31,6 +31,13 @@ pom import + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + @@ -41,11 +48,7 @@ org.springframework.boot - spring-boot-starter-aop - - - ${project.groupId} - jaxrs-controller-v1 + spring-boot-starter-data-jpa ${project.groupId} @@ -56,8 +59,8 @@ jpa-mysql-repository - org.springframework.boot - spring-boot-starter-data-jpa + ${project.groupId} + jaxrs-controller-v1 mysql @@ -81,7 +84,6 @@ ch.qos.logback logback-core - net.logstash.logback logstash-logback-encoder @@ -90,12 +92,10 @@ - spring-application org.springframework.boot spring-boot-maven-plugin - ${spring-boot.version} br.com.helpdev.SpringSampleApplication diff --git a/app/spring-app/src/layers.xml b/app/spring-app/src/layers.xml index f318dbb..a8fd2ab 100644 --- a/app/spring-app/src/layers.xml +++ b/app/spring-app/src/layers.xml @@ -12,12 +12,16 @@ *:*:*SNAPSHOT + + br.com.helpdev:*:* + dependencies spring-boot-loader + internal-dependencies snapshot-dependencies application - + \ No newline at end of file diff --git a/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java b/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java index 6c0e298..c68b138 100644 --- a/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java +++ b/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java @@ -1,11 +1,13 @@ package br.com.helpdev; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication( scanBasePackages = {"br.com.helpdev"} ) +@EnableAutoConfiguration public class SpringSampleApplication { public static void main(String[] args) { diff --git a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java index a8d2d1b..e4ae82b 100644 --- a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java +++ b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java @@ -1,30 +1,27 @@ package br.com.helpdev.config; -import java.util.Objects; -import java.util.stream.Collectors; import javax.ws.rs.Path; import javax.ws.rs.ext.Provider; +import lombok.extern.slf4j.Slf4j; import org.glassfish.jersey.server.ResourceConfig; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import org.springframework.context.annotation.Configuration; import org.springframework.core.type.filter.AnnotationTypeFilter; -import org.springframework.util.ClassUtils; @Configuration +@Slf4j public class WebJerseyConfiguration extends ResourceConfig { public WebJerseyConfiguration() { - packages("br.com.helpdev.controller"); var scanner = new ClassPathScanningCandidateComponentProvider(false); scanner.addIncludeFilter(new AnnotationTypeFilter(Provider.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(Path.class)); - registerClasses( - scanner.findCandidateComponents("br.com.helpdev.controller").stream() - .map( - beanDefinition -> - ClassUtils.resolveClassName( - Objects.requireNonNull(beanDefinition.getBeanClassName()), - getClassLoader())) - .collect(Collectors.toSet())); + scanner.findCandidateComponents("br.com.helpdev.controller").forEach(beanDefinition -> { + try { + register(Class.forName(beanDefinition.getBeanClassName())); + } catch (ClassNotFoundException e) { + log.warn("Failed to register: {}", beanDefinition.getBeanClassName()); + } + }); } } diff --git a/app/spring-app/src/main/resources/application.properties b/app/spring-app/src/main/resources/application.properties index 75de15a..0822a2c 100644 --- a/app/spring-app/src/main/resources/application.properties +++ b/app/spring-app/src/main/resources/application.properties @@ -1,4 +1,5 @@ spring.jpa.hibernate.ddl-auto=update +spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect spring.datasource.url=${MYSQL_URL:jdbc:mysql://localhost:3306/sample} spring.datasource.username=${MYSQL_USER:user} spring.datasource.password=${MYSQL_PASSWORD:pass123} diff --git a/core/domain/pom.xml b/core/domain/pom.xml index 6d710bc..5f37350 100644 --- a/core/domain/pom.xml +++ b/core/domain/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/core/use-case/pom.xml b/core/use-case/pom.xml index 577e60c..132a0ba 100644 --- a/core/use-case/pom.xml +++ b/core/use-case/pom.xml @@ -5,7 +5,7 @@ modular-architecture br.com.helpdev - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/pom.xml b/pom.xml index 777035b..85eef44 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ modular-architecture pom - 0.0.3-SNAPSHOT + 0.0.4-SNAPSHOT @@ -35,7 +35,8 @@ spring - 2.7.7 + 2.7.1 + 2021.0.3 @@ -72,7 +73,6 @@ 3.10.1 3.1.1 - 3.3.0 4.5.3.0 4.5.3 8.39 @@ -101,7 +101,7 @@ 2.32 - 1.18.20 + 1.18.24 1.7.36 1.2.3 @@ -110,7 +110,6 @@ 4.3.3 2.13.4.2 2.14.1 - 2.3.0 @@ -187,11 +186,6 @@ ${microprofile-rest-api.version} provided - - org.modelmapper - modelmapper - ${modelmapper.version} - com.fasterxml.jackson.core jackson-databind @@ -331,17 +325,6 @@ - - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${java.version} - ${java.version} - - -parameters - - - org.apache.maven.plugins From cf133b527ce76bd76b9a2526fd2453c05c2376e6 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Wed, 18 Jan 2023 13:08:22 -0300 Subject: [PATCH 03/11] Update DefaultContainerStarterTest.java --- .../java/br/com/helpdev/atdd/DefaultContainerStarterTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java index 5c3e0ec..6e72f75 100644 --- a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java +++ b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java @@ -67,7 +67,7 @@ private static GenericContainer buildAppContainer(final Startable... dependsO .withEnv("MYSQL_URL", "jdbc:mysql://testdb:" + MySQLContainer.MYSQL_PORT + "/test?autoReconnect=true&useSSL=false") .withExposedPorts(8080) //TODO: change to: '/actuator/health' if you use spring - .waitingFor(Wait.forHttp("/actuator/health").forStatusCode(200)) + .waitingFor(Wait.forHttp("/q/health/ready").forStatusCode(200)) .withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("APP_CONTAINER"))); } From f876043d5373a4d695078d036dc073a127beba77 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Wed, 18 Jan 2023 13:24:04 -0300 Subject: [PATCH 04/11] fix: web jersey --- .docker-compose/spring-app.yml | 6 +++--- README.md | 19 +++++++++++++++++ .../controller/dto/ChatResponseDto.java | 4 ++++ .../com/helpdev/controller/dto/ErrorDto.java | 6 ++++-- .../controller/dto/MessageCreateDto.java | 6 ++++-- .../controller/dto/MessageResponseDto.java | 4 ++++ .../helpdev/controller/dto/RecipientDto.java | 6 ++++-- .../com/helpdev/SpringSampleApplication.java | 2 -- .../helpdev/config/ObjectMapperConfig.java | 18 ++++++++++++++++ .../config/WebJerseyConfiguration.java | 21 +++++++++++-------- .../FakeProtocolGenerator.java | 16 ++++++++++++++ pom.xml | 7 ++++--- 12 files changed, 92 insertions(+), 23 deletions(-) create mode 100644 app/spring-app/src/main/java/br/com/helpdev/config/ObjectMapperConfig.java create mode 100644 app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java diff --git a/.docker-compose/spring-app.yml b/.docker-compose/spring-app.yml index 6448136..bd8b0ca 100644 --- a/.docker-compose/spring-app.yml +++ b/.docker-compose/spring-app.yml @@ -1,4 +1,4 @@ -version: '3.8' +version: '3.3' services: @@ -7,7 +7,7 @@ services: ports: - 8080:8080 environment: - MYSQL_URL: jdbc:mysql://db:3306/sample + MYSQL_URL: jdbc:mysql://sampledb:3306/sample MYSQL_USER: user - MYSQL_PASSWORD: pass + MYSQL_PASSWORD: pass123 diff --git a/README.md b/README.md index bb08181..7e69492 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,13 @@ mvn clean install ``` #### Spring boot + +Nota: O projeto com Spring Boot não está finalizado. No caso o profile do Spring está sem o módulo +de output: `restclient-http-service`, pois o Spring Boot não tem uma implementação para o microprofile-restclient +no caso, o ideal seria a criação de um modulo com o Feign para implementar a porta do use-case: `ProtocolGeneratorClient` +Porém, atualmente para o projeto rodar, essa porta foi implementada como um fake no modulo da app `spring-app` no seguinte package: ` br.com.helpdev.protocolgenerator`. +Mas o módulo de `acceptance-test` irá falhar, pois o mesmo faz um mock desse serviço; + ```bash mvn clean install -Pspring ``` @@ -105,6 +112,11 @@ mvn clean install -Pspring docker build -t helpdev/app-quarkus-jvm . ``` +## Gerando imagem docker com o Spring +```bash +docker build -t helpdev/app-spring-jvm . +``` + ## Iniciando serviço *O comando sobe toda infraestrutura necessária para a aplicação* @@ -113,10 +125,17 @@ docker-compose -f .docker-compose/stack.yml up ``` *Agora podemos iniciar nossa aplicação* + +Quarkus: ```bash docker-compose -f .docker-compose/quarkus-app.yml up ``` +Spring: +```bash +docker-compose -f .docker-compose/spring-app.yml up +``` + ## Consumindo API

diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java index 03e3b9d..0f2500d 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java +++ b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java @@ -2,11 +2,15 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.time.ZonedDateTime; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@AllArgsConstructor +@NoArgsConstructor public class ChatResponseDto { private StatusResponseDto status; diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java index 3b10e76..466df68 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java +++ b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java @@ -1,14 +1,16 @@ package br.com.helpdev.controller.dto; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.ToString; @Data @Builder -@EqualsAndHashCode -@ToString +@AllArgsConstructor +@NoArgsConstructor public class ErrorDto { private String message; diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java index e82d44c..7d07e61 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java +++ b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java @@ -5,15 +5,17 @@ import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.ToString; @Data @Builder -@ToString -@EqualsAndHashCode +@AllArgsConstructor +@NoArgsConstructor public class MessageCreateDto { @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX") diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java index f1c5375..434dd82 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java +++ b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java @@ -3,11 +3,15 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.time.ZonedDateTime; import java.util.Collection; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@AllArgsConstructor +@NoArgsConstructor public class MessageResponseDto { private Long id; diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java index 64c93f4..c3e9b2f 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java +++ b/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java @@ -2,15 +2,17 @@ import br.com.helpdev.domain.Recipient; import javax.validation.constraints.NotBlank; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.ToString; @Data -@EqualsAndHashCode -@ToString @Builder +@AllArgsConstructor +@NoArgsConstructor public class RecipientDto { @NotBlank(message = "Recipient name can't be null!") diff --git a/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java b/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java index c68b138..6c0e298 100644 --- a/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java +++ b/app/spring-app/src/main/java/br/com/helpdev/SpringSampleApplication.java @@ -1,13 +1,11 @@ package br.com.helpdev; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication( scanBasePackages = {"br.com.helpdev"} ) -@EnableAutoConfiguration public class SpringSampleApplication { public static void main(String[] args) { diff --git a/app/spring-app/src/main/java/br/com/helpdev/config/ObjectMapperConfig.java b/app/spring-app/src/main/java/br/com/helpdev/config/ObjectMapperConfig.java new file mode 100644 index 0000000..0abf383 --- /dev/null +++ b/app/spring-app/src/main/java/br/com/helpdev/config/ObjectMapperConfig.java @@ -0,0 +1,18 @@ +package br.com.helpdev.config; + +import br.com.helpdev.controller.config.CustomObjectMapperConfig; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; + +@Configuration +public class ObjectMapperConfig { + + @Bean + public ObjectMapper objectMapper(final Jackson2ObjectMapperBuilder builder) { + final var objectMapper = builder.build(); + CustomObjectMapperConfig.customize(objectMapper); + return objectMapper; + } +} diff --git a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java index e4ae82b..050623c 100644 --- a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java +++ b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java @@ -1,27 +1,30 @@ package br.com.helpdev.config; +import java.util.Objects; +import java.util.stream.Collectors; import javax.ws.rs.Path; import javax.ws.rs.ext.Provider; -import lombok.extern.slf4j.Slf4j; import org.glassfish.jersey.server.ResourceConfig; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import org.springframework.context.annotation.Configuration; import org.springframework.core.type.filter.AnnotationTypeFilter; +import org.springframework.util.ClassUtils; @Configuration -@Slf4j public class WebJerseyConfiguration extends ResourceConfig { public WebJerseyConfiguration() { var scanner = new ClassPathScanningCandidateComponentProvider(false); scanner.addIncludeFilter(new AnnotationTypeFilter(Provider.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(Path.class)); - scanner.findCandidateComponents("br.com.helpdev.controller").forEach(beanDefinition -> { - try { - register(Class.forName(beanDefinition.getBeanClassName())); - } catch (ClassNotFoundException e) { - log.warn("Failed to register: {}", beanDefinition.getBeanClassName()); - } - }); + registerClasses( + scanner.findCandidateComponents("br.com.helpdev.controller").stream() + .map( + beanDefinition -> + ClassUtils.resolveClassName( + Objects.requireNonNull(beanDefinition.getBeanClassName()), + getClassLoader())) + .collect(Collectors.toSet())); + } } diff --git a/app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java b/app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java new file mode 100644 index 0000000..edcf75e --- /dev/null +++ b/app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java @@ -0,0 +1,16 @@ +package br.com.helpdev.protocolgenerator; + +import br.com.helpdev.usecase.port.ProtocolGeneratorClient; +import java.util.Random; +import org.springframework.stereotype.Component; + +@Component +public class FakeProtocolGenerator implements ProtocolGeneratorClient { + + public static final Random RANDOM = new Random(); + + @Override + public String generateNewProtocol() { + return "PROT-" + RANDOM.nextInt(Integer.MAX_VALUE); + } +} diff --git a/pom.xml b/pom.xml index 85eef44..7ece6e9 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,8 @@ core/use-case adapter/input/jaxrs-controller-v1 adapter/output/jpa-mysql-repository - adapter/output/restclient-http-services + + app/spring-app acceptance-test @@ -88,7 +89,7 @@ 3.22.0 1.17.1 1.0.2 - 2.32 + 2.35 2.0.2 @@ -100,7 +101,7 @@ 2.3.1 - 2.32 + 2.35 1.18.24 1.7.36 From bf8ab348432b322687bed6ac447fbc0ee4279a10 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Wed, 18 Jan 2023 22:05:25 -0300 Subject: [PATCH 05/11] feat: resolv spring build with feign module --- .github/workflows/maven.yml | 5 +- Dockerfile | 1 + README.md | 7 +- acceptance-test/pom.xml | 5 + .../atdd/DefaultContainerStarterTest.java | 8 +- adapter/output/feign-http-services/pom.xml | 95 +++++++++++++++++++ .../feign/ProtocolGeneratorClientImpl.java | 27 ++++++ .../feign/client/RandomDataApiClient.java | 14 +++ .../feign/client/dto/RandomIdNumberDto.java | 14 +++ .../config/FeignContractConfiguration.java | 21 ++++ .../ProtocolGeneratorClientImplTest.java | 37 ++++++++ .../FeignContractConfigurationTest.java | 24 +++++ app/spring-app/pom.xml | 5 +- .../FakeProtocolGenerator.java | 16 ---- .../src/main/resources/application.properties | 2 + pom.xml | 8 +- 16 files changed, 261 insertions(+), 28 deletions(-) create mode 100644 adapter/output/feign-http-services/pom.xml create mode 100644 adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java create mode 100644 adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java create mode 100644 adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/dto/RandomIdNumberDto.java create mode 100644 adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java create mode 100644 adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImplTest.java create mode 100644 adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java delete mode 100644 app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index cb55666..e0d4582 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -33,5 +33,8 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - - name: Run Tests + - name: Run Tests with Quarkus (default) run: mvn --batch-mode verify coveralls:report -DrepoToken=${{ secrets.COVERALLS_REPO_TOKEN }} + + - name: Run Tests with Spring Boot + run: mvn --batch-mode verify -Pspring \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index bcd08b3..d618908 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,6 +57,7 @@ RUN curl https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${FLYWAY # Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size. ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" ENV JAVA_APP_JAR="quarkus-run.jar" + COPY app/quarkus-app/target/quarkus-app/ /deployments/ COPY resources/flyway/db/migration /flyway/sql diff --git a/README.md b/README.md index 7e69492..1429c96 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ Fornecendo toda infraestrutura necessária para o desenvolvedor. O framework é definido pelo profile, sendo que o default é do Quarkus. #### Quarkus + ```bash mvn clean install -Pquarkus # or by default: @@ -97,12 +98,6 @@ mvn clean install #### Spring boot -Nota: O projeto com Spring Boot não está finalizado. No caso o profile do Spring está sem o módulo -de output: `restclient-http-service`, pois o Spring Boot não tem uma implementação para o microprofile-restclient -no caso, o ideal seria a criação de um modulo com o Feign para implementar a porta do use-case: `ProtocolGeneratorClient` -Porém, atualmente para o projeto rodar, essa porta foi implementada como um fake no modulo da app `spring-app` no seguinte package: ` br.com.helpdev.protocolgenerator`. -Mas o módulo de `acceptance-test` irá falhar, pois o mesmo faz um mock desse serviço; - ```bash mvn clean install -Pspring ``` diff --git a/acceptance-test/pom.xml b/acceptance-test/pom.xml index 82f4ccf..ef3b60a 100644 --- a/acceptance-test/pom.xml +++ b/acceptance-test/pom.xml @@ -144,6 +144,11 @@ org.apache.maven.plugins maven-failsafe-plugin ${maven-failsafe-plugin.version} + + + ${project.activeProfiles[0].id} + + diff --git a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java index 6e72f75..17c0250 100644 --- a/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java +++ b/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java @@ -22,6 +22,8 @@ abstract class DefaultContainerStarterTest { private static final GenericContainer MYSQL_CONTAINER; private static final Network NETWORK = Network.newNetwork(); protected static final WireMockServer MOCK_SERVER; + private static final String PROFILE_ID_SPRING = "spring"; + public static final String PROP_PROFILE_ID = "profileId"; /* Containers are initialized in static block to create only once in test execution */ static { @@ -66,8 +68,10 @@ private static GenericContainer buildAppContainer(final Startable... dependsO .withEnv("MYSQL_PASSWORD", "test") .withEnv("MYSQL_URL", "jdbc:mysql://testdb:" + MySQLContainer.MYSQL_PORT + "/test?autoReconnect=true&useSSL=false") .withExposedPorts(8080) - //TODO: change to: '/actuator/health' if you use spring - .waitingFor(Wait.forHttp("/q/health/ready").forStatusCode(200)) + .waitingFor(System.getProperty(PROP_PROFILE_ID).equals(PROFILE_ID_SPRING) ? + Wait.forHttp("/actuator/health").forStatusCode(200) : + Wait.forHttp("/q/health/ready").forStatusCode(200) + ) .withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("APP_CONTAINER"))); } diff --git a/adapter/output/feign-http-services/pom.xml b/adapter/output/feign-http-services/pom.xml new file mode 100644 index 0000000..7c4b180 --- /dev/null +++ b/adapter/output/feign-http-services/pom.xml @@ -0,0 +1,95 @@ + + + + modular-architecture + br.com.helpdev + 0.0.4-SNAPSHOT + ../../../pom.xml + + 4.0.0 + + feign-http-services + + + 17 + 17 + **/*Dto.* + **.dto.* + 12.1 + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + javax.ws.rs + javax.ws.rs-api + + + com.fasterxml.jackson.core + jackson-databind + provided + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + io.github.openfeign + feign-jaxrs + ${feign-jaxrs.version} + + + + + br.com.helpdev + use-case + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.mockito + mockito-core + test + + + org.mockito + mockito-junit-jupiter + test + + + org.assertj + assertj-core + test + + + org.slf4j + slf4j-simple + test + + + + \ No newline at end of file diff --git a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java new file mode 100644 index 0000000..4a3e9d2 --- /dev/null +++ b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java @@ -0,0 +1,27 @@ +package br.com.helpdev.output.feign; + + +import br.com.helpdev.output.feign.client.RandomDataApiClient; +import br.com.helpdev.usecase.port.ProtocolGeneratorClient; +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.inject.Named; + +@ApplicationScoped +@Named +public class ProtocolGeneratorClientImpl implements ProtocolGeneratorClient { + + private final RandomDataApiClient randomDataApiClient; + + @Inject + public ProtocolGeneratorClientImpl(final RandomDataApiClient randomDataApiClient) { + this.randomDataApiClient = randomDataApiClient; + } + + @Override + public String generateNewProtocol() { + /* Generate US-SSN to simulate protocol */ + return randomDataApiClient.generate().getValidUsSsn(); + } + +} diff --git a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java new file mode 100644 index 0000000..fbc5e03 --- /dev/null +++ b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java @@ -0,0 +1,14 @@ +package br.com.helpdev.output.feign.client; + +import br.com.helpdev.output.feign.client.dto.RandomIdNumberDto; +import javax.ws.rs.GET; +import javax.ws.rs.Produces; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "random-data-api", url = "${random-data-api.url}", path = "/api/id_number/random_id_number") +public interface RandomDataApiClient { + + @GET + @Produces("application/json") + RandomIdNumberDto generate(); +} diff --git a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/dto/RandomIdNumberDto.java b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/dto/RandomIdNumberDto.java new file mode 100644 index 0000000..74be14e --- /dev/null +++ b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/dto/RandomIdNumberDto.java @@ -0,0 +1,14 @@ +package br.com.helpdev.output.feign.client.dto; + +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import lombok.Data; + +@Data +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +public class RandomIdNumberDto { + private String id; + private String uid; + private String validUsSsn; + private String invalidUsSsn; +} diff --git a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java new file mode 100644 index 0000000..0bce1bc --- /dev/null +++ b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java @@ -0,0 +1,21 @@ +package br.com.helpdev.output.feign.config; + +import feign.Contract; +import feign.jaxrs.JAXRSContract; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@EnableFeignClients( + basePackages = {"br.com.helpdev.output.feign"} +) +public class FeignContractConfiguration { + + @Bean + Contract contract() { + return new JAXRSContract(); + } + +} diff --git a/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImplTest.java b/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImplTest.java new file mode 100644 index 0000000..4084d54 --- /dev/null +++ b/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImplTest.java @@ -0,0 +1,37 @@ +package br.com.helpdev.output.feign; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import br.com.helpdev.output.feign.client.RandomDataApiClient; +import br.com.helpdev.output.feign.client.dto.RandomIdNumberDto; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class ProtocolGeneratorClientImplTest { + + @Mock + private RandomDataApiClient randomDataApiClient; + + @InjectMocks + private ProtocolGeneratorClientImpl protocolGeneratorClient; + + @Test + void shouldGeneratedProtocolWithSuccess() { + final var randomIdNumberDto = mock(RandomIdNumberDto.class); + final var expectedProtocol = "xpto"; + + when(randomDataApiClient.generate()).thenReturn(randomIdNumberDto); + when(randomIdNumberDto.getValidUsSsn()).thenReturn(expectedProtocol); + + final var result = protocolGeneratorClient.generateNewProtocol(); + + Assertions.assertThat(result).isEqualTo(expectedProtocol); + } + +} \ No newline at end of file diff --git a/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java b/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java new file mode 100644 index 0000000..74ee284 --- /dev/null +++ b/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java @@ -0,0 +1,24 @@ +package br.com.helpdev.output.feign.config; + +import static org.assertj.core.api.Assertions.assertThat; + +import feign.jaxrs.JAXRSContract; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class FeignContractConfigurationTest { + @InjectMocks + private FeignContractConfiguration feignContractConfiguration; + + @Test + void shouldGeneratedNonNullJaxRsContract() { + final var contract = feignContractConfiguration.contract(); + + assertThat(contract) + .isInstanceOf(JAXRSContract.class) + .isNotNull(); + } +} \ No newline at end of file diff --git a/app/spring-app/pom.xml b/app/spring-app/pom.xml index beefe50..8fdffe7 100644 --- a/app/spring-app/pom.xml +++ b/app/spring-app/pom.xml @@ -58,6 +58,10 @@ ${project.groupId} jpa-mysql-repository + + ${project.groupId} + feign-http-services + ${project.groupId} jaxrs-controller-v1 @@ -79,7 +83,6 @@ io.micrometer micrometer-registry-prometheus - ch.qos.logback logback-core diff --git a/app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java b/app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java deleted file mode 100644 index edcf75e..0000000 --- a/app/spring-app/src/main/java/br/com/helpdev/protocolgenerator/FakeProtocolGenerator.java +++ /dev/null @@ -1,16 +0,0 @@ -package br.com.helpdev.protocolgenerator; - -import br.com.helpdev.usecase.port.ProtocolGeneratorClient; -import java.util.Random; -import org.springframework.stereotype.Component; - -@Component -public class FakeProtocolGenerator implements ProtocolGeneratorClient { - - public static final Random RANDOM = new Random(); - - @Override - public String generateNewProtocol() { - return "PROT-" + RANDOM.nextInt(Integer.MAX_VALUE); - } -} diff --git a/app/spring-app/src/main/resources/application.properties b/app/spring-app/src/main/resources/application.properties index 0822a2c..0135f96 100644 --- a/app/spring-app/src/main/resources/application.properties +++ b/app/spring-app/src/main/resources/application.properties @@ -6,3 +6,5 @@ spring.datasource.password=${MYSQL_PASSWORD:pass123} management.metrics.enable.all=true management.endpoints.web.exposure.include=* + +random-data-api.url=${RANDOM_DATA_API_URL:https://random-data-api.com} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 7ece6e9..bea2245 100644 --- a/pom.xml +++ b/pom.xml @@ -44,8 +44,7 @@ core/use-case adapter/input/jaxrs-controller-v1 adapter/output/jpa-mysql-repository - - + adapter/output/feign-http-services app/spring-app acceptance-test @@ -149,6 +148,11 @@ restclient-http-services ${project.version} + + ${project.groupId} + feign-http-services + ${project.version} + org.projectlombok lombok From d8d718b9278d11f7b0faace694b31c8d5e3089a6 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Thu, 13 Jul 2023 19:55:04 -0300 Subject: [PATCH 06/11] feat: upgrade versions make quarkus profile build ok --- acceptance-test/pom.xml | 16 ++-- .../pom.xml | 39 +++++---- .../helpdev/controller/MessageController.java | 20 ++--- .../helpdev/controller/OpenApiController.java | 10 +-- .../config/CustomObjectMapperConfig.java | 0 .../controller/dto/ChatResponseDto.java | 0 .../dto/CommunicationChannelDto.java | 0 .../com/helpdev/controller/dto/ErrorDto.java | 2 - .../controller/dto/MessageCreateDto.java | 8 +- .../controller/dto/MessageResponseDto.java | 0 .../helpdev/controller/dto/RecipientDto.java | 5 +- .../controller/dto/StatusResponseDto.java | 0 .../handler/NotFoundExceptionMapper.java | 6 +- .../handler/NotificationExceptionMapper.java | 6 +- .../mapper/ControllerMessageMapper.java | 4 +- .../controller/MessageControllerTest.java | 0 .../controller/OpenApiControllerTest.java | 1 + .../handler/NotFoundExceptionMapperTest.java | 0 .../NotificationExceptionMapperTest.java | 0 .../mapper/ControllerMessageMapperTest.java | 0 adapter/output/feign-http-services/pom.xml | 10 +-- .../feign/ProtocolGeneratorClientImpl.java | 6 +- .../feign/client/RandomDataApiClient.java | 4 +- .../config/FeignContractConfiguration.java | 4 +- .../FeignContractConfigurationTest.java | 8 +- .../output/repository/MessageGateway.java | 6 +- .../output/repository/entity/ChatEntity.java | 22 ++--- .../repository/entity/MessageEntity.java | 24 +++--- .../entity/MessageEntityRepository.java | 10 +-- .../repository/entity/RecipientEntity.java | 4 +- .../repository/mapper/MessageMapper.java | 4 +- .../entity/MessageEntityRepositoryTest.java | 2 +- .../output/restclient-http-services/pom.xml | 4 +- .../ProtocolGeneratorClientImpl.java | 6 +- .../client/RandomDataApiClient.java | 6 +- app/quarkus-app/pom.xml | 4 +- .../helpdev/quarkus/ObjectMapperConfig.java | 2 +- .../src/main/resources/application.properties | 6 +- .../src/test/resources/application.properties | 6 +- app/spring-app/pom.xml | 11 ++- .../config/WebJerseyConfiguration.java | 4 +- .../src/main/resources/application.properties | 3 +- .../usecase/DeleteRequestNotification.java | 6 +- .../usecase/FindRequestNotification.java | 6 +- .../usecase/PushRequestNotification.java | 6 +- pom.xml | 84 +++++++++---------- 46 files changed, 183 insertions(+), 192 deletions(-) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/pom.xml (80%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/MessageController.java (91%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/OpenApiController.java (83%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/config/CustomObjectMapperConfig.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/dto/CommunicationChannelDto.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java (81%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java (80%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java (80%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/dto/StatusResponseDto.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/handler/NotFoundExceptionMapper.java (81%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/handler/NotificationExceptionMapper.java (80%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/main/java/br/com/helpdev/controller/mapper/ControllerMessageMapper.java (97%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/test/java/br/com/helpdev/controller/MessageControllerTest.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/test/java/br/com/helpdev/controller/OpenApiControllerTest.java (99%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/test/java/br/com/helpdev/controller/handler/NotFoundExceptionMapperTest.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/test/java/br/com/helpdev/controller/handler/NotificationExceptionMapperTest.java (100%) rename adapter/input/{jaxrs-controller-v1 => jakarta-controller-v1}/src/test/java/br/com/helpdev/controller/mapper/ControllerMessageMapperTest.java (100%) diff --git a/acceptance-test/pom.xml b/acceptance-test/pom.xml index ef3b60a..9e0e591 100644 --- a/acceptance-test/pom.xml +++ b/acceptance-test/pom.xml @@ -16,16 +16,16 @@ 17 true 3.1.0 - 8.0.30 + 8.0.33 0.38.1 true - 2.35.0 + 3.0.0-beta-10 ${project.groupId} - jaxrs-controller-v1 + jakarta-controller-v1 org.junit.jupiter @@ -73,9 +73,9 @@ rest-assured-all - mysql - mysql-connector-java - ${mysql-connector-java.version} + com.mysql + mysql-connector-j + ${mysql-connector-j.version} com.github.javafaker @@ -84,8 +84,8 @@ com.github.tomakehurst - wiremock-jre8 - ${wiremock-jre8.version} + wiremock + ${wiremock.version} test diff --git a/adapter/input/jaxrs-controller-v1/pom.xml b/adapter/input/jakarta-controller-v1/pom.xml similarity index 80% rename from adapter/input/jaxrs-controller-v1/pom.xml rename to adapter/input/jakarta-controller-v1/pom.xml index f05c800..685766c 100644 --- a/adapter/input/jaxrs-controller-v1/pom.xml +++ b/adapter/input/jakarta-controller-v1/pom.xml @@ -10,13 +10,13 @@ 4.0.0 - jaxrs-controller-v1 + jakarta-controller-v1 17 17 - 2.2.6 - 2.1.5 + 2.2.14 + 2.2.15 @@ -25,19 +25,20 @@ lombok - javax.ws.rs - javax.ws.rs-api + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.servlet + jakarta.servlet-api io.swagger.core.v3 - swagger-core + swagger-core-jakarta ${swagger-core.version} compile - - javax.validation - validation-api - + ${project.groupId} domain @@ -85,32 +86,34 @@ + - io.openapitools.swagger - swagger-maven-plugin + io.swagger.core.v3 + swagger-maven-plugin-jakarta ${swagger-maven-plugin.version} br.com.helpdev.controller - ${basedir}/target/resources/br/com/helpdev/controller - openapi - JSON,YAML + openapi + ${basedir}/target/resources/br/com/helpdev/controller + JSONANDYAML + true - generate-doc compile - generate + resolve + org.apache.maven.plugins maven-resources-plugin - 2.6 + 3.3.1 copy-resources diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/MessageController.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/MessageController.java similarity index 91% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/MessageController.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/MessageController.java index 224c217..6d18846 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/MessageController.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/MessageController.java @@ -13,16 +13,16 @@ import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; -import javax.inject.Inject; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.inject.Inject; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; @Path("/v1/message") @Produces(MediaType.APPLICATION_JSON) diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/OpenApiController.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/OpenApiController.java similarity index 83% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/OpenApiController.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/OpenApiController.java index a0ce4a6..0ed9ab6 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/OpenApiController.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/OpenApiController.java @@ -4,12 +4,12 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.info.Contact; import io.swagger.v3.oas.annotations.info.Info; +import jakarta.inject.Named; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; import java.io.InputStream; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; @Named @Path("/v1/openapi") diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/config/CustomObjectMapperConfig.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/config/CustomObjectMapperConfig.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/config/CustomObjectMapperConfig.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/config/CustomObjectMapperConfig.java diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/ChatResponseDto.java diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/CommunicationChannelDto.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/CommunicationChannelDto.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/CommunicationChannelDto.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/CommunicationChannelDto.java diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java similarity index 81% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java index 466df68..05c9200 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/ErrorDto.java @@ -3,9 +3,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; -import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import lombok.ToString; @Data @Builder diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java similarity index 80% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java index 7d07e61..f322991 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageCreateDto.java @@ -1,16 +1,14 @@ package br.com.helpdev.controller.dto; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import java.time.ZonedDateTime; -import javax.validation.Valid; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; -import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import lombok.ToString; @Data @Builder diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/MessageResponseDto.java diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java similarity index 80% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java index c3e9b2f..ab1c438 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/RecipientDto.java @@ -1,13 +1,10 @@ package br.com.helpdev.controller.dto; -import br.com.helpdev.domain.Recipient; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; -import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import lombok.ToString; @Data @Builder diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/StatusResponseDto.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/StatusResponseDto.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/dto/StatusResponseDto.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/dto/StatusResponseDto.java diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotFoundExceptionMapper.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotFoundExceptionMapper.java similarity index 81% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotFoundExceptionMapper.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotFoundExceptionMapper.java index 910ca1a..0fe2965 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotFoundExceptionMapper.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotFoundExceptionMapper.java @@ -2,9 +2,9 @@ import br.com.helpdev.controller.dto.ErrorDto; import br.com.helpdev.usecase.exception.MessageNotFoundException; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; @Provider public class NotFoundExceptionMapper implements ExceptionMapper { diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotificationExceptionMapper.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotificationExceptionMapper.java similarity index 80% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotificationExceptionMapper.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotificationExceptionMapper.java index 1b10be6..db32f11 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotificationExceptionMapper.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/handler/NotificationExceptionMapper.java @@ -2,9 +2,9 @@ import br.com.helpdev.controller.dto.ErrorDto; import br.com.helpdev.domain.exception.NotificationException; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; @Provider public class NotificationExceptionMapper implements ExceptionMapper { diff --git a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/mapper/ControllerMessageMapper.java b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/mapper/ControllerMessageMapper.java similarity index 97% rename from adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/mapper/ControllerMessageMapper.java rename to adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/mapper/ControllerMessageMapper.java index f17d8e1..5952198 100644 --- a/adapter/input/jaxrs-controller-v1/src/main/java/br/com/helpdev/controller/mapper/ControllerMessageMapper.java +++ b/adapter/input/jakarta-controller-v1/src/main/java/br/com/helpdev/controller/mapper/ControllerMessageMapper.java @@ -13,11 +13,11 @@ import br.com.helpdev.domain.vo.MessageBody; import br.com.helpdev.domain.vo.MessageId; import br.com.helpdev.domain.vo.Phone; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Named; import java.util.Collection; import java.util.Collections; import java.util.stream.Collectors; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Named; @Named @ApplicationScoped diff --git a/adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/MessageControllerTest.java b/adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/MessageControllerTest.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/MessageControllerTest.java rename to adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/MessageControllerTest.java diff --git a/adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/OpenApiControllerTest.java b/adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/OpenApiControllerTest.java similarity index 99% rename from adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/OpenApiControllerTest.java rename to adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/OpenApiControllerTest.java index 3fd0ac5..f9b338f 100644 --- a/adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/OpenApiControllerTest.java +++ b/adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/OpenApiControllerTest.java @@ -1,3 +1,4 @@ + package br.com.helpdev.controller; import static org.assertj.core.api.Assertions.assertThat; diff --git a/adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotFoundExceptionMapperTest.java b/adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotFoundExceptionMapperTest.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotFoundExceptionMapperTest.java rename to adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotFoundExceptionMapperTest.java diff --git a/adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotificationExceptionMapperTest.java b/adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotificationExceptionMapperTest.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotificationExceptionMapperTest.java rename to adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/handler/NotificationExceptionMapperTest.java diff --git a/adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/mapper/ControllerMessageMapperTest.java b/adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/mapper/ControllerMessageMapperTest.java similarity index 100% rename from adapter/input/jaxrs-controller-v1/src/test/java/br/com/helpdev/controller/mapper/ControllerMessageMapperTest.java rename to adapter/input/jakarta-controller-v1/src/test/java/br/com/helpdev/controller/mapper/ControllerMessageMapperTest.java diff --git a/adapter/output/feign-http-services/pom.xml b/adapter/output/feign-http-services/pom.xml index 7c4b180..e7b38c2 100644 --- a/adapter/output/feign-http-services/pom.xml +++ b/adapter/output/feign-http-services/pom.xml @@ -17,7 +17,7 @@ 17 **/*Dto.* **.dto.* - 12.1 + 12.4 @@ -33,8 +33,8 @@ - javax.ws.rs - javax.ws.rs-api + jakarta.ws.rs + jakarta.ws.rs-api com.fasterxml.jackson.core @@ -49,8 +49,8 @@ io.github.openfeign - feign-jaxrs - ${feign-jaxrs.version} + feign-jakarta + ${feign-jakarta.version} diff --git a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java index 4a3e9d2..d152efa 100644 --- a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java +++ b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/ProtocolGeneratorClientImpl.java @@ -3,9 +3,9 @@ import br.com.helpdev.output.feign.client.RandomDataApiClient; import br.com.helpdev.usecase.port.ProtocolGeneratorClient; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.inject.Named; @ApplicationScoped @Named diff --git a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java index fbc5e03..4ce3862 100644 --- a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java +++ b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/client/RandomDataApiClient.java @@ -1,8 +1,8 @@ package br.com.helpdev.output.feign.client; import br.com.helpdev.output.feign.client.dto.RandomIdNumberDto; -import javax.ws.rs.GET; -import javax.ws.rs.Produces; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Produces; import org.springframework.cloud.openfeign.FeignClient; @FeignClient(name = "random-data-api", url = "${random-data-api.url}", path = "/api/id_number/random_id_number") diff --git a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java index 0bce1bc..a47b1d0 100644 --- a/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java +++ b/adapter/output/feign-http-services/src/main/java/br/com/helpdev/output/feign/config/FeignContractConfiguration.java @@ -1,7 +1,7 @@ package br.com.helpdev.output.feign.config; import feign.Contract; -import feign.jaxrs.JAXRSContract; +import feign.jaxrs.JakartaContract; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -15,7 +15,7 @@ public class FeignContractConfiguration { @Bean Contract contract() { - return new JAXRSContract(); + return new JakartaContract(); } } diff --git a/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java b/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java index 74ee284..4eddd07 100644 --- a/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java +++ b/adapter/output/feign-http-services/src/test/java/br/com/helpdev/output/feign/config/FeignContractConfigurationTest.java @@ -1,13 +1,13 @@ package br.com.helpdev.output.feign.config; -import static org.assertj.core.api.Assertions.assertThat; - -import feign.jaxrs.JAXRSContract; +import feign.jaxrs.JakartaContract; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.junit.jupiter.MockitoExtension; +import static org.assertj.core.api.Assertions.assertThat; + @ExtendWith(MockitoExtension.class) class FeignContractConfigurationTest { @InjectMocks @@ -18,7 +18,7 @@ void shouldGeneratedNonNullJaxRsContract() { final var contract = feignContractConfiguration.contract(); assertThat(contract) - .isInstanceOf(JAXRSContract.class) + .isInstanceOf(JakartaContract.class) .isNotNull(); } } \ No newline at end of file diff --git a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/MessageGateway.java b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/MessageGateway.java index 61da72e..18cd34a 100644 --- a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/MessageGateway.java +++ b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/MessageGateway.java @@ -5,10 +5,10 @@ import br.com.helpdev.output.repository.entity.MessageEntityRepository; import br.com.helpdev.output.repository.mapper.MessageMapper; import br.com.helpdev.usecase.port.MessageRepository; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.inject.Named; import java.util.Optional; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; @Named @ApplicationScoped diff --git a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/ChatEntity.java b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/ChatEntity.java index 42d0e3f..5712852 100644 --- a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/ChatEntity.java +++ b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/ChatEntity.java @@ -1,17 +1,17 @@ package br.com.helpdev.output.repository.entity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import java.time.ZonedDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntity.java b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntity.java index 186313a..a8b78b1 100644 --- a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntity.java +++ b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntity.java @@ -1,19 +1,19 @@ package br.com.helpdev.output.repository.entity; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Embedded; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import java.time.ZonedDateTime; import java.util.List; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Embedded; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntityRepository.java b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntityRepository.java index c472590..cf580d1 100644 --- a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntityRepository.java +++ b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/MessageEntityRepository.java @@ -1,11 +1,11 @@ package br.com.helpdev.output.repository.entity; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.persistence.EntityManager; +import jakarta.transaction.Transactional; import java.util.Optional; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityManager; -import javax.transaction.Transactional; @Named @ApplicationScoped diff --git a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/RecipientEntity.java b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/RecipientEntity.java index b96189b..bb22d34 100644 --- a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/RecipientEntity.java +++ b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/entity/RecipientEntity.java @@ -1,7 +1,7 @@ package br.com.helpdev.output.repository.entity; -import javax.persistence.Column; -import javax.persistence.Embeddable; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/mapper/MessageMapper.java b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/mapper/MessageMapper.java index 6360920..2939c3e 100644 --- a/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/mapper/MessageMapper.java +++ b/adapter/output/jpa-mysql-repository/src/main/java/br/com/helpdev/output/repository/mapper/MessageMapper.java @@ -14,12 +14,12 @@ import br.com.helpdev.output.repository.entity.MessageEntity; import br.com.helpdev.output.repository.entity.RecipientEntity; import br.com.helpdev.output.repository.entity.StatusEntity; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Named; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Named; @Named @ApplicationScoped diff --git a/adapter/output/jpa-mysql-repository/src/test/java/br/com/helpdev/output/repository/entity/MessageEntityRepositoryTest.java b/adapter/output/jpa-mysql-repository/src/test/java/br/com/helpdev/output/repository/entity/MessageEntityRepositoryTest.java index bfc51a7..f60c674 100644 --- a/adapter/output/jpa-mysql-repository/src/test/java/br/com/helpdev/output/repository/entity/MessageEntityRepositoryTest.java +++ b/adapter/output/jpa-mysql-repository/src/test/java/br/com/helpdev/output/repository/entity/MessageEntityRepositoryTest.java @@ -5,7 +5,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; -import javax.persistence.EntityManager; +import jakarta.persistence.EntityManager; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; diff --git a/adapter/output/restclient-http-services/pom.xml b/adapter/output/restclient-http-services/pom.xml index 6c8716b..b8d3319 100644 --- a/adapter/output/restclient-http-services/pom.xml +++ b/adapter/output/restclient-http-services/pom.xml @@ -21,8 +21,8 @@ - javax.ws.rs - javax.ws.rs-api + jakarta.ws.rs + jakarta.ws.rs-api org.eclipse.microprofile.rest.client diff --git a/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/ProtocolGeneratorClientImpl.java b/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/ProtocolGeneratorClientImpl.java index 697230a..a0bc96f 100644 --- a/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/ProtocolGeneratorClientImpl.java +++ b/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/ProtocolGeneratorClientImpl.java @@ -3,9 +3,9 @@ import br.com.helpdev.output.restclient.client.RandomDataApiClient; import br.com.helpdev.usecase.port.ProtocolGeneratorClient; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.inject.Named; import org.eclipse.microprofile.rest.client.inject.RestClient; @ApplicationScoped diff --git a/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/client/RandomDataApiClient.java b/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/client/RandomDataApiClient.java index 95a4abc..c7e6729 100644 --- a/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/client/RandomDataApiClient.java +++ b/adapter/output/restclient-http-services/src/main/java/br/com/helpdev/output/restclient/client/RandomDataApiClient.java @@ -1,9 +1,9 @@ package br.com.helpdev.output.restclient.client; import br.com.helpdev.output.restclient.client.dto.RandomIdNumberDto; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; @Path("/api/id_number/random_id_number") diff --git a/app/quarkus-app/pom.xml b/app/quarkus-app/pom.xml index 9c02e75..ad6e4c7 100644 --- a/app/quarkus-app/pom.xml +++ b/app/quarkus-app/pom.xml @@ -67,7 +67,7 @@ ${project.groupId} - jaxrs-controller-v1 + jakarta-controller-v1 ${project.groupId} @@ -124,7 +124,7 @@ org.jboss.jandex jandex-maven-plugin - 1.2.2 + 1.2.3 make-index diff --git a/app/quarkus-app/src/main/java/br/com/helpdev/quarkus/ObjectMapperConfig.java b/app/quarkus-app/src/main/java/br/com/helpdev/quarkus/ObjectMapperConfig.java index 7ae1082..b7c5f83 100644 --- a/app/quarkus-app/src/main/java/br/com/helpdev/quarkus/ObjectMapperConfig.java +++ b/app/quarkus-app/src/main/java/br/com/helpdev/quarkus/ObjectMapperConfig.java @@ -3,7 +3,7 @@ import br.com.helpdev.controller.config.CustomObjectMapperConfig; import com.fasterxml.jackson.databind.ObjectMapper; import io.quarkus.jackson.ObjectMapperCustomizer; -import javax.inject.Singleton; +import jakarta.inject.Singleton; @Singleton public class ObjectMapperConfig implements ObjectMapperCustomizer { diff --git a/app/quarkus-app/src/main/resources/application.properties b/app/quarkus-app/src/main/resources/application.properties index b05e4af..a7a0ee5 100644 --- a/app/quarkus-app/src/main/resources/application.properties +++ b/app/quarkus-app/src/main/resources/application.properties @@ -8,8 +8,8 @@ quarkus.index-dependency.restclient-http-services.artifact-id=restclient-http-se quarkus.index-dependency.jpa-mysql-repository.group-id=br.com.helpdev quarkus.index-dependency.jpa-mysql-repository.artifact-id=jpa-mysql-repository # DI input -quarkus.index-dependency.jaxrs-controller-v1.group-id=br.com.helpdev -quarkus.index-dependency.jaxrs-controller-v1.artifact-id=jaxrs-controller-v1 +quarkus.index-dependency.jakarta-controller-v1.group-id=br.com.helpdev +quarkus.index-dependency.jakarta-controller-v1.artifact-id=jakarta-controller-v1 # datasource configuration quarkus.datasource.db-kind=mysql quarkus.datasource.username=${MYSQL_USER:user} @@ -27,4 +27,4 @@ quarkus.smallrye-health.ui.enable=true quarkus.http.access-log.enabled=true # rest client br.com.helpdev.output.restclient.client.RandomDataApiClient/mp-rest/url=${RANDOM_DATA_API_URL:https://random-data-api.com} -br.com.helpdev.output.restclient.client.RandomDataApiClient/mp-rest/scope=javax.inject.Singleton \ No newline at end of file +br.com.helpdev.output.restclient.client.RandomDataApiClient/mp-rest/scope=jakarta.inject.Singleton \ No newline at end of file diff --git a/app/quarkus-app/src/test/resources/application.properties b/app/quarkus-app/src/test/resources/application.properties index b2e1ef0..63dc8d1 100644 --- a/app/quarkus-app/src/test/resources/application.properties +++ b/app/quarkus-app/src/test/resources/application.properties @@ -7,8 +7,8 @@ quarkus.index-dependency.jpa-mysql-repository.artifact-id=jpa-mysql-repository quarkus.index-dependency.use-case.group-id=br.com.helpdev quarkus.index-dependency.use-case.artifact-id=use-case # -quarkus.index-dependency.jaxrs-controller-v1.group-id=br.com.helpdev -quarkus.index-dependency.jaxrs-controller-v1.artifact-id=jaxrs-controller-v1 +quarkus.index-dependency.jakarta-controller-v1.group-id=br.com.helpdev +quarkus.index-dependency.jakarta-controller-v1.artifact-id=jakarta-controller-v1 # quarkus.datasource.db-kind=h2 quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test @@ -19,4 +19,4 @@ quarkus.hibernate-orm.log.bind-parameters=true quarkus.hibernate-orm.default.log.sql=true # rest client br.com.helpdev.output.restclient.client.RandomDataApiClient/mp-rest/url=https://random-data-api.com -br.com.helpdev.output.restclient.client.RandomDataApiClient/mp-rest/scope=javax.inject.Singleton \ No newline at end of file +br.com.helpdev.output.restclient.client.RandomDataApiClient/mp-rest/scope=jakarta.inject.Singleton \ No newline at end of file diff --git a/app/spring-app/pom.xml b/app/spring-app/pom.xml index 8fdffe7..07b64ff 100644 --- a/app/spring-app/pom.xml +++ b/app/spring-app/pom.xml @@ -56,20 +56,19 @@ ${project.groupId} - jpa-mysql-repository + jakarta-controller-v1 ${project.groupId} - feign-http-services + jpa-mysql-repository ${project.groupId} - jaxrs-controller-v1 + feign-http-services - mysql - mysql-connector-java - runtime + com.mysql + mysql-connector-j org.springframework.boot diff --git a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java index 050623c..f450f40 100644 --- a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java +++ b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java @@ -2,8 +2,8 @@ import java.util.Objects; import java.util.stream.Collectors; -import javax.ws.rs.Path; -import javax.ws.rs.ext.Provider; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.ext.Provider; import org.glassfish.jersey.server.ResourceConfig; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import org.springframework.context.annotation.Configuration; diff --git a/app/spring-app/src/main/resources/application.properties b/app/spring-app/src/main/resources/application.properties index 0135f96..633c3f5 100644 --- a/app/spring-app/src/main/resources/application.properties +++ b/app/spring-app/src/main/resources/application.properties @@ -1,5 +1,6 @@ spring.jpa.hibernate.ddl-auto=update -spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect +spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=${MYSQL_URL:jdbc:mysql://localhost:3306/sample} spring.datasource.username=${MYSQL_USER:user} spring.datasource.password=${MYSQL_PASSWORD:pass123} diff --git a/core/use-case/src/main/java/br/com/helpdev/usecase/DeleteRequestNotification.java b/core/use-case/src/main/java/br/com/helpdev/usecase/DeleteRequestNotification.java index dfbe684..5b217da 100644 --- a/core/use-case/src/main/java/br/com/helpdev/usecase/DeleteRequestNotification.java +++ b/core/use-case/src/main/java/br/com/helpdev/usecase/DeleteRequestNotification.java @@ -4,9 +4,9 @@ import br.com.helpdev.domain.vo.MessageId; import br.com.helpdev.usecase.exception.MessageNotFoundException; import br.com.helpdev.usecase.port.MessageRepository; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.inject.Named; @Named @ApplicationScoped diff --git a/core/use-case/src/main/java/br/com/helpdev/usecase/FindRequestNotification.java b/core/use-case/src/main/java/br/com/helpdev/usecase/FindRequestNotification.java index a3c1afd..c28345c 100644 --- a/core/use-case/src/main/java/br/com/helpdev/usecase/FindRequestNotification.java +++ b/core/use-case/src/main/java/br/com/helpdev/usecase/FindRequestNotification.java @@ -6,9 +6,9 @@ import br.com.helpdev.domain.vo.MessageId; import br.com.helpdev.usecase.exception.MessageNotFoundException; import br.com.helpdev.usecase.port.MessageRepository; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.inject.Named; @Named @ApplicationScoped diff --git a/core/use-case/src/main/java/br/com/helpdev/usecase/PushRequestNotification.java b/core/use-case/src/main/java/br/com/helpdev/usecase/PushRequestNotification.java index d774a92..0dbc904 100644 --- a/core/use-case/src/main/java/br/com/helpdev/usecase/PushRequestNotification.java +++ b/core/use-case/src/main/java/br/com/helpdev/usecase/PushRequestNotification.java @@ -6,11 +6,11 @@ import br.com.helpdev.domain.exception.NotificationException; import br.com.helpdev.usecase.port.MessageRepository; import br.com.helpdev.usecase.port.ProtocolGeneratorClient; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.inject.Named; import java.time.ZonedDateTime; import java.util.List; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; @Named @ApplicationScoped diff --git a/pom.xml b/pom.xml index bea2245..f594a89 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ true - 2.15.0.Final + 3.2.0.Final quarkus-bom io.quarkus.platform @@ -25,7 +25,7 @@ core/domain core/use-case - adapter/input/jaxrs-controller-v1 + adapter/input/jakarta-controller-v1 adapter/output/jpa-mysql-repository adapter/output/restclient-http-services app/quarkus-app @@ -35,14 +35,14 @@ spring - 2.7.1 - 2021.0.3 + 3.1.1 + 2022.0.3 core/domain core/use-case - adapter/input/jaxrs-controller-v1 + adapter/input/jakarta-controller-v1 adapter/output/jpa-mysql-repository adapter/output/feign-http-services app/spring-app @@ -71,45 +71,45 @@ 1.7.4 - 3.10.1 - 3.1.1 - 4.5.3.0 - 4.5.3 + 3.11.1 + 3.3.0 + 4.7.3.5 + 4.7.3 8.39 4.3.0 - 3.0.0-M7 - 3.0.0-M7 + 3.1.2 + 3.1.2 0.15 0.8.8 - 5.6.0 - 3.3.3 - 3.22.0 - 1.17.1 + 5.9.3 + 5.4.0 + 3.24.2 + 1.18.3 1.0.2 - 2.35 + 3.1.2 - 2.0.2 - 2.1.1 - 1.3.3 - 2.2.3 - 2.0 - 2.0.1.Final + 4.0.1 + 3.1.0 + 2.0.1 + 3.1.0 + 3.0.1 + 3.0.2 2.3.1 + 6.0.0 - 2.35 - 1.18.24 + 1.18.28 - 1.7.36 - 1.2.3 - 6.6 + 2.0.7 + 1.4.8 + 7.4 - 4.3.3 - 2.13.4.2 - 2.14.1 + 5.2.0 + 2.15.2 + 2.15.2 @@ -125,7 +125,7 @@ ${project.groupId} - jaxrs-controller-v1 + jakarta-controller-v1 ${project.version} @@ -159,8 +159,8 @@ ${lombok.version} - javax.validation - validation-api + jakarta.validation + jakarta.validation-api ${validation-api.version} @@ -176,14 +176,14 @@ test - javax.ws.rs - javax.ws.rs-api - ${javax.ws.rs-api.version} + jakarta.ws.rs + jakarta.ws.rs-api + ${jakarta.ws.rs-api.version} - javax.xml.bind - jaxb-api - ${jaxb-api.version} + jakarta.servlet + jakarta.servlet-api + ${jakarta.servlet-api.version} org.eclipse.microprofile.rest.client @@ -305,12 +305,6 @@ jersey-server ${glassfish.test.version} - - com.github.tomakehurst - wiremock-jre8 - ${wiremock.version} - test - From 0394a0df578b86c51db00e19aca438da14a494e0 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Tue, 18 Jul 2023 15:09:32 -0300 Subject: [PATCH 07/11] feat: upgrade versions to spring --- adapter/input/jakarta-controller-v1/pom.xml | 4 ---- app/spring-app/pom.xml | 10 ++++++++++ pom.xml | 19 ++++++++++++------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/adapter/input/jakarta-controller-v1/pom.xml b/adapter/input/jakarta-controller-v1/pom.xml index 685766c..cfc1f3a 100644 --- a/adapter/input/jakarta-controller-v1/pom.xml +++ b/adapter/input/jakarta-controller-v1/pom.xml @@ -28,10 +28,6 @@ jakarta.ws.rs jakarta.ws.rs-api - - jakarta.servlet - jakarta.servlet-api - io.swagger.core.v3 swagger-core-jakarta diff --git a/app/spring-app/pom.xml b/app/spring-app/pom.xml index 07b64ff..5a44900 100644 --- a/app/spring-app/pom.xml +++ b/app/spring-app/pom.xml @@ -50,6 +50,10 @@ org.springframework.boot spring-boot-starter-data-jpa + + org.springframework.boot + spring-boot-starter-log4j2 + ${project.groupId} use-case @@ -73,6 +77,12 @@ org.springframework.boot spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-logging + + io.micrometer diff --git a/pom.xml b/pom.xml index f594a89..36de6be 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 1.7.4 - 3.11.1 + 3.11.0 3.3.0 4.7.3.5 4.7.3 @@ -98,7 +98,6 @@ 3.0.1 3.0.2 2.3.1 - 6.0.0 1.18.28 @@ -180,11 +179,6 @@ jakarta.ws.rs-api ${jakarta.ws.rs-api.version} - - jakarta.servlet - jakarta.servlet-api - ${jakarta.servlet-api.version} - org.eclipse.microprofile.rest.client microprofile-rest-client-api @@ -310,6 +304,17 @@ + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + + -parameters + + + org.eluder.coveralls From 35a8b7e142c89094c9e87280a32271815179a5c6 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Tue, 18 Jul 2023 15:31:34 -0300 Subject: [PATCH 08/11] feat: upgrade versions to spring --- .../java/br/com/helpdev/config/WebJerseyConfiguration.java | 4 ++-- app/spring-app/src/main/resources/application.properties | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java index f450f40..3ff0899 100644 --- a/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java +++ b/app/spring-app/src/main/java/br/com/helpdev/config/WebJerseyConfiguration.java @@ -1,9 +1,9 @@ package br.com.helpdev.config; -import java.util.Objects; -import java.util.stream.Collectors; import jakarta.ws.rs.Path; import jakarta.ws.rs.ext.Provider; +import java.util.Objects; +import java.util.stream.Collectors; import org.glassfish.jersey.server.ResourceConfig; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import org.springframework.context.annotation.Configuration; diff --git a/app/spring-app/src/main/resources/application.properties b/app/spring-app/src/main/resources/application.properties index 633c3f5..c7bc759 100644 --- a/app/spring-app/src/main/resources/application.properties +++ b/app/spring-app/src/main/resources/application.properties @@ -8,4 +8,5 @@ spring.datasource.password=${MYSQL_PASSWORD:pass123} management.metrics.enable.all=true management.endpoints.web.exposure.include=* -random-data-api.url=${RANDOM_DATA_API_URL:https://random-data-api.com} \ No newline at end of file +random-data-api.url=${RANDOM_DATA_API_URL:https://random-data-api.com} +spring.cloud.mvc.token-relay.enabled=false \ No newline at end of file From d4b12c1841371f896f93cb422aa655eeb0bc5a40 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Tue, 18 Jul 2023 15:32:01 -0300 Subject: [PATCH 09/11] feat: upgrade versions to spring --- app/spring-app/src/main/resources/application.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/spring-app/src/main/resources/application.properties b/app/spring-app/src/main/resources/application.properties index c7bc759..3df7e44 100644 --- a/app/spring-app/src/main/resources/application.properties +++ b/app/spring-app/src/main/resources/application.properties @@ -9,4 +9,6 @@ management.metrics.enable.all=true management.endpoints.web.exposure.include=* random-data-api.url=${RANDOM_DATA_API_URL:https://random-data-api.com} + +# Issue: https://github.com/spring-cloud/spring-cloud-openfeign/issues/847 spring.cloud.mvc.token-relay.enabled=false \ No newline at end of file From 27787938ae02a49cb51b1356476299bddc0c2132 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Tue, 18 Jul 2023 16:20:02 -0300 Subject: [PATCH 10/11] fix: specify version in spring-boot-maven-plugin reason: warn in build --- app/spring-app/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/spring-app/pom.xml b/app/spring-app/pom.xml index 5a44900..26fa030 100644 --- a/app/spring-app/pom.xml +++ b/app/spring-app/pom.xml @@ -108,6 +108,7 @@ org.springframework.boot spring-boot-maven-plugin + ${spring-boot.version} br.com.helpdev.SpringSampleApplication From f912ad3b7111b65040d1c257cdcd74b7abe3f87c Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Tue, 18 Jul 2023 16:32:15 -0300 Subject: [PATCH 11/11] refactor: refactor pom --- acceptance-test/pom.xml | 1 - adapter/input/jakarta-controller-v1/pom.xml | 4 +++- pom.xml | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/acceptance-test/pom.xml b/acceptance-test/pom.xml index 9e0e591..b7f8fff 100644 --- a/acceptance-test/pom.xml +++ b/acceptance-test/pom.xml @@ -15,7 +15,6 @@ 17 17 true - 3.1.0 8.0.33 0.38.1 true diff --git a/adapter/input/jakarta-controller-v1/pom.xml b/adapter/input/jakarta-controller-v1/pom.xml index cfc1f3a..0e7ef5b 100644 --- a/adapter/input/jakarta-controller-v1/pom.xml +++ b/adapter/input/jakarta-controller-v1/pom.xml @@ -83,6 +83,7 @@ + io.swagger.core.v3 swagger-maven-plugin-jakarta @@ -107,9 +108,10 @@ + org.apache.maven.plugins maven-resources-plugin - 3.3.1 + ${maven-resources-plugin.version} copy-resources diff --git a/pom.xml b/pom.xml index 36de6be..17d7769 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,7 @@ 3.1.2 0.15 0.8.8 + 3.3.1 5.9.3