From b3a504a0b791258daf0b35479892249b62788cfd Mon Sep 17 00:00:00 2001 From: Marko Streich Date: Fri, 14 Jun 2024 16:14:10 +0200 Subject: [PATCH 1/5] 1442 fix usage of domain specific s3 in engine --- .../S3IntegrationClientAutoConfiguration.java | 15 ++++----------- .../client/service/S3StorageUrlProvider.java | 9 --------- .../src/main/resources/application.yml | 9 --------- .../usecase/WorkOnTaskFileUseCaseTest.java | 7 ++----- 4 files changed, 6 insertions(+), 34 deletions(-) diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java index 043e66f9a..84ee37a85 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java @@ -105,7 +105,7 @@ public FileExtensionService fileExtensionValidation(final SupportedFileExtension } /** - * Instance of a {@link FileExtensionService} containing supported file extensions configured within in the 'de.muenchen.oss.digiwf.s3' scope. + * Instance of a {@link FileExtensionService} containing supported file extensions configured within in the 'de.muenchen.oss.digiwf.s3.client' scope. * * @return {@link FileExtensionService} for managing file extensions. */ @@ -116,21 +116,14 @@ public FileExtensionService fileExtensionValidationFromS3IntegrationClientProper } /** - * Instance of an {@link S3StorageUrlProvider} containing an externally created {@link S3DomainProvider} for retrieving S + * Instance of an {@link S3StorageUrlProvider} containing an externally created {@link S3DomainProvider} for retrieving the S3 storage URL. * - * @param s3DomainProvider - * @return + * @param s3DomainProvider Provider of domain specific S3 storages configured in process configurations. + * @return Provider of the S3 storage URL. */ @Bean - @ConditionalOnBean(S3DomainProvider.class) public S3StorageUrlProvider s3StorageUrlProvider(final S3DomainProvider s3DomainProvider) { return new S3StorageUrlProvider(s3DomainProvider, this.s3IntegrationClientProperties.getDocumentStorageUrl()); } - @Bean - @ConditionalOnMissingBean(S3DomainProvider.class) - public S3StorageUrlProvider s3StorageUrlProviderWithoutDomainProvider() { - return new S3StorageUrlProvider(this.s3IntegrationClientProperties.getDocumentStorageUrl()); - } - } diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java index 8a0043861..88c71d7c0 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java @@ -29,15 +29,6 @@ public S3StorageUrlProvider(final S3DomainProvider s3DomainProvider, final Strin this.defaultDocumentStorageUrl = defaultDocumentStorageUrl; } - /** - * Constructor for client users which do not obtain their own {@link S3DomainProvider}. - * - * @param defaultDocumentStorageUrl The default S3 storage URL to use if no domain-specific URL is available. - */ - public S3StorageUrlProvider(final String defaultDocumentStorageUrl) { - this(processDefinition -> Optional.empty(), defaultDocumentStorageUrl); - } - /** * Provides an S3 storage URL either configured in a process configuration of a given process definition or the default URL. * diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml index 2312c3f4f..4c58aa06f 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml @@ -32,15 +32,6 @@ spring: sendMessage-out-0: destination: dwf-connector-${DIGIWF_ENV} -de: - muenchen: - oss: - digiwf: - s3: - client: - document-storage-url: "${DOCUMENT_STORAGE_HOST:http://localhost}:${DOCUMENT_STORAGE_PORT:8080}" - enable-security: false - io: muenchendigital: digiwf: diff --git a/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java b/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java index 0bef71f7c..4ea22a53f 100644 --- a/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java +++ b/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java @@ -22,10 +22,7 @@ import org.springframework.web.client.HttpServerErrorException; import reactor.core.publisher.Mono; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.UUID; +import java.util.*; import static de.muenchen.oss.digiwf.task.service.application.usecase.TestFixtures.generateTask; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; @@ -45,7 +42,7 @@ class WorkOnTaskFileUseCaseTest { private final CurrentUserPort currentUserPort = mock(CurrentUserPort.class); - private final S3StorageUrlProvider s3StorageUrlProvider = new S3StorageUrlProvider("defaultS3Url"); + private final S3StorageUrlProvider s3StorageUrlProvider = new S3StorageUrlProvider(processDefinitionId -> Optional.empty(), "defaultS3Url"); private final WorkOnTaskFileUseCase useCase = new WorkOnTaskFileUseCase(documentStorageFolderRepository, presignedUrlPort, taskFileConfigResolverPort, taskQueryPort, currentUserPort, s3StorageUrlProvider); From 7646ce9abff855cf09bcbd5148b6545565f76256 Mon Sep 17 00:00:00 2001 From: Marko Streich Date: Mon, 17 Jun 2024 08:24:07 +0200 Subject: [PATCH 2/5] Revert "1442 fix usage of domain specific s3 in engine" This reverts commit b3a504a0b791258daf0b35479892249b62788cfd. --- .../S3IntegrationClientAutoConfiguration.java | 15 +++++++++++---- .../client/service/S3StorageUrlProvider.java | 9 +++++++++ .../src/main/resources/application.yml | 9 +++++++++ .../usecase/WorkOnTaskFileUseCaseTest.java | 7 +++++-- 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java index 84ee37a85..043e66f9a 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java @@ -105,7 +105,7 @@ public FileExtensionService fileExtensionValidation(final SupportedFileExtension } /** - * Instance of a {@link FileExtensionService} containing supported file extensions configured within in the 'de.muenchen.oss.digiwf.s3.client' scope. + * Instance of a {@link FileExtensionService} containing supported file extensions configured within in the 'de.muenchen.oss.digiwf.s3' scope. * * @return {@link FileExtensionService} for managing file extensions. */ @@ -116,14 +116,21 @@ public FileExtensionService fileExtensionValidationFromS3IntegrationClientProper } /** - * Instance of an {@link S3StorageUrlProvider} containing an externally created {@link S3DomainProvider} for retrieving the S3 storage URL. + * Instance of an {@link S3StorageUrlProvider} containing an externally created {@link S3DomainProvider} for retrieving S * - * @param s3DomainProvider Provider of domain specific S3 storages configured in process configurations. - * @return Provider of the S3 storage URL. + * @param s3DomainProvider + * @return */ @Bean + @ConditionalOnBean(S3DomainProvider.class) public S3StorageUrlProvider s3StorageUrlProvider(final S3DomainProvider s3DomainProvider) { return new S3StorageUrlProvider(s3DomainProvider, this.s3IntegrationClientProperties.getDocumentStorageUrl()); } + @Bean + @ConditionalOnMissingBean(S3DomainProvider.class) + public S3StorageUrlProvider s3StorageUrlProviderWithoutDomainProvider() { + return new S3StorageUrlProvider(this.s3IntegrationClientProperties.getDocumentStorageUrl()); + } + } diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java index 88c71d7c0..8a0043861 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/service/S3StorageUrlProvider.java @@ -29,6 +29,15 @@ public S3StorageUrlProvider(final S3DomainProvider s3DomainProvider, final Strin this.defaultDocumentStorageUrl = defaultDocumentStorageUrl; } + /** + * Constructor for client users which do not obtain their own {@link S3DomainProvider}. + * + * @param defaultDocumentStorageUrl The default S3 storage URL to use if no domain-specific URL is available. + */ + public S3StorageUrlProvider(final String defaultDocumentStorageUrl) { + this(processDefinition -> Optional.empty(), defaultDocumentStorageUrl); + } + /** * Provides an S3 storage URL either configured in a process configuration of a given process definition or the default URL. * diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml index 4c58aa06f..2312c3f4f 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml @@ -32,6 +32,15 @@ spring: sendMessage-out-0: destination: dwf-connector-${DIGIWF_ENV} +de: + muenchen: + oss: + digiwf: + s3: + client: + document-storage-url: "${DOCUMENT_STORAGE_HOST:http://localhost}:${DOCUMENT_STORAGE_PORT:8080}" + enable-security: false + io: muenchendigital: digiwf: diff --git a/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java b/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java index 4ea22a53f..0bef71f7c 100644 --- a/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java +++ b/digiwf-task/digiwf-tasklist-service/src/test/java/de/muenchen/oss/digiwf/task/service/application/usecase/WorkOnTaskFileUseCaseTest.java @@ -22,7 +22,10 @@ import org.springframework.web.client.HttpServerErrorException; import reactor.core.publisher.Mono; -import java.util.*; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.UUID; import static de.muenchen.oss.digiwf.task.service.application.usecase.TestFixtures.generateTask; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; @@ -42,7 +45,7 @@ class WorkOnTaskFileUseCaseTest { private final CurrentUserPort currentUserPort = mock(CurrentUserPort.class); - private final S3StorageUrlProvider s3StorageUrlProvider = new S3StorageUrlProvider(processDefinitionId -> Optional.empty(), "defaultS3Url"); + private final S3StorageUrlProvider s3StorageUrlProvider = new S3StorageUrlProvider("defaultS3Url"); private final WorkOnTaskFileUseCase useCase = new WorkOnTaskFileUseCase(documentStorageFolderRepository, presignedUrlPort, taskFileConfigResolverPort, taskQueryPort, currentUserPort, s3StorageUrlProvider); From ea83c253dcf50b1c71c6095a08f1561f7dc61a7d Mon Sep 17 00:00:00 2001 From: Marko Streich Date: Mon, 17 Jun 2024 09:51:52 +0200 Subject: [PATCH 3/5] 1442 fix order of configurations --- .../oss/digiwf/shared/file/S3Configuration.java | 3 +-- .../S3IntegrationClientAutoConfiguration.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/digiwf-engine/digiwf-engine-service/src/main/java/de/muenchen/oss/digiwf/shared/file/S3Configuration.java b/digiwf-engine/digiwf-engine-service/src/main/java/de/muenchen/oss/digiwf/shared/file/S3Configuration.java index a16e87433..651946a16 100644 --- a/digiwf-engine/digiwf-engine-service/src/main/java/de/muenchen/oss/digiwf/shared/file/S3Configuration.java +++ b/digiwf-engine/digiwf-engine-service/src/main/java/de/muenchen/oss/digiwf/shared/file/S3Configuration.java @@ -6,7 +6,6 @@ import de.muenchen.oss.digiwf.s3.integration.client.service.S3DomainProvider; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; @@ -17,8 +16,8 @@ * @author martin.dietrich */ @Configuration -@ComponentScan(basePackages = { "de.muenchen.oss.digiwf.s3.integration.client" }) public class S3Configuration { + /** * Provides the {@link RestTemplate} which is used in {@link ApiClient}. * diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java index 043e66f9a..9b130903c 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java @@ -20,6 +20,7 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; +import org.springframework.core.annotation.Order; import org.springframework.security.oauth2.client.AuthorizedClientServiceOAuth2AuthorizedClientManager; import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; @@ -116,10 +117,10 @@ public FileExtensionService fileExtensionValidationFromS3IntegrationClientProper } /** - * Instance of an {@link S3StorageUrlProvider} containing an externally created {@link S3DomainProvider} for retrieving S + * Instance of an {@link S3StorageUrlProvider} containing an externally created {@link S3DomainProvider} for retrieving the S3 storage URL. * - * @param s3DomainProvider - * @return + * @param s3DomainProvider Provider of domain specific S3 storages configured in process configurations. + * @return Provider of the S3 storage URL. */ @Bean @ConditionalOnBean(S3DomainProvider.class) @@ -127,6 +128,11 @@ public S3StorageUrlProvider s3StorageUrlProvider(final S3DomainProvider s3Domain return new S3StorageUrlProvider(s3DomainProvider, this.s3IntegrationClientProperties.getDocumentStorageUrl()); } + /** + * Instance of an {@link S3StorageUrlProvider} containing a default {@link S3DomainProvider}. The instance will only return the default S3 URL. + * + * @return Provider of the S3 storage URL. + */ @Bean @ConditionalOnMissingBean(S3DomainProvider.class) public S3StorageUrlProvider s3StorageUrlProviderWithoutDomainProvider() { From c7fde691060fd5f93ffd1c6e705c71cb319bc17a Mon Sep 17 00:00:00 2001 From: Marko Streich Date: Mon, 17 Jun 2024 09:52:47 +0200 Subject: [PATCH 4/5] 1442 remove redundant configuration --- .../src/main/resources/application.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml index 2312c3f4f..4c58aa06f 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-service/src/main/resources/application.yml @@ -32,15 +32,6 @@ spring: sendMessage-out-0: destination: dwf-connector-${DIGIWF_ENV} -de: - muenchen: - oss: - digiwf: - s3: - client: - document-storage-url: "${DOCUMENT_STORAGE_HOST:http://localhost}:${DOCUMENT_STORAGE_PORT:8080}" - enable-security: false - io: muenchendigital: digiwf: From c5951b4837a6ef555251973631d34b08c43bfcbb Mon Sep 17 00:00:00 2001 From: Marko Streich Date: Mon, 17 Jun 2024 09:58:38 +0200 Subject: [PATCH 5/5] 1442 remove redundant import --- .../configuration/S3IntegrationClientAutoConfiguration.java | 1 - 1 file changed, 1 deletion(-) diff --git a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java index 9b130903c..2ed50ccdf 100644 --- a/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java +++ b/digiwf-integrations/digiwf-s3-integration/digiwf-s3-integration-client-starter/src/main/java/de/muenchen/oss/digiwf/s3/integration/client/configuration/S3IntegrationClientAutoConfiguration.java @@ -20,7 +20,6 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; -import org.springframework.core.annotation.Order; import org.springframework.security.oauth2.client.AuthorizedClientServiceOAuth2AuthorizedClientManager; import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;