You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2012/06/03 11:44:22 UTC
[jira] [Resolved] (CAMEL-3547) Custom "absorbing"
PropertyPlaceholderConfigurer
[ https://issues.apache.org/jira/browse/CAMEL-3547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-3547.
--------------------------------
Resolution: Fixed
Updated docs at
https://cwiki.apache.org/confluence/display/CAMEL/Using+PropertyPlaceholder
> Custom "absorbing" PropertyPlaceholderConfigurer
> ------------------------------------------------
>
> Key: CAMEL-3547
> URL: https://issues.apache.org/jira/browse/CAMEL-3547
> Project: Camel
> Issue Type: New Feature
> Components: camel-spring
> Affects Versions: 2.5.0
> Reporter: Dan Checkoway
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 2.10.0
>
>
> I find Camel's property placeholder support clumsy. I already use Spring's PropertyPlaceholderConfigurer, and I feel like Camel should be able to harness that. I realize Spring doesn't make it easy to access those properties, but I have come up with a way to enable Camel to use them...
> By simply extending PropertyPlaceholderConfigurer, we will be able to intercept and absorb the properties that Spring has access to:
> {{
> import java.util.Properties;
> import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
> import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
> public class CamelPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
> private final Properties properties = new Properties();
>
> @Override
> protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) {
> super.processProperties(beanFactory, props);
> // "Absorb" all properties that pass through so we can expose them later
> properties.putAll(props);
> }
> /** Expose all absorbed properties */
> public final Properties getProperties() {
> return properties;
> }
> }
> }}
> It means users who want to take advantage of this would need to instantiate this instead of the stock PropertyPlaceholderConfigurer, but that's no problem:
> <bean class="org.apache.camel.impl.CamelPropertyPlaceholderConfigurer">
> <p:location="..."/>
> </bean>
> That way, you wouldn't need to declare a "duplicating" <propertyPlaceholer> in the CamelContext. What do you think, is this feasible?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira