[ 
https://issues.apache.org/jira/browse/CAMEL-7488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14027532#comment-14027532
 ] 

Sven Nold edited comment on CAMEL-7488 at 6/11/14 8:13 AM:
-----------------------------------------------------------

Hi Willem,

I already had that setting enabled, but even with 2.13-SNAPSHOT no luck.
If you enable tracing you can see lines like:


[pache.camel.spring.Main.main()] CamelContextFactoryBean        INFO  Bridging 
Camel and Spring property placeholder configurer with id: 
bridgePropertyPlaceHolder
[pache.camel.spring.Main.main()] SpringCamelContext             DEBUG Using 
ComponentResolver: org.apache.camel.impl.DefaultComponentResolver@70ff4bfb to 
resolve component with name: properties
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     TRACE No bean 
named 'properties' found in 
org.springframework.beans.factory.support.DefaultListableBeanFactory@4b37f3f9: 
defining beans 
[ag.isb.camel.Constants.CONSTANT_1,bridgePropertyPlaceHolder,template,consumerTemplate,camel-1:beanPostProcessor,camel-1];
 root of factory hierarchy
[pache.camel.spring.Main.main()] DefaultComponentResolver       DEBUG Found 
component: properties in registry: null
[pache.camel.spring.Main.main()] ObjectHelper                   TRACE Loading 
class: org.apache.camel.component.properties.PropertiesComponent using 
classloader: java.net.URLClassLoader@154f6189
[pache.camel.spring.Main.main()] DefaultComponentResolver       DEBUG Found 
component: properties via type: 
org.apache.camel.component.properties.PropertiesComponent via: 
META-INF/services/org/apache/camel/component/properties
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG Creating 
instance of bean 'org.apache.camel.component.properties.PropertiesComponent'
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG Returning 
cached instance of singleton bean 'ag.isb.camel.Constants.CONSTANT_1'
[pache.camel.spring.Main.main()] DefaultCamelBeanPostProcessor  TRACE Camel 
bean processing after initialization for bean: ag.isb.camel.Constants.CONSTANT_1
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG 
Autowiring by type from bean name 
'org.apache.camel.component.properties.PropertiesComponent' via constructor to 
bean named 'ag.isb.camel.Constants.CONSTANT_1'
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG Returning 
cached instance of singleton bean 'ag.isb.camel.Constants.CONSTANT_1'
[pache.camel.spring.Main.main()] DefaultCamelBeanPostProcessor  TRACE Camel 
bean processing after initialization for bean: ag.isb.camel.Constants.CONSTANT_1
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG 
*Autowiring by type from bean name 
'org.apache.camel.component.properties.PropertiesComponent' via constructor to 
bean named 'ag.isb.camel.Constants.CONSTANT_1'*
[pache.camel.spring.Main.main()] DefaultCamelBeanPostProcessor  TRACE Camel 
bean processing before initialization for bean: 
org.apache.camel.component.properties.PropertiesComponent

Why is it doing that?


was (Author: svennold):
Hi Willem,

I already had that setting enabled, but even with 2.13-SNAPSHOT no luck.
If you enable tracing you can see lines like:


[pache.camel.spring.Main.main()] CamelContextFactoryBean        INFO  Bridging 
Camel and Spring property placeholder configurer with id: 
bridgePropertyPlaceHolder
[pache.camel.spring.Main.main()] SpringCamelContext             DEBUG Using 
ComponentResolver: org.apache.camel.impl.DefaultComponentResolver@70ff4bfb to 
resolve component with name: properties
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     TRACE No bean 
named 'properties' found in 
org.springframework.beans.factory.support.DefaultListableBeanFactory@4b37f3f9: 
defining beans 
[ag.isb.camel.Constants.CONSTANT_1,bridgePropertyPlaceHolder,template,consumerTemplate,camel-1:beanPostProcessor,camel-1];
 root of factory hierarchy
[pache.camel.spring.Main.main()] DefaultComponentResolver       DEBUG Found 
component: properties in registry: null
[pache.camel.spring.Main.main()] ObjectHelper                   TRACE Loading 
class: org.apache.camel.component.properties.PropertiesComponent using 
classloader: java.net.URLClassLoader@154f6189
[pache.camel.spring.Main.main()] DefaultComponentResolver       DEBUG Found 
component: properties via type: 
org.apache.camel.component.properties.PropertiesComponent via: 
META-INF/services/org/apache/camel/component/properties
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG Creating 
instance of bean 'org.apache.camel.component.properties.PropertiesComponent'
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG Returning 
cached instance of singleton bean 'ag.isb.camel.Constants.CONSTANT_1'
[pache.camel.spring.Main.main()] DefaultCamelBeanPostProcessor  TRACE Camel 
bean processing after initialization for bean: ag.isb.camel.Constants.CONSTANT_1
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG 
Autowiring by type from bean name 
'org.apache.camel.component.properties.PropertiesComponent' via constructor to 
bean named 'ag.isb.camel.Constants.CONSTANT_1'
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG Returning 
cached instance of singleton bean 'ag.isb.camel.Constants.CONSTANT_1'
[pache.camel.spring.Main.main()] DefaultCamelBeanPostProcessor  TRACE Camel 
bean processing after initialization for bean: ag.isb.camel.Constants.CONSTANT_1
[pache.camel.spring.Main.main()] DefaultListableBeanFactory     DEBUG 
*Autowiring by type from bean name 
'org.apache.camel.component.properties.PropertiesComponent' via constructor to 
bean named 'ag.isb.camel.Constants.CONSTANT_1'*
[pache.camel.spring.Main.main()] DefaultCamelBeanPostProcessor  TRACE Camel 
bean processing before initialization for bean: 
org.apache.camel.component.properties.PropertiesComponent



> 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: Willem Jiang
>         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.2#6252)

Reply via email to