Hi Jonathan,
I just added a unit test[1] which is based on your test case, it looks
like current camel 2.3 don't have the issue that you met.
Can you have a look at my test and verify your case against the latest
Camel 2.3-SNAPSHOT ?
[1] http://svn.apache.org/viewvc?rev=942665&view=rev
Willem
jonathanq wrote:
Claus,
That worked! I changed my spring configuration to to the one below and
everything worked as expected.
<camel:camelContext id="camel">
<camel:routeBuilder ref="myRouteBuilderBean" />
</camel:camelContext>
<bean id="myRouteBuilderBean" class="com.example.MyRouteBuilder"
depends-on="camel">
<property name="incomingEndpoint" value="file://C:\\triggerdir\\"/>
<property name="myProcessor" ref="myProcessorBean"/>
</bean>
Thanks for the help!
Jonathan
Claus Ibsen-2 wrote:
Hi
Can you try with a depends-on="camel" attribute on the <bean> for the
RouteBuilder to see if that helps.
On Fri, Apr 30, 2010 at 8:36 PM, jonathanq <jqu...@abebooks.com> wrote:
I am having serious issues with Camel 2.2.0 and Spring 3.0.2.RELEASE.
I am creating my route in spring as a bean and then injecting it into the
camelContext using the following:
<camel:camelContext id="camel">
<camel:routeBuilder ref="myRouteBuilderBean" />
</camel:camelContext>
<bean id="myRouteBuilderBean" class="com.example.MyRouteBuilder">
<property name="incomingEndpoint" value="file://C:\\triggerdir\\"/>
<property name="myProcessor" ref="myProcessorBean"/>
</bean>
The actual route definition is:
public void configure() throws Exception {
from(getIncomingEndpoint())
.convertBodyTo(String.class)
.process(getMyProcessor());
}
There are getters/setters on the endpoint and the processor.
The issue is that when camel starts up - it calls the "configure" on the
route builder BEFORE Spring has injected the bean with properties.
So the getIncomingEndpoint() returns null - which will later cause Camel
to
fail saying you can't set a null uri (error:)
If I change from using Spring 3.0.2.RELEASE to Spring 2.5.6.SR01 - this
issues goes away. So it is definitely a camel 2.2.0 and Spring 3.0
issue.
It seems that Camel is trying to configure all of the routes before
Spring
has actually injected the beans.
Note: the reason I am setting the value in Spring is that its actually
getting property-replaced. However if you put a hardcoded string into
spring for the endpoint, its still not working. So I know its not the
property replacement causing this.
Like I said - works fine in Spring 2.5.6 and Camel 2.2.0 - but not Spring
3.0.0.RELEASE, 3.0.1.RELEASE or 3.0.2.RELEASE.
Any ideas?
Thanks,
Jonathan
--
View this message in context:
http://old.nabble.com/Spring-3.0-and-Camel-2.2---Route-configure%28%29-called-before-Spring-beans-injected-tp28415437p28415437.html
Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus