From 0e70d23b8fd0e8d7dd70a258e4574d5cafae1013 Mon Sep 17 00:00:00 2001 From: "muhammad.a.zafar" Date: Wed, 4 Oct 2023 09:12:51 +0200 Subject: [PATCH 01/17] [History cleanup]First Commit Of running app --- pom.xml | 233 ++++++++++++++++++ .../SignalHubHistoryCleanupApplication.java | 20 ++ .../history/cleanup/conifg/AppConfig.java | 15 ++ .../cleanup/entities/SignalEntity.java | 35 +++ .../cleanup/repository/SignalRepository.java | 19 ++ .../cleanup/service/SignalService.java | 13 + .../service/impl/SignalServiceImpl.java | 46 ++++ src/main/resources/application.properties | 23 ++ .../history/cleanup/config/AppConfigTest.java | 22 ++ .../cleanup/entity/SignalEntityTest.java | 73 ++++++ .../serviceImpl/SignalServiceImplTest.java | 42 ++++ 11 files changed, 541 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/conifg/AppConfig.java create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java create mode 100644 src/main/resources/application.properties create mode 100644 src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java create mode 100644 src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalEntityTest.java create mode 100644 src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..84afa78 --- /dev/null +++ b/pom.xml @@ -0,0 +1,233 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.5.2 + + + it.pagopa.interop + signalhub-history-cleanup + 0.0.1-SNAPSHOT + signalhub history cleanup + Signal history cleanup + + 17 + 0.00 + UTF-8 + 5.6.15.Final + 2.11.0 + 2.8.0 + 0.2.1 + 2.3.1 + 1.18.24 + 0.2.0 + + 1.5.1.Final + 2.13.4 + + + + + io.awspring.cloud + spring-cloud-aws-dependencies + 3.0.1 + pom + import + + + + + + com.amazonaws + aws-xray-recorder-sdk-apache-http + ${com.amazonaws.version} + + + + com.amazonaws + aws-xray-recorder-sdk-spring + ${com.amazonaws.version} + + + javax.xml.bind + jaxb-api + ${javax.xml.bind.version} + + + org.openapitools + jackson-databind-nullable + ${org.openapitools.version} + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-data-r2dbc + + + org.springframework.boot + spring-boot-starter-data-jdbc + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-webflux + + + org.springframework.boot + spring-boot-starter-reactor-netty + + + org.projectlombok + lombok + ${org.projectlombok.version} + + + org.projectlombok + lombok-mapstruct-binding + ${org.projectlombok.mapstruct.version} + + + org.apache.commons + commons-lang3 + + + org.mapstruct + mapstruct + ${org.mapstruct.version} + + + org.slf4j + slf4j-api + + + ch.qos.logback + logback-core + + + ch.qos.logback + logback-classic + + + io.projectreactor + reactor-test + test + + + com.auth0 + java-jwt + 4.3.0 + + + com.auth0 + jwks-rsa + 0.22.1 + + + org.springframework.boot + spring-boot-starter-security + + + com.h2database + h2 + runtime + + + + io.r2dbc + r2dbc-h2 + runtime + + + + io.r2dbc + r2dbc-postgresql + runtime + + + org.postgresql + postgresql + runtime + + + + org.testcontainers + localstack + 1.17.6 + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 3.1.2 + + + org.jacoco + jacoco-maven-plugin + 0.8.10 + + + + + + prepare-integration-tests + pre-integration-test + + prepare-agent + + + + report + prepare-package + + report + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 17 + 17 + + + org.projectlombok + lombok + 1.18.24 + + + org.mapstruct + mapstruct-processor + 1.5.1.Final + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + + + + + + diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java new file mode 100644 index 0000000..08d8233 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java @@ -0,0 +1,20 @@ +package it.pagopa.interop.signalhub.history.cleanup; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.r2dbc.config.EnableR2dbcAuditing; +import org.springframework.scheduling.annotation.EnableScheduling; + +@SpringBootApplication +@EnableR2dbcAuditing +@EnableScheduling +public class SignalHubHistoryCleanupApplication { + + public static void main(String[] args) { + + + SpringApplication.run(SignalHubHistoryCleanupApplication.class, args); + } + +} diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/conifg/AppConfig.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/conifg/AppConfig.java new file mode 100644 index 0000000..bc2d351 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/conifg/AppConfig.java @@ -0,0 +1,15 @@ +package it.pagopa.interop.signalhub.history.cleanup.conifg; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix = "pdnd.history-cleanup") +@Getter +@Setter +public class AppConfig { + + private String delayDays; +} diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java new file mode 100644 index 0000000..4d24958 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java @@ -0,0 +1,35 @@ +package it.pagopa.interop.signalhub.history.cleanup.entities; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Column; +import org.springframework.data.relational.core.mapping.Table; + +import java.io.Serializable; +import java.time.Instant; + + +@Getter +@Setter +@Table("SIGNAL") +public class SignalEntity implements Serializable { + @Id + @Column("id") + private Long id; + @Column("signal_id") + private Long signalId; + @Column("object_id") + private String objectId; + @Column("eservice_id") + private String eserviceId; + @Column("object_type") + private String objectType; + @Column("signal_type") + private String signalType; + @CreatedDate + @Column("tmst_insert") + private Instant tmstInsert; +} \ No newline at end of file diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java new file mode 100644 index 0000000..e729d08 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java @@ -0,0 +1,19 @@ +package it.pagopa.interop.signalhub.history.cleanup.repository; + +import it.pagopa.interop.signalhub.history.cleanup.entities.SignalEntity; +import org.springframework.data.r2dbc.repository.Query; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Mono; + +import java.time.LocalDate; + +@Repository +public interface SignalRepository extends ReactiveCrudRepository { + + @Query("delete from signal s where s.tmst_Insert < :date") + Mono deleteByDateBefore(LocalDate date ); + +} + + diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java new file mode 100644 index 0000000..22213d5 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java @@ -0,0 +1,13 @@ +package it.pagopa.interop.signalhub.history.cleanup.service; + +import reactor.core.publisher.Mono; +import reactor.core.publisher.Signal; + +import java.io.FileNotFoundException; +import java.time.LocalDate; + +public interface SignalService { + + void deleteSignal(); + +} diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java new file mode 100644 index 0000000..d7f5df7 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -0,0 +1,46 @@ +package it.pagopa.interop.signalhub.history.cleanup.service.impl; + +import it.pagopa.interop.signalhub.history.cleanup.conifg.AppConfig; +import it.pagopa.interop.signalhub.history.cleanup.repository.SignalRepository; +import it.pagopa.interop.signalhub.history.cleanup.service.SignalService; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import java.io.FileNotFoundException; +import java.time.LocalDate; +import java.time.temporal.ChronoUnit; + + +@Slf4j +@AllArgsConstructor +public class SignalServiceImpl implements SignalService { + + @Autowired + private SignalRepository signalRepository; + + @Autowired + private AppConfig appConfig; + @Scheduled(cron = "${pdnd.history-cleanup.scheduled-delay}") + public void deleteSignal() { + + String delaydays = appConfig.getDelayDays(); + long numeroGiorni = Long.parseLong(delaydays); + LocalDate pastDate = LocalDate.now().minus(numeroGiorni, ChronoUnit.DAYS); + + signalRepository.deleteByDateBefore(pastDate) + .doOnSuccess(x -> log.info("record success")) + .doOnError(x -> log.error("Find an error {}",x.getMessage())) + .subscribe(); + + } + +} + + diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..32e5c95 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,23 @@ +logging.level.root=INFO +spring.profiles.active=dev +server.port=8082 + + +database.name=${DB_NAME:signal-hub} +database.host=${DB_HOST:localhost} +database.port=${DB_PORT:5432} +database.username=${DB_USER:postgres} +database.password=${DB_PASSWORD:postgres} + + +#R2DBC - Postgres +spring.r2dbc.url=r2dbc:postgresql://${database.host}:${database.port}/${database.name} +spring.r2dbc.username=${database.username} +spring.r2dbc.password=${database.password} +spring.r2dbc.pool.max-size=20 +spring.r2dbc.pool.initial-size=5 +spring.r2dbc.pool.enabled=true +spring.data.r2dbc.repositories.enabled=true + +pdnd.history-cleanup.scheduled-delay = 0 59 */08 * * * +pdnd.history-cleanup.delay-days = 30 \ No newline at end of file diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java new file mode 100644 index 0000000..ed8a96c --- /dev/null +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java @@ -0,0 +1,22 @@ +package it.pagopa.interop.signalhub.history.cleanup.config; + +import it.pagopa.interop.signalhub.history.cleanup.conifg.AppConfig; +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.junit.jupiter.api.Assertions.assertEquals; + +@ExtendWith(MockitoExtension.class) +public class AppConfigTest { + @InjectMocks + AppConfig appConfig; + @Test + public void testDelayDays() { + + appConfig.setDelayDays("10"); + + assertEquals("10", appConfig.getDelayDays()); + } +} diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalEntityTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalEntityTest.java new file mode 100644 index 0000000..35808eb --- /dev/null +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalEntityTest.java @@ -0,0 +1,73 @@ +package it.pagopa.interop.signalhub.history.cleanup.entity; + +import it.pagopa.interop.signalhub.history.cleanup.entities.SignalEntity; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +import java.time.Instant; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +@ExtendWith(MockitoExtension.class) +public class SignalEntityTest { + + @InjectMocks + private SignalEntity signalEntity; + + @BeforeEach + public void setUp() { + signalEntity = new SignalEntity(); + } + + @Test + public void testId() { + Long id = 1L; + signalEntity.setId(id); + assertEquals(id, signalEntity.getId()); + } + @Test + public void testSignalId() { + Long signalId = 123L; + signalEntity.setSignalId(signalId); + assertEquals(signalId, signalEntity.getSignalId()); + } + @Test + public void testObjectId() { + String objectId = "testObject"; + signalEntity.setObjectId(objectId); + assertEquals(objectId, signalEntity.getObjectId()); + } + + @Test + public void testEserviceId() { + String eserviceId = "testEservice"; + signalEntity.setEserviceId(eserviceId); + assertEquals(eserviceId, signalEntity.getEserviceId()); + } + @Test + public void testObjectType() { + String objectType = "testType"; + signalEntity.setObjectType(objectType); + assertEquals(objectType, signalEntity.getObjectType()); + } + + @Test + public void testSignalType() { + String signalType = "testSignal"; + signalEntity.setSignalType(signalType); + assertEquals(signalType, signalEntity.getSignalType()); + } + + @Test + public void testTmstInsert() { + Instant tmstInsert = Instant.now(); + signalEntity.setTmstInsert(tmstInsert); + assertEquals(tmstInsert, signalEntity.getTmstInsert()); + } + +} diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java new file mode 100644 index 0000000..678ae24 --- /dev/null +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java @@ -0,0 +1,42 @@ +package it.pagopa.interop.signalhub.history.cleanup.serviceImpl; + +import it.pagopa.interop.signalhub.history.cleanup.conifg.AppConfig; +import it.pagopa.interop.signalhub.history.cleanup.repository.SignalRepository; +import it.pagopa.interop.signalhub.history.cleanup.service.impl.SignalServiceImpl; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; +import reactor.core.publisher.Mono; + +import java.io.FileNotFoundException; +import java.time.LocalDate; +import java.time.temporal.ChronoUnit; + +@ExtendWith(MockitoExtension.class) +public class SignalServiceImplTest { + @InjectMocks + private SignalServiceImpl signalService; + + @Mock + private SignalRepository signalRepository; + + @Mock + private AppConfig appConfig; + + @Test + void testDeleteSignal() throws FileNotFoundException { + LocalDate expectedDate = LocalDate.now().minus(30, ChronoUnit.DAYS); + + Mockito.when(appConfig.getDelayDays()).thenReturn("30"); + + Mockito.when(signalRepository.deleteByDateBefore(Mockito.any())).thenReturn(Mono.empty()); + signalService.deleteSignal(); + Mockito.verify(signalRepository, Mockito.times(1)).deleteByDateBefore(Mockito.any()); + + + + } +} From c1b4d066ff7276d7929104fca79f8b8e3192bf38 Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Wed, 11 Oct 2023 13:01:46 +0200 Subject: [PATCH 02/17] adds git flow --- .github/workflows/build.yaml | 38 +++++++++++++++++++++++++++ .github/workflows/build_prod-uat.yaml | 36 +++++++++++++++++++++++++ .gitignore | 33 +++++++++++++++++++++++ Dockerfile | 16 +++++++++++ 4 files changed, 123 insertions(+) create mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/build_prod-uat.yaml create mode 100644 .gitignore create mode 100644 Dockerfile diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..8826150 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,38 @@ +name: "CI Develop" + +on: + push: + branches: + - '**' + - '!main' + - '!master' + paths: + - '**' + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: normalize branch name for tagging + run: | + NORM_TAG=$(echo "$GITHUB_REF_NAME" | tr -s "/" "-") + echo "NORM_TAG=$NORM_TAG" >> $GITHUB_ENV + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push on GitHub packages + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + push: true + tags: | + ghcr.io/${{ github.repository }}:${{ env.NORM_TAG }} \ No newline at end of file diff --git a/.github/workflows/build_prod-uat.yaml b/.github/workflows/build_prod-uat.yaml new file mode 100644 index 0000000..e35d325 --- /dev/null +++ b/.github/workflows/build_prod-uat.yaml @@ -0,0 +1,36 @@ +name: "CI RCs - PROD" + +on: + push: + tags: + - 'v*' + - '*-rc' + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: normalize branch name for tagging + run: | + NORM_TAG=$(echo "$GITHUB_REF_NAME" | tr -s "/" "-") + echo "NORM_TAG=$NORM_TAG" >> $GITHUB_ENV + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push on GitHub packages + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + push: true + tags: | + ghcr.io/${{ github.repository }}:${{ env.NORM_TAG }} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..073c893 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +## BUILD ## +FROM maven:3.8.3-openjdk-17 AS build + +WORKDIR /app + +COPY . . + +RUN mvn -q clean package -Dmaven.test.skip=true + + +## RUN ## +FROM openjdk:17-alpine + +COPY --from=build /app/target/*.jar /app/app.jar + +ENTRYPOINT ["java", "-jar", "/app/app.jar"] \ No newline at end of file From 5df21107596f4ead89fbc7be35c278029a86ae6a Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Wed, 18 Oct 2023 11:03:53 +0200 Subject: [PATCH 03/17] refactoring package --- .../history/cleanup/{conifg => config}/AppConfig.java | 2 +- .../history/cleanup/service/impl/SignalServiceImpl.java | 8 +------- .../signalhub/history/cleanup/config/AppConfigTest.java | 1 - .../cleanup/serviceImpl/SignalServiceImplTest.java | 2 +- 4 files changed, 3 insertions(+), 10 deletions(-) rename src/main/java/it/pagopa/interop/signalhub/history/cleanup/{conifg => config}/AppConfig.java (84%) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/conifg/AppConfig.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfig.java similarity index 84% rename from src/main/java/it/pagopa/interop/signalhub/history/cleanup/conifg/AppConfig.java rename to src/main/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfig.java index bc2d351..d236835 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/conifg/AppConfig.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfig.java @@ -1,4 +1,4 @@ -package it.pagopa.interop.signalhub.history.cleanup.conifg; +package it.pagopa.interop.signalhub.history.cleanup.config; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java index d7f5df7..5c90566 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -1,19 +1,13 @@ package it.pagopa.interop.signalhub.history.cleanup.service.impl; -import it.pagopa.interop.signalhub.history.cleanup.conifg.AppConfig; +import it.pagopa.interop.signalhub.history.cleanup.config.AppConfig; import it.pagopa.interop.signalhub.history.cleanup.repository.SignalRepository; import it.pagopa.interop.signalhub.history.cleanup.service.SignalService; import lombok.AllArgsConstructor; -import lombok.extern.log4j.Log4j2; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Service; -import reactor.core.publisher.Mono; -import java.io.FileNotFoundException; import java.time.LocalDate; import java.time.temporal.ChronoUnit; diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java index ed8a96c..fcd68c2 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java @@ -1,6 +1,5 @@ package it.pagopa.interop.signalhub.history.cleanup.config; -import it.pagopa.interop.signalhub.history.cleanup.conifg.AppConfig; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java index 678ae24..0001bcd 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java @@ -1,6 +1,6 @@ package it.pagopa.interop.signalhub.history.cleanup.serviceImpl; -import it.pagopa.interop.signalhub.history.cleanup.conifg.AppConfig; +import it.pagopa.interop.signalhub.history.cleanup.config.AppConfig; import it.pagopa.interop.signalhub.history.cleanup.repository.SignalRepository; import it.pagopa.interop.signalhub.history.cleanup.service.impl.SignalServiceImpl; import org.junit.jupiter.api.Test; From ba56476445d2bd0287a429f72dc55bc565dff467 Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Wed, 18 Oct 2023 11:05:30 +0200 Subject: [PATCH 04/17] adds application.properties --- config/application.properties | 2 ++ src/main/resources/application.properties | 8 ++------ 2 files changed, 4 insertions(+), 6 deletions(-) create mode 100644 config/application.properties diff --git a/config/application.properties b/config/application.properties new file mode 100644 index 0000000..44cb202 --- /dev/null +++ b/config/application.properties @@ -0,0 +1,2 @@ +spring.profiles.active=dev +server.port=8082 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 32e5c95..1aa4e85 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,4 @@ logging.level.root=INFO -spring.profiles.active=dev -server.port=8082 - database.name=${DB_NAME:signal-hub} database.host=${DB_HOST:localhost} @@ -9,7 +6,6 @@ database.port=${DB_PORT:5432} database.username=${DB_USER:postgres} database.password=${DB_PASSWORD:postgres} - #R2DBC - Postgres spring.r2dbc.url=r2dbc:postgresql://${database.host}:${database.port}/${database.name} spring.r2dbc.username=${database.username} @@ -19,5 +15,5 @@ spring.r2dbc.pool.initial-size=5 spring.r2dbc.pool.enabled=true spring.data.r2dbc.repositories.enabled=true -pdnd.history-cleanup.scheduled-delay = 0 59 */08 * * * -pdnd.history-cleanup.delay-days = 30 \ No newline at end of file +pdnd.history-cleanup.scheduled-delay=0 59 */08 * * * +pdnd.history-cleanup.delay-days=30 \ No newline at end of file From d1a0808523f25f5a8aef0fa1d182c48f26893ce0 Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Wed, 18 Oct 2023 11:19:13 +0200 Subject: [PATCH 05/17] remove schedule --- .../cleanup/SignalHubHistoryCleanupApplication.java | 4 ---- .../history/cleanup/entities/SignalEntity.java | 1 - .../history/cleanup/repository/SignalRepository.java | 2 +- .../history/cleanup/service/SignalService.java | 6 ------ .../cleanup/service/impl/SignalServiceImpl.java | 10 ++-------- src/main/resources/application.properties | 1 - 6 files changed, 3 insertions(+), 21 deletions(-) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java index 08d8233..d8e0ff9 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/SignalHubHistoryCleanupApplication.java @@ -1,6 +1,5 @@ package it.pagopa.interop.signalhub.history.cleanup; -import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.r2dbc.config.EnableR2dbcAuditing; @@ -8,12 +7,9 @@ @SpringBootApplication @EnableR2dbcAuditing -@EnableScheduling public class SignalHubHistoryCleanupApplication { public static void main(String[] args) { - - SpringApplication.run(SignalHubHistoryCleanupApplication.class, args); } diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java index 4d24958..a878194 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java @@ -11,7 +11,6 @@ import java.io.Serializable; import java.time.Instant; - @Getter @Setter @Table("SIGNAL") diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java index e729d08..ffcd0c4 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java @@ -11,7 +11,7 @@ @Repository public interface SignalRepository extends ReactiveCrudRepository { - @Query("delete from signal s where s.tmst_Insert < :date") + @Query("delete from signal s where s.tmst_Insert < :date") Mono deleteByDateBefore(LocalDate date ); } diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java index 22213d5..4384800 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java @@ -1,11 +1,5 @@ package it.pagopa.interop.signalhub.history.cleanup.service; -import reactor.core.publisher.Mono; -import reactor.core.publisher.Signal; - -import java.io.FileNotFoundException; -import java.time.LocalDate; - public interface SignalService { void deleteSignal(); diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java index 5c90566..306698d 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -6,12 +6,10 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; import java.time.LocalDate; import java.time.temporal.ChronoUnit; - @Slf4j @AllArgsConstructor public class SignalServiceImpl implements SignalService { @@ -21,18 +19,14 @@ public class SignalServiceImpl implements SignalService { @Autowired private AppConfig appConfig; - @Scheduled(cron = "${pdnd.history-cleanup.scheduled-delay}") - public void deleteSignal() { - String delaydays = appConfig.getDelayDays(); - long numeroGiorni = Long.parseLong(delaydays); - LocalDate pastDate = LocalDate.now().minus(numeroGiorni, ChronoUnit.DAYS); + public void deleteSignal() { + LocalDate pastDate = LocalDate.now().minus(Long.parseLong(appConfig.getDelayDays()), ChronoUnit.DAYS); signalRepository.deleteByDateBefore(pastDate) .doOnSuccess(x -> log.info("record success")) .doOnError(x -> log.error("Find an error {}",x.getMessage())) .subscribe(); - } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1aa4e85..709e5e6 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -15,5 +15,4 @@ spring.r2dbc.pool.initial-size=5 spring.r2dbc.pool.enabled=true spring.data.r2dbc.repositories.enabled=true -pdnd.history-cleanup.scheduled-delay=0 59 */08 * * * pdnd.history-cleanup.delay-days=30 \ No newline at end of file From de83633ea78fe792b6bcba30590f2f4893a4aa6e Mon Sep 17 00:00:00 2001 From: francarl77 <97600561+francarl77@users.noreply.github.com> Date: Fri, 20 Oct 2023 18:51:14 +0200 Subject: [PATCH 06/17] update test --- .../interop/signalhub/history/cleanup/config/AppConfigTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java index fcd68c2..edf503b 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java @@ -9,8 +9,10 @@ @ExtendWith(MockitoExtension.class) public class AppConfigTest { + @InjectMocks AppConfig appConfig; + @Test public void testDelayDays() { From 08ad912e5fe0a486fbf632f0c52eb4e3cc86d947 Mon Sep 17 00:00:00 2001 From: "DIR\\luca.ciccarelli" Date: Fri, 3 Nov 2023 10:27:13 +0100 Subject: [PATCH 07/17] added batch executor --- .../controller/SignalServiceController.java | 31 +++++++++++++++++++ .../PDNDBatchAlreadyExistException.java | 8 +++++ .../cleanup/execution/BatchTaskExecutor.java | 19 ++++++++++++ .../cleanup/service/SignalService.java | 2 +- .../service/impl/SignalServiceImpl.java | 2 +- .../serviceImpl/SignalServiceImplTest.java | 2 +- 6 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/exception/PDNDBatchAlreadyExistException.java create mode 100644 src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java new file mode 100644 index 0000000..877471f --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java @@ -0,0 +1,31 @@ +package it.pagopa.interop.signalhub.history.cleanup.controller; + +import it.pagopa.interop.signalhub.history.cleanup.exception.PDNDBatchAlreadyExistException; +import it.pagopa.interop.signalhub.history.cleanup.service.SignalService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@Slf4j +@Component +@AllArgsConstructor +public class SignalServiceController { + + private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss"); + private final SignalService signalService; + + public void cleanSignal(){ + log.info("CleanSignal Started: {}", dateTimeFormatter.format(LocalDateTime.now())); + try { + signalService.cleanSignal(); + }catch (PDNDBatchAlreadyExistException ex) { + log.info(ex.getMessage()); + } + + } + + +} diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/exception/PDNDBatchAlreadyExistException.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/exception/PDNDBatchAlreadyExistException.java new file mode 100644 index 0000000..b6fa567 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/exception/PDNDBatchAlreadyExistException.java @@ -0,0 +1,8 @@ +package it.pagopa.interop.signalhub.history.cleanup.exception; + +public class PDNDBatchAlreadyExistException extends RuntimeException { + + public PDNDBatchAlreadyExistException() { + super("Batch already in running"); + } +} diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java new file mode 100644 index 0000000..a3c27f8 --- /dev/null +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java @@ -0,0 +1,19 @@ +package it.pagopa.interop.signalhub.history.cleanup.execution; + +import it.pagopa.interop.signalhub.history.cleanup.controller.SignalServiceController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +@Profile("!test") +@Component +public class BatchTaskExecutor implements CommandLineRunner { + @Autowired + private SignalServiceController signalServiceController; + + @Override + public void run(String... args) throws Exception { + signalServiceController.cleanSignal(); + } +} diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java index 4384800..cea6217 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/SignalService.java @@ -2,6 +2,6 @@ public interface SignalService { - void deleteSignal(); + void cleanSignal(); } diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java index 306698d..107fd0d 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -20,7 +20,7 @@ public class SignalServiceImpl implements SignalService { @Autowired private AppConfig appConfig; - public void deleteSignal() { + public void cleanSignal() { LocalDate pastDate = LocalDate.now().minus(Long.parseLong(appConfig.getDelayDays()), ChronoUnit.DAYS); signalRepository.deleteByDateBefore(pastDate) diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java index 0001bcd..ab8958f 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java @@ -33,7 +33,7 @@ void testDeleteSignal() throws FileNotFoundException { Mockito.when(appConfig.getDelayDays()).thenReturn("30"); Mockito.when(signalRepository.deleteByDateBefore(Mockito.any())).thenReturn(Mono.empty()); - signalService.deleteSignal(); + signalService.cleanSignal(); Mockito.verify(signalRepository, Mockito.times(1)).deleteByDateBefore(Mockito.any()); From 598529264ea06a16128dc78b3067eb26f881d9b6 Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Fri, 3 Nov 2023 11:31:19 +0100 Subject: [PATCH 08/17] adds service annotation --- .../history/cleanup/repository/SignalRepository.java | 4 +--- .../history/cleanup/service/impl/SignalServiceImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java index ffcd0c4..24fe06d 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java @@ -14,6 +14,4 @@ public interface SignalRepository extends ReactiveCrudRepository deleteByDateBefore(LocalDate date ); -} - - +} \ No newline at end of file diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java index 107fd0d..7f44dce 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -6,12 +6,14 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.temporal.ChronoUnit; @Slf4j @AllArgsConstructor +@Service public class SignalServiceImpl implements SignalService { @Autowired @@ -22,9 +24,8 @@ public class SignalServiceImpl implements SignalService { public void cleanSignal() { LocalDate pastDate = LocalDate.now().minus(Long.parseLong(appConfig.getDelayDays()), ChronoUnit.DAYS); - signalRepository.deleteByDateBefore(pastDate) - .doOnSuccess(x -> log.info("record success")) + .doOnSuccess(x -> log.info("clean complete with success")) .doOnError(x -> log.error("Find an error {}",x.getMessage())) .subscribe(); } From 9aef321364a08c28a27aee1de0918fd164283c83 Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Fri, 3 Nov 2023 11:45:02 +0100 Subject: [PATCH 09/17] minor change --- .../{SignalEntity.java => Signal.java} | 2 +- .../cleanup/repository/SignalRepository.java | 8 ++-- .../service/impl/SignalServiceImpl.java | 4 +- ...{SignalEntityTest.java => SignalTest.java} | 37 +++++++++---------- .../serviceImpl/SignalServiceImplTest.java | 18 ++------- 5 files changed, 29 insertions(+), 40 deletions(-) rename src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/{SignalEntity.java => Signal.java} (94%) rename src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/{SignalEntityTest.java => SignalTest.java} (55%) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/Signal.java similarity index 94% rename from src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java rename to src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/Signal.java index a878194..920fa2a 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/SignalEntity.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/Signal.java @@ -14,7 +14,7 @@ @Getter @Setter @Table("SIGNAL") -public class SignalEntity implements Serializable { +public class Signal implements Serializable { @Id @Column("id") private Long id; diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java index 24fe06d..3a8482b 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java @@ -1,6 +1,6 @@ package it.pagopa.interop.signalhub.history.cleanup.repository; -import it.pagopa.interop.signalhub.history.cleanup.entities.SignalEntity; +import it.pagopa.interop.signalhub.history.cleanup.entities.Signal; import org.springframework.data.r2dbc.repository.Query; import org.springframework.data.repository.reactive.ReactiveCrudRepository; import org.springframework.stereotype.Repository; @@ -9,9 +9,9 @@ import java.time.LocalDate; @Repository -public interface SignalRepository extends ReactiveCrudRepository { +public interface SignalRepository extends ReactiveCrudRepository { - @Query("delete from signal s where s.tmst_Insert < :date") - Mono deleteByDateBefore(LocalDate date ); + @Query("delete from Signal s where trunc(s.tmst_Insert) < trunc(:date)") + Mono deleteByDate(LocalDate date ); } \ No newline at end of file diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java index 7f44dce..6e91d7a 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -24,9 +24,9 @@ public class SignalServiceImpl implements SignalService { public void cleanSignal() { LocalDate pastDate = LocalDate.now().minus(Long.parseLong(appConfig.getDelayDays()), ChronoUnit.DAYS); - signalRepository.deleteByDateBefore(pastDate) + signalRepository.deleteByDate(pastDate) .doOnSuccess(x -> log.info("clean complete with success")) - .doOnError(x -> log.error("Find an error {}",x.getMessage())) + .doOnError(ex -> log.error("Find an error {}",ex)) .subscribe(); } diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalEntityTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalTest.java similarity index 55% rename from src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalEntityTest.java rename to src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalTest.java index 35808eb..bccc90d 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalEntityTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalTest.java @@ -1,12 +1,11 @@ package it.pagopa.interop.signalhub.history.cleanup.entity; -import it.pagopa.interop.signalhub.history.cleanup.entities.SignalEntity; +import it.pagopa.interop.signalhub.history.cleanup.entities.Signal; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import java.time.Instant; @@ -14,60 +13,60 @@ @ExtendWith(MockitoExtension.class) -public class SignalEntityTest { +public class SignalTest { @InjectMocks - private SignalEntity signalEntity; + private Signal signal; @BeforeEach public void setUp() { - signalEntity = new SignalEntity(); + signal = new Signal(); } @Test public void testId() { Long id = 1L; - signalEntity.setId(id); - assertEquals(id, signalEntity.getId()); + signal.setId(id); + assertEquals(id, signal.getId()); } @Test public void testSignalId() { Long signalId = 123L; - signalEntity.setSignalId(signalId); - assertEquals(signalId, signalEntity.getSignalId()); + signal.setSignalId(signalId); + assertEquals(signalId, signal.getSignalId()); } @Test public void testObjectId() { String objectId = "testObject"; - signalEntity.setObjectId(objectId); - assertEquals(objectId, signalEntity.getObjectId()); + signal.setObjectId(objectId); + assertEquals(objectId, signal.getObjectId()); } @Test public void testEserviceId() { String eserviceId = "testEservice"; - signalEntity.setEserviceId(eserviceId); - assertEquals(eserviceId, signalEntity.getEserviceId()); + signal.setEserviceId(eserviceId); + assertEquals(eserviceId, signal.getEserviceId()); } @Test public void testObjectType() { String objectType = "testType"; - signalEntity.setObjectType(objectType); - assertEquals(objectType, signalEntity.getObjectType()); + signal.setObjectType(objectType); + assertEquals(objectType, signal.getObjectType()); } @Test public void testSignalType() { String signalType = "testSignal"; - signalEntity.setSignalType(signalType); - assertEquals(signalType, signalEntity.getSignalType()); + signal.setSignalType(signalType); + assertEquals(signalType, signal.getSignalType()); } @Test public void testTmstInsert() { Instant tmstInsert = Instant.now(); - signalEntity.setTmstInsert(tmstInsert); - assertEquals(tmstInsert, signalEntity.getTmstInsert()); + signal.setTmstInsert(tmstInsert); + assertEquals(tmstInsert, signal.getTmstInsert()); } } diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java index ab8958f..a4491b9 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java @@ -11,12 +11,8 @@ import org.mockito.junit.jupiter.MockitoExtension; import reactor.core.publisher.Mono; -import java.io.FileNotFoundException; -import java.time.LocalDate; -import java.time.temporal.ChronoUnit; - @ExtendWith(MockitoExtension.class) -public class SignalServiceImplTest { +class SignalServiceImplTest { @InjectMocks private SignalServiceImpl signalService; @@ -27,16 +23,10 @@ public class SignalServiceImplTest { private AppConfig appConfig; @Test - void testDeleteSignal() throws FileNotFoundException { - LocalDate expectedDate = LocalDate.now().minus(30, ChronoUnit.DAYS); - + void testDeleteSignal() { Mockito.when(appConfig.getDelayDays()).thenReturn("30"); - - Mockito.when(signalRepository.deleteByDateBefore(Mockito.any())).thenReturn(Mono.empty()); + Mockito.when(signalRepository.deleteByDate(Mockito.any())).thenReturn(Mono.empty()); signalService.cleanSignal(); - Mockito.verify(signalRepository, Mockito.times(1)).deleteByDateBefore(Mockito.any()); - - - + Mockito.verify(signalRepository, Mockito.times(1)).deleteByDate(Mockito.any()); } } From f19cdb8efc9276ec8c466744f63f5f7c2c31e911 Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Fri, 3 Nov 2023 11:48:02 +0100 Subject: [PATCH 10/17] minor sonar fix --- .../history/cleanup/entities/Signal.java | 1 - .../history/cleanup/config/AppConfigTest.java | 4 +--- .../history/cleanup/entity/SignalTest.java | 18 +++++++++--------- .../impl}/SignalServiceImplTest.java | 2 +- 4 files changed, 11 insertions(+), 14 deletions(-) rename src/test/java/it/pagopa/interop/signalhub/history/cleanup/{serviceImpl => service/impl}/SignalServiceImplTest.java (94%) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/Signal.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/Signal.java index 920fa2a..c210ce2 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/Signal.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/entities/Signal.java @@ -2,7 +2,6 @@ import lombok.Getter; import lombok.Setter; -import lombok.ToString; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.Id; import org.springframework.data.relational.core.mapping.Column; diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java index edf503b..1402ff0 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java @@ -14,10 +14,8 @@ public class AppConfigTest { AppConfig appConfig; @Test - public void testDelayDays() { - + void testDelayDays() { appConfig.setDelayDays("10"); - assertEquals("10", appConfig.getDelayDays()); } } diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalTest.java index bccc90d..5677df0 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/entity/SignalTest.java @@ -13,57 +13,57 @@ @ExtendWith(MockitoExtension.class) -public class SignalTest { +class SignalTest { @InjectMocks private Signal signal; @BeforeEach - public void setUp() { + void setUp() { signal = new Signal(); } @Test - public void testId() { + void testId() { Long id = 1L; signal.setId(id); assertEquals(id, signal.getId()); } @Test - public void testSignalId() { + void testSignalId() { Long signalId = 123L; signal.setSignalId(signalId); assertEquals(signalId, signal.getSignalId()); } @Test - public void testObjectId() { + void testObjectId() { String objectId = "testObject"; signal.setObjectId(objectId); assertEquals(objectId, signal.getObjectId()); } @Test - public void testEserviceId() { + void testEserviceId() { String eserviceId = "testEservice"; signal.setEserviceId(eserviceId); assertEquals(eserviceId, signal.getEserviceId()); } @Test - public void testObjectType() { + void testObjectType() { String objectType = "testType"; signal.setObjectType(objectType); assertEquals(objectType, signal.getObjectType()); } @Test - public void testSignalType() { + void testSignalType() { String signalType = "testSignal"; signal.setSignalType(signalType); assertEquals(signalType, signal.getSignalType()); } @Test - public void testTmstInsert() { + void testTmstInsert() { Instant tmstInsert = Instant.now(); signal.setTmstInsert(tmstInsert); assertEquals(tmstInsert, signal.getTmstInsert()); diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImplTest.java similarity index 94% rename from src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java rename to src/test/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImplTest.java index a4491b9..ccc0ab9 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/serviceImpl/SignalServiceImplTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImplTest.java @@ -1,4 +1,4 @@ -package it.pagopa.interop.signalhub.history.cleanup.serviceImpl; +package it.pagopa.interop.signalhub.history.cleanup.service.impl; import it.pagopa.interop.signalhub.history.cleanup.config.AppConfig; import it.pagopa.interop.signalhub.history.cleanup.repository.SignalRepository; From fff11ddf2631c6f749a88639f03b11d2d821af4f Mon Sep 17 00:00:00 2001 From: "cristopher.moccia" Date: Fri, 3 Nov 2023 12:56:07 +0100 Subject: [PATCH 11/17] some fixes --- .../history/cleanup/execution/BatchTaskExecutor.java | 5 +++-- .../history/cleanup/repository/SignalRepository.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java index a3c27f8..f0d035f 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java @@ -1,6 +1,7 @@ package it.pagopa.interop.signalhub.history.cleanup.execution; import it.pagopa.interop.signalhub.history.cleanup.controller.SignalServiceController; +import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.context.annotation.Profile; @@ -8,12 +9,12 @@ @Profile("!test") @Component +@AllArgsConstructor public class BatchTaskExecutor implements CommandLineRunner { - @Autowired private SignalServiceController signalServiceController; @Override - public void run(String... args) throws Exception { + public void run(String... args) { signalServiceController.cleanSignal(); } } diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java index 3a8482b..9519e7e 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java @@ -11,7 +11,7 @@ @Repository public interface SignalRepository extends ReactiveCrudRepository { - @Query("delete from Signal s where trunc(s.tmst_Insert) < trunc(:date)") + @Query("delete from SIGNAL where tmst_Insert < :date") Mono deleteByDate(LocalDate date ); } \ No newline at end of file From 324e09208249bb3c2a8b890f0fe6fc90053aa2b5 Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:53:02 +0100 Subject: [PATCH 12/17] fix execution as batch --- pom.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pom.xml b/pom.xml index 84afa78..ca3ae2a 100644 --- a/pom.xml +++ b/pom.xml @@ -78,14 +78,6 @@ spring-boot-starter-test test - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-webflux - org.springframework.boot spring-boot-starter-reactor-netty From 2a14a995bec380e4ea85f491eaaad1b7918a2bad Mon Sep 17 00:00:00 2001 From: ariannazafarana <112564573+ariannazafarana@users.noreply.github.com> Date: Tue, 14 Nov 2023 12:21:25 +0100 Subject: [PATCH 13/17] adds log --- .../history/cleanup/controller/SignalServiceController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java index 877471f..3cff3a1 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java @@ -22,9 +22,9 @@ public void cleanSignal(){ try { signalService.cleanSignal(); }catch (PDNDBatchAlreadyExistException ex) { - log.info(ex.getMessage()); + log.error("An error occurred ", ex); } - + log.info("CleanSignal Ended: {}", dateTimeFormatter.format(LocalDateTime.now())); } From a166c5b205473253f1b8a5b62d2d02fbe9a239c4 Mon Sep 17 00:00:00 2001 From: "DIR\\noemi.luongo" Date: Wed, 29 Nov 2023 10:15:20 +0100 Subject: [PATCH 14/17] fix date in UTC --- .../history/cleanup/repository/SignalRepository.java | 3 ++- .../history/cleanup/service/impl/SignalServiceImpl.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java index 9519e7e..9ed5976 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/repository/SignalRepository.java @@ -6,12 +6,13 @@ import org.springframework.stereotype.Repository; import reactor.core.publisher.Mono; +import java.time.Instant; import java.time.LocalDate; @Repository public interface SignalRepository extends ReactiveCrudRepository { @Query("delete from SIGNAL where tmst_Insert < :date") - Mono deleteByDate(LocalDate date ); + Mono deleteByDate(Instant date ); } \ No newline at end of file diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java index 6e91d7a..33a75fe 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.Instant; import java.time.LocalDate; import java.time.temporal.ChronoUnit; @@ -23,10 +24,10 @@ public class SignalServiceImpl implements SignalService { private AppConfig appConfig; public void cleanSignal() { - LocalDate pastDate = LocalDate.now().minus(Long.parseLong(appConfig.getDelayDays()), ChronoUnit.DAYS); + Instant pastDate = Instant.now().minus(Long.parseLong(appConfig.getDelayDays()), ChronoUnit.DAYS); signalRepository.deleteByDate(pastDate) .doOnSuccess(x -> log.info("clean complete with success")) - .doOnError(ex -> log.error("Find an error {}",ex)) + .doOnError(ex -> log.error("Error on signal cleanup {}",ex)) .subscribe(); } From 440df0a2d3bfb5ee731134d0b459abdbf34f4d54 Mon Sep 17 00:00:00 2001 From: "cristopher.moccia" Date: Mon, 11 Dec 2023 16:44:12 +0100 Subject: [PATCH 15/17] added log pattern --- src/main/resources/application.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 709e5e6..62471ed 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,8 @@ logging.level.root=INFO +logging.pattern.level=%2p [%X{traceId:-}] database.name=${DB_NAME:signal-hub} -database.host=${DB_HOST:localhost} +database.host=${DATABASE_WRITER_HOST:localhost} database.port=${DB_PORT:5432} database.username=${DB_USER:postgres} database.password=${DB_PASSWORD:postgres} From 9b41fe425e42e40908df28d510c1090f625c9dd9 Mon Sep 17 00:00:00 2001 From: "cristopher.moccia" Date: Wed, 13 Dec 2023 09:55:16 +0100 Subject: [PATCH 16/17] Some fixes and changed delay time --- .../history/cleanup/config/AppConfig.java | 2 +- .../cleanup/execution/BatchTaskExecutor.java | 3 +-- .../cleanup/service/impl/SignalServiceImpl.java | 14 ++++---------- src/main/resources/application.properties | 2 +- .../history/cleanup/config/AppConfigTest.java | 6 +++--- .../service/impl/SignalServiceImplTest.java | 3 +-- 6 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfig.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfig.java index d236835..8e7809c 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfig.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfig.java @@ -11,5 +11,5 @@ @Setter public class AppConfig { - private String delayDays; + private String delayHours; } diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java index f0d035f..1f7d6af 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/execution/BatchTaskExecutor.java @@ -2,7 +2,6 @@ import it.pagopa.interop.signalhub.history.cleanup.controller.SignalServiceController; import lombok.AllArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; @@ -11,7 +10,7 @@ @Component @AllArgsConstructor public class BatchTaskExecutor implements CommandLineRunner { - private SignalServiceController signalServiceController; + private final SignalServiceController signalServiceController; @Override public void run(String... args) { diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java index 33a75fe..fd5afce 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImpl.java @@ -5,29 +5,23 @@ import it.pagopa.interop.signalhub.history.cleanup.service.SignalService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.Instant; -import java.time.LocalDate; import java.time.temporal.ChronoUnit; @Slf4j @AllArgsConstructor @Service public class SignalServiceImpl implements SignalService { - - @Autowired - private SignalRepository signalRepository; - - @Autowired - private AppConfig appConfig; + private final SignalRepository signalRepository; + private final AppConfig appConfig; public void cleanSignal() { - Instant pastDate = Instant.now().minus(Long.parseLong(appConfig.getDelayDays()), ChronoUnit.DAYS); + Instant pastDate = Instant.now().minus(Long.parseLong(appConfig.getDelayHours()), ChronoUnit.HOURS); signalRepository.deleteByDate(pastDate) .doOnSuccess(x -> log.info("clean complete with success")) - .doOnError(ex -> log.error("Error on signal cleanup {}",ex)) + .doOnError(ex -> log.error("Error on signal cleanup", ex)) .subscribe(); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 62471ed..9a8d864 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -16,4 +16,4 @@ spring.r2dbc.pool.initial-size=5 spring.r2dbc.pool.enabled=true spring.data.r2dbc.repositories.enabled=true -pdnd.history-cleanup.delay-days=30 \ No newline at end of file +pdnd.history-cleanup.delay-hours=30 \ No newline at end of file diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java index 1402ff0..2839879 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/config/AppConfigTest.java @@ -8,14 +8,14 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @ExtendWith(MockitoExtension.class) -public class AppConfigTest { +class AppConfigTest { @InjectMocks AppConfig appConfig; @Test void testDelayDays() { - appConfig.setDelayDays("10"); - assertEquals("10", appConfig.getDelayDays()); + appConfig.setDelayHours("10"); + assertEquals("10", appConfig.getDelayHours()); } } diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImplTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImplTest.java index ccc0ab9..c030ff5 100644 --- a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImplTest.java +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/service/impl/SignalServiceImplTest.java @@ -2,7 +2,6 @@ import it.pagopa.interop.signalhub.history.cleanup.config.AppConfig; import it.pagopa.interop.signalhub.history.cleanup.repository.SignalRepository; -import it.pagopa.interop.signalhub.history.cleanup.service.impl.SignalServiceImpl; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -24,7 +23,7 @@ class SignalServiceImplTest { @Test void testDeleteSignal() { - Mockito.when(appConfig.getDelayDays()).thenReturn("30"); + Mockito.when(appConfig.getDelayHours()).thenReturn("30"); Mockito.when(signalRepository.deleteByDate(Mockito.any())).thenReturn(Mono.empty()); signalService.cleanSignal(); Mockito.verify(signalRepository, Mockito.times(1)).deleteByDate(Mockito.any()); From 3e6081fdc88941dbfb0e1f0efce2ba3d3f1881c4 Mon Sep 17 00:00:00 2001 From: "cristopher.moccia" Date: Fri, 15 Dec 2023 15:27:50 +0100 Subject: [PATCH 17/17] some fix and added controller test --- pom.xml | 9 ++-- .../controller/SignalServiceController.java | 2 +- .../SignalServiceControllerTest.java | 49 +++++++++++++++++++ 3 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 src/test/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceControllerTest.java diff --git a/pom.xml b/pom.xml index ca3ae2a..d6658a4 100644 --- a/pom.xml +++ b/pom.xml @@ -175,12 +175,15 @@ jacoco-maven-plugin 0.8.10 - + + **/config/** + **/execution/** + **/utility/** + **/SignalHubHistoryCleanupApplication.class + - prepare-integration-tests - pre-integration-test prepare-agent diff --git a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java index 3cff3a1..53136be 100644 --- a/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java +++ b/src/main/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceController.java @@ -21,7 +21,7 @@ public void cleanSignal(){ log.info("CleanSignal Started: {}", dateTimeFormatter.format(LocalDateTime.now())); try { signalService.cleanSignal(); - }catch (PDNDBatchAlreadyExistException ex) { + } catch (PDNDBatchAlreadyExistException ex) { log.error("An error occurred ", ex); } log.info("CleanSignal Ended: {}", dateTimeFormatter.format(LocalDateTime.now())); diff --git a/src/test/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceControllerTest.java b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceControllerTest.java new file mode 100644 index 0000000..8c29117 --- /dev/null +++ b/src/test/java/it/pagopa/interop/signalhub/history/cleanup/controller/SignalServiceControllerTest.java @@ -0,0 +1,49 @@ +package it.pagopa.interop.signalhub.history.cleanup.controller; + + +import it.pagopa.interop.signalhub.history.cleanup.exception.PDNDBatchAlreadyExistException; +import it.pagopa.interop.signalhub.history.cleanup.service.SignalService; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class SignalServiceControllerTest { + + @Mock + private SignalService signalService; + + @InjectMocks + private SignalServiceController signalServiceController; + + + @Test + void whenCleanSignalOk(){ + + Mockito.doNothing().when(signalService).cleanSignal(); + + this.signalServiceController.cleanSignal(); + + Mockito.verify(signalService, Mockito.timeout(1000).times(1)).cleanSignal(); + + } + + @Test + void whenCleanSignalThrowPDNBatchAlreadyExistException(){ + + Mockito.doThrow(new PDNDBatchAlreadyExistException()) + .when(signalService).cleanSignal(); + + this.signalServiceController.cleanSignal(); + + Mockito.verify(signalService, Mockito.timeout(1000).times(1)).cleanSignal(); + + } + + + + +}