Details
-
New Feature
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.5.0
-
None
Description
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)
/** Expose all absorbed properties */
public final Properties getProperties()
}
}}
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?