This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-spring-boot-4.4.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.4.x by this push: new 1ab1ecd4edb cherry-pick CAMEL-20738 Make Jasypt beans conditional so that can be overridden (#1141) 1ab1ecd4edb is described below commit 1ab1ecd4edb7863223abc84b306123711cb13856 Author: Federico Mariani <34543311+cro...@users.noreply.github.com> AuthorDate: Mon May 6 13:39:03 2024 +0200 cherry-pick CAMEL-20738 Make Jasypt beans conditional so that can be overridden (#1141) * Make Jasypt beans conditional so that can be overridden * Avoid clashes with default parser defined in CamelAutoConfiguration --- .../JasyptEncryptedPropertiesAutoconfiguration.java | 12 +++++++++--- .../springboot/JasyptSpringEncryptedPropertiesParser.java | 11 ++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptEncryptedPropertiesAutoconfiguration.java b/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptEncryptedPropertiesAutoconfiguration.java index 550195a85cd..bf1f2a2ec90 100644 --- a/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptEncryptedPropertiesAutoconfiguration.java +++ b/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptEncryptedPropertiesAutoconfiguration.java @@ -39,6 +39,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.ResolvableType; import org.springframework.core.convert.ConversionService; import org.springframework.core.env.ConfigurableEnvironment; +import org.springframework.core.env.Environment; import org.springframework.core.env.MutablePropertySources; import org.springframework.core.env.PropertyResolver; @@ -60,7 +61,9 @@ public class JasyptEncryptedPropertiesAutoconfiguration { @Bean - public JasyptEncryptedPropertiesConfiguration JasyptEncryptedPropertiesAutoconfiguration(final ConfigurableEnvironment environment) { + @ConditionalOnMissingBean(JasyptEncryptedPropertiesConfiguration.class) + public JasyptEncryptedPropertiesConfiguration JasyptEncryptedPropertiesAutoconfiguration( + final ConfigurableEnvironment environment) { JasyptEncryptedPropertiesConfiguration config = new JasyptEncryptedPropertiesConfiguration(); final BindHandler handler = new IgnoreErrorsBindHandler(BindHandler.DEFAULT); final MutablePropertySources propertySources = environment.getPropertySources(); @@ -97,6 +100,7 @@ public class JasyptEncryptedPropertiesAutoconfiguration { } @Bean + @ConditionalOnMissingBean(EncryptablePropertySourcesPlaceholderConfigurer.class) public EncryptablePropertySourcesPlaceholderConfigurer propertyConfigurer(StringEncryptor stringEncryptor) { return new EncryptablePropertySourcesPlaceholderConfigurer(stringEncryptor); } @@ -106,8 +110,10 @@ public class JasyptEncryptedPropertiesAutoconfiguration { and allow the use of encrypted properties inside the camel context. */ @Bean - public PropertiesParser encryptedPropertiesParser(PropertyResolver propertyResolver, StringEncryptor stringEncryptor) { - return new JasyptSpringEncryptedPropertiesParser(propertyResolver, stringEncryptor); + @ConditionalOnMissingBean(PropertiesParser.class) + public PropertiesParser encryptedPropertiesParser(PropertyResolver propertyResolver, + StringEncryptor stringEncryptor, Environment env) { + return new JasyptSpringEncryptedPropertiesParser(propertyResolver, stringEncryptor, env); } public SaltGenerator getSaltGenerator(JasyptEncryptedPropertiesConfiguration configuration) { diff --git a/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptSpringEncryptedPropertiesParser.java b/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptSpringEncryptedPropertiesParser.java index ad684495ca5..0f7a5590a00 100644 --- a/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptSpringEncryptedPropertiesParser.java +++ b/components-starter/camel-jasypt-starter/src/main/java/org/apache/camel/component/jasypt/springboot/JasyptSpringEncryptedPropertiesParser.java @@ -16,24 +16,29 @@ */ package org.apache.camel.component.jasypt.springboot; -import org.apache.camel.component.properties.DefaultPropertiesParser; import org.apache.camel.component.properties.PropertiesLookup; +import org.apache.camel.spring.boot.SpringPropertiesParser; import org.jasypt.encryption.StringEncryptor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; import org.springframework.core.env.PropertyResolver; import static org.jasypt.properties.PropertyValueEncryptionUtils.isEncryptedValue; import static org.jasypt.properties.PropertyValueEncryptionUtils.decrypt; -public class JasyptSpringEncryptedPropertiesParser extends DefaultPropertiesParser { +public class JasyptSpringEncryptedPropertiesParser extends SpringPropertiesParser { private PropertyResolver propertyResolver; private StringEncryptor stringEncryptor; @Autowired - public JasyptSpringEncryptedPropertiesParser(PropertyResolver propertyResolver, StringEncryptor stringEncryptor){ + public JasyptSpringEncryptedPropertiesParser( + PropertyResolver propertyResolver, + StringEncryptor stringEncryptor, + Environment env) { + super(env); this.propertyResolver = propertyResolver; this.stringEncryptor = stringEncryptor; }