This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-spring-boot-4.14.x in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
The following commit(s) were added to refs/heads/camel-spring-boot-4.14.x by this push: new b0b372c4232 Align PropertiesComponent defaults value to Camel's ones b0b372c4232 is described below commit b0b372c423286192fdce1f5e0e2ab1cfb538eee5 Author: Croway <federico.mariani.1...@gmail.com> AuthorDate: Thu Aug 21 14:26:53 2025 +0200 Align PropertiesComponent defaults value to Camel's ones --- .../camel-spring-boot/src/main/docs/spring-boot.json | 8 +++----- .../boot/PropertiesComponentConfiguration.java | 7 ++++--- .../boot/CamelAutoConfigurationPropertiesTest.java | 20 ++++++++++++++++++++ .../src/test/resources/application.properties | 1 + 4 files changed, 28 insertions(+), 8 deletions(-) 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 948b73fb622..40138bce026 100644 --- a/core/camel-spring-boot/src/main/docs/spring-boot.json +++ b/core/camel-spring-boot/src/main/docs/spring-boot.json @@ -390,8 +390,7 @@ "name": "camel.component.properties.environment-variable-mode", "type": "java.lang.Integer", "description": "Sets the OS environment variables mode (0 = never, 1 = fallback, 2 = override). The default mode (override) is to use OS environment variables if present, and override any existing properties. OS environment variable mode is checked before JVM system property mode", - "sourceType": "org.apache.camel.spring.boot.PropertiesComponentConfiguration", - "defaultValue": 2 + "sourceType": "org.apache.camel.spring.boot.PropertiesComponentConfiguration" }, { "name": "camel.component.properties.ignore-missing-location", @@ -417,7 +416,7 @@ "type": "java.lang.Boolean", "description": "Whether to support nested property placeholders. A nested placeholder, means that a placeholder, has also a placeholder, that should be resolved (recursively).", "sourceType": "org.apache.camel.spring.boot.PropertiesComponentConfiguration", - "defaultValue": false + "defaultValue": true }, { "name": "camel.component.properties.override-properties", @@ -435,8 +434,7 @@ "name": "camel.component.properties.system-properties-mode", "type": "java.lang.Integer", "description": "Sets the JVM system property mode (0 = never, 1 = fallback, 2 = override). The default mode (override) is to use system properties if present, and override any existing properties. OS environment variable mode is checked before JVM system property mode", - "sourceType": "org.apache.camel.spring.boot.PropertiesComponentConfiguration", - "defaultValue": 2 + "sourceType": "org.apache.camel.spring.boot.PropertiesComponentConfiguration" }, { "name": "camel.dataformat.customizer.enabled", diff --git a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/PropertiesComponentConfiguration.java b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/PropertiesComponentConfiguration.java index d65791d8e87..452934830a0 100644 --- a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/PropertiesComponentConfiguration.java +++ b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/PropertiesComponentConfiguration.java @@ -16,6 +16,7 @@ */ package org.apache.camel.spring.boot; +import org.apache.camel.component.properties.PropertiesComponent; import org.springframework.boot.context.properties.ConfigurationProperties; /** @@ -51,7 +52,7 @@ public class PropertiesComponentConfiguration { * Whether to support nested property placeholders. A nested placeholder, means that a placeholder, has also a * placeholder, that should be resolved (recursively). */ - private Boolean nestedPlaceholder = false; + private Boolean nestedPlaceholder = true; /** * Sets initial properties which will be used before any locations are resolved. The option is a * java.util.Properties type. @@ -67,13 +68,13 @@ public class PropertiesComponentConfiguration { * system properties if present, and override any existing properties. OS environment variable mode is checked * before JVM system property mode */ - private Integer systemPropertiesMode = 2; + private Integer systemPropertiesMode = PropertiesComponent.SYSTEM_PROPERTIES_MODE_OVERRIDE; /** * Sets the OS environment variables mode (0 = never, 1 = fallback, 2 = override). The default mode (override) is to * use OS environment variables if present, and override any existing properties. OS environment variable mode is * checked before JVM system property mode */ - private Integer environmentVariableMode = 2; + private Integer environmentVariableMode = PropertiesComponent.ENVIRONMENT_VARIABLES_MODE_OVERRIDE; /** * Whether to automatically discovery instances of PropertiesSource from registry and service factory. */ diff --git a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/CamelAutoConfigurationPropertiesTest.java b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/CamelAutoConfigurationPropertiesTest.java index 247c58b8bd6..879c6d4ca83 100644 --- a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/CamelAutoConfigurationPropertiesTest.java +++ b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/CamelAutoConfigurationPropertiesTest.java @@ -42,6 +42,9 @@ public class CamelAutoConfigurationPropertiesTest { @Value("${from}") String from; + @Value("${from}-nested") + String fromNested; + // Collaborators fixtures @Autowired @@ -64,6 +67,8 @@ public class CamelAutoConfigurationPropertiesTest { @Override public void configure() throws Exception { from(from).to("{{to}}"); + + from("direct:test-nested").to("{{nested.to}}"); } }; } @@ -76,6 +81,7 @@ public class CamelAutoConfigurationPropertiesTest { // Given MockEndpoint mockEndpoint = camelContext.getEndpoint("mock:test", MockEndpoint.class); mockEndpoint.expectedMessageCount(1); + mockEndpoint.reset(); // When producerTemplate.sendBody(from, "msg"); @@ -84,4 +90,18 @@ public class CamelAutoConfigurationPropertiesTest { mockEndpoint.assertIsSatisfied(); } + @Test + public void shouldResolveNestedCamelPlaceholder() throws InterruptedException { + // Given + MockEndpoint mockEndpoint = camelContext.getEndpoint("mock:test", MockEndpoint.class); + mockEndpoint.expectedMessageCount(1); + mockEndpoint.reset(); + + // When + producerTemplate.sendBody(fromNested, "msg"); + + // Then + mockEndpoint.assertIsSatisfied(); + } + } diff --git a/core/camel-spring-boot/src/test/resources/application.properties b/core/camel-spring-boot/src/test/resources/application.properties index 4271cf9693d..58ebd63c74a 100644 --- a/core/camel-spring-boot/src/test/resources/application.properties +++ b/core/camel-spring-boot/src/test/resources/application.properties @@ -19,5 +19,6 @@ spring.main.banner-mode=off from=direct:test to=mock:test +nested.to={{to}} #logging.level.org.apache.camel=DEBUG \ No newline at end of file