This is an automated email from the ASF dual-hosted git repository. Croway pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
commit 4ccec5ea1b9d9c35b1c7fe305e7925209fd2bb82 Author: Andrea Cosentino <[email protected]> AuthorDate: Thu Aug 27 06:49:19 2026 +0200 CAMEL-24508: Address review feedback Spring Cloud Config is not a vault, so its parser no longer says "from the vault" in the messages the uniform edit had introduced. Declare camel.vault.ignore-resolution-failures in the additional Spring Boot configuration metadata so the new flag surfaces in config metadata and IDE completion like the other camel.vault.* options, and regenerate spring-boot.json. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Signed-off-by: Andrea Cosentino <[email protected]> --- .../config/springboot/SpringBootCloudConfigPropertiesParser.java | 8 ++++---- core/camel-spring-boot/src/main/docs/spring-boot.json | 6 ++++++ .../META-INF/additional-spring-configuration-metadata.json | 6 ++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/components-starter/camel-spring-cloud-config-starter/src/main/java/org/apache/camel/component/spring/cloud/config/springboot/SpringBootCloudConfigPropertiesParser.java b/components-starter/camel-spring-cloud-config-starter/src/main/java/org/apache/camel/component/spring/cloud/config/springboot/SpringBootCloudConfigPropertiesParser.java index 5886ef85201..d2c951b9023 100644 --- a/components-starter/camel-spring-cloud-config-starter/src/main/java/org/apache/camel/component/spring/cloud/config/springboot/SpringBootCloudConfigPropertiesParser.java +++ b/components-starter/camel-spring-cloud-config-starter/src/main/java/org/apache/camel/component/spring/cloud/config/springboot/SpringBootCloudConfigPropertiesParser.java @@ -38,7 +38,7 @@ public class SpringBootCloudConfigPropertiesParser implements ApplicationListene Properties properties = new Properties(); ConfigurableEnvironment environment = event.getEnvironment(); // an unresolved placeholder would otherwise stay in the property value and become the effective - // secret, so resolution failures abort startup unless the operator opts back into the old behaviour + // configuration value, so resolution failures abort startup unless the operator opts back in final boolean ignoreResolutionFailures = Boolean.parseBoolean(environment.getProperty("camel.vault.ignore-resolution-failures")); @@ -65,12 +65,12 @@ public class SpringBootCloudConfigPropertiesParser implements ApplicationListene properties.put(key, element); } catch (Exception e) { if (ignoreResolutionFailures) { - LOG.warn("Failed to resolve property {} from the vault; the placeholder is left " + LOG.warn("Failed to resolve property {} from Spring Cloud Config; the placeholder is left " + "unresolved because camel.vault.ignore-resolution-failures is enabled", key, e); } else { throw new RuntimeCamelException( - "Failed to resolve property " + key + " from the vault. Startup is aborted so " - + "that the unresolved placeholder cannot become the effective " + "Failed to resolve property " + key + " from Spring Cloud Config. Startup is aborted " + + "so that the unresolved placeholder cannot become the effective " + "value; set camel.vault.ignore-resolution-failures=true to " + "continue anyway.", e); diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.json b/core/camel-spring-boot/src/main/docs/spring-boot.json index 10e7a7e9df0..5c360d573e6 100644 --- a/core/camel-spring-boot/src/main/docs/spring-boot.json +++ b/core/camel-spring-boot/src/main/docs/spring-boot.json @@ -2079,6 +2079,12 @@ "description": "The IBM Secrets Manager Token", "sourceType": "org.apache.camel.spring.boot.vault.IBMVaultConfigurationProperties" }, + { + "name": "camel.vault.ignore-resolution-failures", + "type": "java.lang.Boolean", + "description": "Whether a vault or secrets placeholder that cannot be resolved during early property resolution should be tolerated. When false (the default) an unresolvable placeholder aborts startup, so the literal placeholder text can never become the effective value. When true the failure is logged at WARN and the placeholder is left in place.", + "defaultValue": false + }, { "name": "camel.vault.kubernetes.refresh-enabled", "type": "java.lang.Boolean", diff --git a/core/camel-spring-boot/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/core/camel-spring-boot/src/main/resources/META-INF/additional-spring-configuration-metadata.json index ab8399f4045..2488ae24608 100644 --- a/core/camel-spring-boot/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/core/camel-spring-boot/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -1,5 +1,11 @@ { "properties": [ + { + "name": "camel.vault.ignore-resolution-failures", + "type": "java.lang.Boolean", + "description": "Whether a vault or secrets placeholder that cannot be resolved during early property resolution should be tolerated. When false (the default) an unresolvable placeholder aborts startup, so the literal placeholder text can never become the effective value. When true the failure is logged at WARN and the placeholder is left in place.", + "defaultValue": false + }, { "name": "management.info.camel.enabled", "type": "java.lang.Boolean",
