How do I use Spring Property Placeholder with Camel XMLPage edited by Claus IbsenChanges (3)
Full ContentHow do I use Spring Property Placeholder with Camel XMLWe don't yet support the ${something} notation inside arbitrary Camel XML. For example at the time of writing this is not supported <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd "> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> <camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> <route> <from uri="activemq:${someQueueName}"/> <to uri="mock:results"/> </route> </camelContext> </beans> However you can use the <endpoint/> element to define endpoints which does support the property resolving which you can then refer to by name, using the Ref component as shown below (notice the ref: in the uri): <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd "> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> <camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> <endpoint id="input1" uri="activemq:${someQueueName}"/> <route> <from uri="ref:input1"/> <to uri="activemq:OutputQueue"/> </route> </camelContext> </beans> Camel does not yet fully support property placeholders as there is a limitation in Spring. See JIRA SPR-4466
Here is a trick that you can use to define the uri in a property file using Spring injection and Camel endpoint : http://cmoulliard.blogspot.com/2009/05/trick-to-pass-uri-declared-in-property.html. From Camel 2.3 onwards there is a Properties component build in Camel core which allows you to use properties in the same way as Spring property placeholders, and even more.
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
- [CONF] Apache Camel > How do I use Spring Property Placehold... confluence