From 518e5e9f6f13255d912c83454023abe7c0c0e378 Mon Sep 17 00:00:00 2001 From: Stefan Yonkov Date: Fri, 2 May 2025 18:47:22 +0300 Subject: [PATCH 1/7] update dependency versions from MEND - LMCROSSITXSADEPLOY-3204 --- pom.xml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 42be01fc17..0d079bd833 100644 --- a/pom.xml +++ b/pom.xml @@ -15,49 +15,49 @@ cloudfoundry ../multiapps-controller-coverage/target/site/jacoco-aggregate/jacoco.xml - 5.12.1 + 5.12.2 1.12.1 - 5.14.2 + 5.17.0 10.16.1.1 2.2.224 6.1.0 2.24.3 2.0.17 2.18.0 - 4.4 - 2.3 + 4.5.0 + 2.4 4.5.14 4.4.16 3.0.4 6.8.0 3.5.19 - 6.2.4 + 6.2.6 6.4.5 2.5.2 - 6.2.1 - 2.18.3 - 2.18.3 - 4.29.1 - 5.0.0 + 6.3.0 + 2.19.0 + 2.19.0 + 4.31.1 + 5.1.0 2.54.0 1.6.14 - 2.6.0 + 2.7.0 33.4.6-jre - 2.2.0 + 2.3.0 2.10.1 - 1.12.5 - 3.17.4 + 1.14.6 + 3.18.2 1.1.1 - 1.16.1 + 1.18.0 2.31.0 - 3.1.5 + 3.4.0 4.0.2 4.0.5 4.0.5 2.0.1 3.0.0 - 1.78 + 1.80 1.27.1 From 57d6852c5ca398b8f6c5665aa48a2b5bb0d9a441 Mon Sep 17 00:00:00 2001 From: Stefan Yonkov Date: Thu, 8 May 2025 11:19:59 +0300 Subject: [PATCH 2/7] change creation of BlobStoreContext --- .../ObjectStoreFileStorageFactoryBean.java | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java index 929a7d567b..ac7e79504c 100644 --- a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java +++ b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java @@ -1,5 +1,11 @@ package org.cloudfoundry.multiapps.controller.web.configuration.bean.factory; +import java.text.MessageFormat; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import io.pivotal.cfenv.core.CfService; import org.apache.commons.lang3.StringUtils; import org.cloudfoundry.multiapps.controller.core.util.UriUtil; @@ -15,12 +21,6 @@ import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; -import java.text.MessageFormat; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - public class ObjectStoreFileStorageFactoryBean implements FactoryBean, InitializingBean { private static final Logger LOGGER = LoggerFactory.getLogger(ObjectStoreFileStorageFactoryBean.class); @@ -44,16 +44,13 @@ private ObjectStoreFileStorage createObjectStoreFileStorage() { if (providersServiceInfo.isEmpty()) { return null; } + Map exceptions = new HashMap<>(); + for (ObjectStoreServiceInfo objectStoreServiceInfo : providersServiceInfo) { - BlobStoreContext context = getBlobStoreContext(objectStoreServiceInfo); - if (context == null) { - exceptions.put(objectStoreServiceInfo.getProvider(), - new IllegalArgumentException(Messages.MISSING_PROPERTIES_FOR_CREATING_THE_SPECIFIC_PROVIDER)); - continue; - } - ObjectStoreFileStorage fileStorage = createFileStorage(objectStoreServiceInfo, context); try { + BlobStoreContext context = getBlobStoreContext(objectStoreServiceInfo); + ObjectStoreFileStorage fileStorage = createFileStorage(objectStoreServiceInfo, context); fileStorage.testConnection(); LOGGER.info(MessageFormat.format(Messages.OBJECT_STORE_WITH_PROVIDER_0_CREATED, objectStoreServiceInfo.getProvider())); return fileStorage; @@ -61,9 +58,11 @@ private ObjectStoreFileStorage createObjectStoreFileStorage() { exceptions.put(objectStoreServiceInfo.getProvider(), e); } } + exceptions.forEach( - (provider, exception) -> LOGGER.error(MessageFormat.format(Messages.CANNOT_CREATE_OBJECT_STORE_CLIENT_WITH_PROVIDER_0, provider), - exception)); + (provider, exception) -> LOGGER.error( + MessageFormat.format(Messages.CANNOT_CREATE_OBJECT_STORE_CLIENT_WITH_PROVIDER_0, provider), + exception)); throw new IllegalStateException(Messages.NO_VALID_OBJECT_STORE_CONFIGURATION_FOUND); } @@ -77,15 +76,23 @@ private List getProvidersServiceInfo() { private BlobStoreContext getBlobStoreContext(ObjectStoreServiceInfo serviceInfo) { ContextBuilder contextBuilder = ContextBuilder.newBuilder(serviceInfo.getProvider()); + if (serviceInfo.getCredentialsSupplier() != null) { contextBuilder.credentialsSupplier(serviceInfo.getCredentialsSupplier()); } else if (serviceInfo.getIdentity() != null && serviceInfo.getCredential() != null) { contextBuilder.credentials(serviceInfo.getIdentity(), serviceInfo.getCredential()); } else { - return null; + throw new IllegalArgumentException(Messages.MISSING_PROPERTIES_FOR_CREATING_THE_SPECIFIC_PROVIDER); } + resolveContextEndpoint(serviceInfo, contextBuilder); - return contextBuilder.buildView(BlobStoreContext.class); + + try { + return contextBuilder.buildView(BlobStoreContext.class); + } catch (NullPointerException nullPointerException) { + throw new IllegalArgumentException("JClouds failed to build BlobStoreContext. Possible missing credentials.", + nullPointerException); + } } private void resolveContextEndpoint(ObjectStoreServiceInfo serviceInfo, ContextBuilder contextBuilder) { From 3d5a6bd0ad180cc1d1e9316a3c5dec0e5c565f7b Mon Sep 17 00:00:00 2001 From: Stefan Yonkov Date: Mon, 19 May 2025 11:34:06 +0300 Subject: [PATCH 3/7] update dependencies --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0d079bd833..7c7c30ea18 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 6.1.0 2.24.3 2.0.17 - 2.18.0 + 2.19.0 4.5.0 2.4 4.5.14 @@ -32,7 +32,7 @@ 6.8.0 3.5.19 - 6.2.6 + 6.2.7 6.4.5 2.5.2 6.3.0 @@ -41,12 +41,12 @@ 4.31.1 5.1.0 2.54.0 - 1.6.14 + 1.6.15 2.7.0 33.4.6-jre 2.3.0 2.10.1 - 1.14.6 + 1.15.0 3.18.2 1.1.1 1.18.0 From 3a84429d3f77bcd4cc73e312afbeefff8c5c40be Mon Sep 17 00:00:00 2001 From: Stefan Yonkov Date: Tue, 20 May 2025 16:07:47 +0300 Subject: [PATCH 4/7] update logic --- .../multiapps/controller/web/Messages.java | 4 +++ .../ObjectStoreFileStorageFactoryBean.java | 35 +++++++++++++------ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java index 37b4e633ba..f86edeabe1 100644 --- a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java +++ b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java @@ -25,6 +25,10 @@ public final class Messages { public static final String MISSING_PROPERTIES_FOR_CREATING_THE_SPECIFIC_PROVIDER = "Missing properties for creating the specific provider!"; public static final String DEPLOY_FROM_URL_WRONG_CREDENTIALS = "Credentials to {0} are wrong. Make sure that they are correct."; + public static final String MISSING_PROVIDER_FOR_OBJECT_STORE_SERVICE = "Missing provider for object store service."; + + public static final String FAILED_TO_CREATE_BLOB_STORE_CONTEXT_FOR_PROVIDER_0 = "Failed to create BlobStoreContext for provider: {0}"; + // Audit log messages public static final String USER_TRYING_TO_LOGIN_AUDIT_LOG_MESSAGE = "\"{0}\" is trying to login in space \"{1}\""; public static final String USER_SUCCESSFULLY_LOGGED_IN_AUDIT_LOG_MESSAGE = "\"{0}\" successfully logged in space \"{1}\""; diff --git a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java index ac7e79504c..d645b99979 100644 --- a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java +++ b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java @@ -58,7 +58,7 @@ private ObjectStoreFileStorage createObjectStoreFileStorage() { exceptions.put(objectStoreServiceInfo.getProvider(), e); } } - + exceptions.forEach( (provider, exception) -> LOGGER.error( MessageFormat.format(Messages.CANNOT_CREATE_OBJECT_STORE_CLIENT_WITH_PROVIDER_0, provider), @@ -75,23 +75,36 @@ private List getProvidersServiceInfo() { } private BlobStoreContext getBlobStoreContext(ObjectStoreServiceInfo serviceInfo) { + String provider = serviceInfo.getProvider(); + if (StringUtils.isBlank(provider)) { + throw new IllegalArgumentException(Messages.MISSING_PROVIDER_FOR_OBJECT_STORE_SERVICE); + } + ContextBuilder contextBuilder = ContextBuilder.newBuilder(serviceInfo.getProvider()); + applyCredentials(serviceInfo, contextBuilder); + + resolveContextEndpoint(serviceInfo, contextBuilder); + + BlobStoreContext context = contextBuilder.buildView(BlobStoreContext.class); + if (context == null) { + throw new IllegalStateException(MessageFormat.format(Messages.FAILED_TO_CREATE_BLOB_STORE_CONTEXT_FOR_PROVIDER_0, provider)); + } + + return context; + } + private void applyCredentials(ObjectStoreServiceInfo serviceInfo, ContextBuilder contextBuilder) { if (serviceInfo.getCredentialsSupplier() != null) { contextBuilder.credentialsSupplier(serviceInfo.getCredentialsSupplier()); - } else if (serviceInfo.getIdentity() != null && serviceInfo.getCredential() != null) { - contextBuilder.credentials(serviceInfo.getIdentity(), serviceInfo.getCredential()); } else { - throw new IllegalArgumentException(Messages.MISSING_PROPERTIES_FOR_CREATING_THE_SPECIFIC_PROVIDER); - } + String identity = serviceInfo.getIdentity(); + String credential = serviceInfo.getCredential(); - resolveContextEndpoint(serviceInfo, contextBuilder); + if (StringUtils.isBlank(identity) || StringUtils.isBlank(credential)) { + throw new IllegalArgumentException(Messages.MISSING_PROPERTIES_FOR_CREATING_THE_SPECIFIC_PROVIDER); + } - try { - return contextBuilder.buildView(BlobStoreContext.class); - } catch (NullPointerException nullPointerException) { - throw new IllegalArgumentException("JClouds failed to build BlobStoreContext. Possible missing credentials.", - nullPointerException); + contextBuilder.credentials(identity, credential); } } From cf8f2368fc5546781ea85a20eecf52ede52a8254 Mon Sep 17 00:00:00 2001 From: Stefan Yonkov Date: Tue, 20 May 2025 16:42:33 +0300 Subject: [PATCH 5/7] update spring-security --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c42fc071a7..6f015182df 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ 6.8.0 3.5.19 6.2.7 - 6.4.5 + 6.5.0 2.5.2 6.3.0 2.19.0 From 179b85aa80f1723898540368ce65b2f565285a3e Mon Sep 17 00:00:00 2001 From: Stefan Yonkov Date: Wed, 21 May 2025 14:46:54 +0300 Subject: [PATCH 6/7] fix comments --- .../cloudfoundry/multiapps/controller/web/Messages.java | 4 +--- .../bean/factory/ObjectStoreFileStorageFactoryBean.java | 7 +------ 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java index f86edeabe1..748a134eaa 100644 --- a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java +++ b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/Messages.java @@ -25,9 +25,7 @@ public final class Messages { public static final String MISSING_PROPERTIES_FOR_CREATING_THE_SPECIFIC_PROVIDER = "Missing properties for creating the specific provider!"; public static final String DEPLOY_FROM_URL_WRONG_CREDENTIALS = "Credentials to {0} are wrong. Make sure that they are correct."; - public static final String MISSING_PROVIDER_FOR_OBJECT_STORE_SERVICE = "Missing provider for object store service."; - - public static final String FAILED_TO_CREATE_BLOB_STORE_CONTEXT_FOR_PROVIDER_0 = "Failed to create BlobStoreContext for provider: {0}"; + public static final String FAILED_TO_CREATE_BLOB_STORE_CONTEXT = "Failed to create BlobStoreContext"; // Audit log messages public static final String USER_TRYING_TO_LOGIN_AUDIT_LOG_MESSAGE = "\"{0}\" is trying to login in space \"{1}\""; diff --git a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java index d645b99979..410af21209 100644 --- a/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java +++ b/multiapps-controller-web/src/main/java/org/cloudfoundry/multiapps/controller/web/configuration/bean/factory/ObjectStoreFileStorageFactoryBean.java @@ -75,11 +75,6 @@ private List getProvidersServiceInfo() { } private BlobStoreContext getBlobStoreContext(ObjectStoreServiceInfo serviceInfo) { - String provider = serviceInfo.getProvider(); - if (StringUtils.isBlank(provider)) { - throw new IllegalArgumentException(Messages.MISSING_PROVIDER_FOR_OBJECT_STORE_SERVICE); - } - ContextBuilder contextBuilder = ContextBuilder.newBuilder(serviceInfo.getProvider()); applyCredentials(serviceInfo, contextBuilder); @@ -87,7 +82,7 @@ private BlobStoreContext getBlobStoreContext(ObjectStoreServiceInfo serviceInfo) BlobStoreContext context = contextBuilder.buildView(BlobStoreContext.class); if (context == null) { - throw new IllegalStateException(MessageFormat.format(Messages.FAILED_TO_CREATE_BLOB_STORE_CONTEXT_FOR_PROVIDER_0, provider)); + throw new IllegalStateException(Messages.FAILED_TO_CREATE_BLOB_STORE_CONTEXT); } return context; From 2486ee2295c763c32c279b64cdbd499d14a83b61 Mon Sep 17 00:00:00 2001 From: Stefan Yonkov Date: Thu, 22 May 2025 12:34:50 +0300 Subject: [PATCH 7/7] Adopt released cf-java-client and multiapps --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6f015182df..db1d51785d 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 2.19.0 4.31.1 5.1.0 - 2.55.0 + 2.56.0 1.6.15 2.7.0 33.4.6-jre @@ -50,7 +50,7 @@ 3.18.2 1.1.1 1.18.0 - 2.31.0 + 2.32.0 3.4.0 4.0.2 4.0.5