[ https://issues.apache.org/jira/browse/CAMEL-7488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-7488. -------------------------------- Resolution: Fixed > PropertiesComponent gets initialized by util:constant > ----------------------------------------------------- > > Key: CAMEL-7488 > URL: https://issues.apache.org/jira/browse/CAMEL-7488 > Project: Camel > Issue Type: Bug > Components: camel-core, camel-spring > Affects Versions: 2.13.0, 2.13.1 > Reporter: Sven Nold > Assignee: Claus Ibsen > Priority: Minor > Fix For: 2.13.4, 2.14.2, 2.15.0 > > Attachments: camel-test.zip > > > Using BridgePropertyPlaceholderConfigurer & Spring util constant namespace > to reference a static field, the Properties Component gets initialized with > this constant. > {code:xml|title=camelContext.xml } > <util:constant static-field="anypackage.CONSTANT_1"/> > <bean id="bridgePropertyPlaceHolder" > class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"> > <property name="locations"> > <list> > <value>classpath:test.properties</value> > </list> > </property> > </bean> > <camel:camelContext xmlns="http://camel.apache.org/schema/spring"> > <camel:route> > <camel:from uri="direct://ignore" /> > <camel:setBody> > <camel:simple>{{testProperty}}</camel:simple> > </camel:setBody> > <camel:to uri="mock://ignore" /> > </camel:route> > </camel:camelContext> > {code} > Will produce following Stacktrace (constant contained '>>This will be loaded > as location; but I am simply a constant<<'): > {noformat} > Caused by: java.io.FileNotFoundException: Properties file >>This will be > loaded as location; but I am simply a constant<< not found in classpath > at > org.apache.camel.component.properties.DefaultPropertiesResolver.loadPropertiesFromClasspath(DefaultPropertiesResolver.java:96) > at > org.apache.camel.component.properties.DefaultPropertiesResolver.resolveProperties(DefaultPropertiesResolver.java:55) > at > org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer.resolveProperties(BridgePropertyPlaceholderConfigurer.java:118) > at > org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:131) > at > org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:117) > at > org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:1223) > at > org.apache.camel.model.ProcessorDefinition.resolvePropertyPlaceholders(ProcessorDefinition.java:571) > {noformat} > My current workaround was to specify propertyPlaceholder with empty location > in camelContext ... > {code:xml|title=camelContext.xml } > <!-- same as above --> > <camel:camelContext xmlns="http://camel.apache.org/schema/spring"> > <!-- location and id are mandatory --> > <camel:propertyPlaceholder id="stupidMandatoryId" location=""/> > <camel:route> > <camel:from uri="direct://ignore" /> > <camel:setBody> > <camel:simple>{{testProperty}}</camel:simple> > </camel:setBody> > <camel:to uri="mock://ignore" /> > </camel:route> > </camel:camelContext> > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)