diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ExternalControllerAdvice.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ExternalControllerAdvice.java index c3de89a09..05d16a50f 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ExternalControllerAdvice.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ExternalControllerAdvice.java @@ -1,29 +1,5 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import java.time.OffsetDateTime; -import java.util.Map; -import java.util.stream.Collectors; - -import org.quartz.JobDataMap; -import org.quartz.JobKey; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.quartz.Trigger; -import org.quartz.TriggerBuilder; -import org.springframework.core.Ordered; -import org.springframework.core.annotation.Order; -import org.springframework.http.HttpStatus; -import org.springframework.http.converter.HttpMessageNotReadableException; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.web.bind.MethodArgumentNotValidException; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.InitBinder; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.bind.annotation.RestControllerAdvice; -import org.springframework.web.multipart.support.MissingServletRequestPartException; - import com.fasterxml.jackson.databind.exc.InvalidFormatException; import com.iqser.red.commons.spring.ErrorMessage; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; @@ -31,9 +7,26 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.knecon.fforesight.tenantcommons.TenantContext; - +import io.swagger.v3.oas.annotations.Hidden; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.quartz.JobDataMap; +import org.quartz.JobKey; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpStatus; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.support.MissingServletRequestPartException; + +import java.time.OffsetDateTime; +import java.util.Map; +import java.util.stream.Collectors; @Slf4j @RequiredArgsConstructor @@ -44,6 +37,7 @@ public class ExternalControllerAdvice { private final Scheduler scheduler; + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.NOT_FOUND) @ExceptionHandler(value = NotFoundException.class) @@ -55,7 +49,7 @@ public class ExternalControllerAdvice { /* error handling */ - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler(value = BadRequestException.class) @@ -64,7 +58,7 @@ public class ExternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.CONFLICT) @ExceptionHandler(value = {ConflictException.class}) @@ -73,7 +67,7 @@ public class ExternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.FORBIDDEN) @ExceptionHandler({AccessDeniedException.class}) @@ -82,7 +76,7 @@ public class ExternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.FORBIDDEN) @ExceptionHandler({NotAllowedException.class}) @@ -91,7 +85,7 @@ public class ExternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) @ExceptionHandler({org.springframework.security.acls.model.NotFoundException.class}) @@ -107,7 +101,7 @@ public class ExternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler({MethodArgumentNotValidException.class}) @@ -118,7 +112,7 @@ public class ExternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), String.format("You have empty/wrong formatted parameters: %s", errorListAsString)); } - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler({MissingServletRequestPartException.class}) @@ -127,7 +121,7 @@ public class ExternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } - + @Hidden @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler({HttpMessageNotReadableException.class}) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java index fbd3ef487..62a889ff4 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/ComponentControllerV2.java @@ -12,7 +12,7 @@ import static com.iqser.red.service.persistence.service.v2.api.external.resource import static com.iqser.red.service.persistence.service.v2.api.external.resource.FileResource.FILE_ID_PARAM; @RestController -@Tag(name = "components", description = "Provides operation related to components") +@Tag(name = "4. component endpoints", description = "Provides operations related to components") public class ComponentControllerV2 implements ComponentResource { diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierControllerV2.java index 03888775e..144a252b2 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierControllerV2.java @@ -21,7 +21,7 @@ import static com.iqser.red.service.persistence.service.v2.api.external.resource @RestController @RequiredArgsConstructor -@Tag(name = "dossiers", description = "Provides operation related to dossiers") +@Tag(name = "2. dossier endpoints", description = "Provides operations related to dossiers") public class DossierControllerV2 implements DossierResource { private final DossierTemplateController dossierTemplateController; diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java index b8b164119..c9226fc4e 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java @@ -12,7 +12,7 @@ import java.util.List; @RestController @RequiredArgsConstructor -@Tag(name = "dossier-templates", description = "Provides operation related to dossier templates") +@Tag(name = "1. dossier templates endpoints", description = "Provides operations related to dossier templates") public class DossierTemplateControllerV2 implements DossierTemplateResource { private final DossierTemplateController dossierTemplateController; diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java index b578a7b8e..b63408b74 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/FileControllerV2.java @@ -23,7 +23,7 @@ import static com.iqser.red.service.persistence.service.v2.api.external.resource @RestController @RequiredArgsConstructor -@Tag(name = "files", description = "Provides operation related to files") +@Tag(name = "3. file endpoints", description = "Provides operations related to files") public class FileControllerV2 implements FileResource { private final UploadController uploadController; diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/LicenseControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/LicenseControllerV2.java index 1c2118b82..8a555d5e9 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/LicenseControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/LicenseControllerV2.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor -@Tag(name = "license", description = "Provides operation related to the license") +@Tag(name = "5. license endpoints", description = "Provides operations related to the license") public class LicenseControllerV2 implements LicenseResource { private final LicenseReportController licenseReportController; diff --git a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java index 45afaee34..c366ea3cf 100644 --- a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java +++ b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java @@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.v1.internal.api.controller; import com.iqser.red.commons.spring.ErrorMessage; import com.iqser.red.service.persistence.management.v1.processor.exception.*; +import io.swagger.v3.oas.annotations.Hidden; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -23,6 +24,7 @@ public class InternalControllerAdvice { /* error handling */ + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) @ExceptionHandler(value = NullPointerException.class) @@ -33,6 +35,7 @@ public class InternalControllerAdvice { } + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.NOT_FOUND) @ExceptionHandler(value = NotFoundException.class) @@ -42,6 +45,7 @@ public class InternalControllerAdvice { } + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.NOT_FOUND) @ExceptionHandler(value = DossierNotFoundException.class) @@ -51,6 +55,7 @@ public class InternalControllerAdvice { } + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler(value = InvalidRulesException.class) @@ -60,6 +65,7 @@ public class InternalControllerAdvice { } + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.CONFLICT) @ExceptionHandler(value = ConflictException.class) @@ -68,7 +74,7 @@ public class InternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } - + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler(value = BadRequestException.class) @@ -78,6 +84,7 @@ public class InternalControllerAdvice { } + @Hidden @ResponseBody @ExceptionHandler(value = SQLException.class) public ResponseEntity handleSQLException(SQLException e) { @@ -96,6 +103,7 @@ public class InternalControllerAdvice { } + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler(value = MethodArgumentNotValidException.class) @@ -106,6 +114,7 @@ public class InternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), String.format("You have empty/wrong formatted parameters: %s", errorListAsString)); } + @Hidden @ResponseBody @ResponseStatus(value = HttpStatus.UNPROCESSABLE_ENTITY) @ExceptionHandler(value = RulesTimeoutDetectedException.class) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/SpringDocRedirectController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/SpringDocRedirectController.java new file mode 100644 index 000000000..72c74872e --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/SpringDocRedirectController.java @@ -0,0 +1,35 @@ +package com.iqser.red.service.peristence.v1.server; + +import com.knecon.fforesight.swaggercommons.SpringDocProperties; +import io.swagger.v3.oas.annotations.Hidden; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.IOException; + +@Slf4j +@RestController +@RequiredArgsConstructor +@ConditionalOnProperty(value = "fforesight.springdoc.enabled", havingValue = "true") +public class SpringDocRedirectController { + + @Value("${server.servlet.context-path:}") + private String contextPath; + + private final SpringDocProperties springDocProperties; + + + @Hidden + @GetMapping({"/api", "/api/"}) + public void home(HttpServletRequest request, HttpServletResponse response) throws IOException { + + response.sendRedirect(contextPath + springDocProperties.getBasePath() + "/docs/swagger-ui"); + } + +} \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/resources/application.yaml b/persistence-service-v1/persistence-service-server-v1/src/main/resources/application.yaml index 136ecb21f..037fa3048 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/resources/application.yaml +++ b/persistence-service-v1/persistence-service-server-v1/src/main/resources/application.yaml @@ -110,10 +110,10 @@ fforesight: ignored-endpoints: [ '/redaction-gateway-v1','/actuator/health/**', '/redaction-gateway-v1/async/download/with-ott/**', '/internal-api/**', '/redaction-gateway-v1/docs/swagger-ui', '/redaction-gateway-v1/docs/**','/redaction-gateway-v1/docs', - '/api','/api/docs/**','/api/docs','/api/docs/swagger-ui' ] + '/api', '/api/','/api/docs/**','/api/docs','/api/docs/swagger-ui' ] enabled: true springdoc: - base-path: '/redaction-gateway-v1' + base-path: '/api' auth-server-url: '/auth' enabled: true default-client-id: 'swagger-ui-client' @@ -142,8 +142,9 @@ springdoc: client-id: swagger-ui-client doc-expansion: none config-url: ${fforesight.springdoc.base-path}/docs/swagger-config + api-docs: path: ${fforesight.springdoc.base-path}/docs?tenantId=${fforesight.springdoc.default-tenant} enabled: ${fforesight.springdoc.enabled} pre-loading-enabled: true - packages-to-scan: [ 'com.iqser.red.persistence.service.v1.external.api' ] + packages-to-scan: [ 'com.iqser.red.persistence.service.v1.external.api', 'com.iqser.red.persistence.service.v2.external.api' ] diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java index ff31a3781..fed452047 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java @@ -1,13 +1,37 @@ package com.iqser.red.service.peristence.v1.server.integration.utils; -import static org.mockito.Mockito.when; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - +import com.iqser.red.service.peristence.v1.server.Application; +import com.iqser.red.service.peristence.v1.server.integration.client.ApplicationConfigClient; +import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; +import com.iqser.red.service.peristence.v1.server.utils.MetricsPrinterService; +import com.iqser.red.service.persistence.management.v1.processor.client.pdftronredactionservice.PDFTronClient; +import com.iqser.red.service.persistence.management.v1.processor.client.redactionservice.RedactionClient; +import com.iqser.red.service.persistence.management.v1.processor.client.searchservice.SearchClient; +import com.iqser.red.service.persistence.management.v1.processor.client.tenantusermanagementservice.UsersClient; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity; +import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles; +import com.iqser.red.service.persistence.management.v1.processor.service.ApplicationConfigService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; +import com.iqser.red.service.persistence.management.v1.processor.service.RedactionLogService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.*; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.*; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.ApplicationConfig; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; +import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; +import com.iqser.red.storage.commons.service.StorageService; +import com.knecon.fforesight.databasetenantcommons.providers.TenantCreatedListener; +import com.knecon.fforesight.databasetenantcommons.providers.events.TenantCreatedEvent; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService; +import com.knecon.fforesight.tenantcommons.TenantContext; +import com.knecon.fforesight.tenantcommons.TenantsClient; +import com.knecon.fforesight.tenantcommons.model.*; +import io.micrometer.prometheus.PrometheusMeterRegistry; +import lombok.extern.slf4j.Slf4j; import org.assertj.core.util.Lists; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -25,11 +49,7 @@ import org.springframework.boot.test.util.TestPropertyValues; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.*; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.StatementCallback; import org.springframework.jdbc.datasource.SingleConnectionDataSource; @@ -45,68 +65,13 @@ import org.springframework.security.web.SecurityFilterChain; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; -import com.iqser.red.service.peristence.v1.server.Application; -import com.iqser.red.service.peristence.v1.server.integration.client.ApplicationConfigClient; -import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; -import com.iqser.red.service.peristence.v1.server.utils.MetricsPrinterService; -import com.iqser.red.service.persistence.management.v1.processor.client.pdftronredactionservice.PDFTronClient; -import com.iqser.red.service.persistence.management.v1.processor.client.redactionservice.RedactionClient; -import com.iqser.red.service.persistence.management.v1.processor.client.searchservice.SearchClient; -import com.iqser.red.service.persistence.management.v1.processor.client.tenantusermanagementservice.UsersClient; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity; -import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles; -import com.iqser.red.service.persistence.management.v1.processor.service.ApplicationConfigService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; -import com.iqser.red.service.persistence.management.v1.processor.service.RedactionLogService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ApplicationConfigRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DigitalSignatureRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeConfigRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierStatusRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadStatusRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributeConfigRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesGeneralConfigurationRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.IndexInformationRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.NotificationPreferencesRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.NotificationRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ReportTemplateRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RuleSetRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ViewedPagesRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.WatermarkRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ForceRedactionRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.LegalBasisChangeRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ManualRedactionRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RecategorizationRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RemoveRedactionRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.ApplicationConfig; -import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; -import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; -import com.iqser.red.storage.commons.service.StorageService; -import com.knecon.fforesight.databasetenantcommons.providers.TenantCreatedListener; -import com.knecon.fforesight.databasetenantcommons.providers.events.TenantCreatedEvent; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; -import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService; -import com.knecon.fforesight.tenantcommons.TenantContext; -import com.knecon.fforesight.tenantcommons.TenantsClient; -import com.knecon.fforesight.tenantcommons.model.AuthDetails; -import com.knecon.fforesight.tenantcommons.model.DatabaseConnection; -import com.knecon.fforesight.tenantcommons.model.S3StorageConnection; -import com.knecon.fforesight.tenantcommons.model.SearchConnection; -import com.knecon.fforesight.tenantcommons.model.TenantResponse; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; -import io.micrometer.prometheus.PrometheusMeterRegistry; -import lombok.extern.slf4j.Slf4j; +import static org.mockito.Mockito.when; @Slf4j @ExtendWith(SpringExtension.class) @@ -116,6 +81,8 @@ import lombok.extern.slf4j.Slf4j; @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, properties = "spring-hibernate-query-utils.n-plus-one-queries-detection.error-level=INFO") public abstract class AbstractPersistenceServerServiceTest { + + @MockBean protected Scheduler scheduler; @MockBean