So I have a spring file that looks something like this. I'm using Spring-DM
and Camel 1.5.0. So this file is in META-INF/spring in my OSGi bundle.
<camelContext id="camelcontext"
xmlns="http://activemq.apache.org/camel/schema/spring">
<route>
<from uri="direct:testDirect"/>
<to uri="stream:err"/>
</route>
</camelContext>
<camel:template id="myCamelTemplate"/>
<bean id="myBean" class="myClass">
<property name="producerTemplate" ref="myCamelTemplate"/>
</bean>
So what I've found is that if I sleep for a few hundred milliseconds in my
bean after receiving the producer template I can then send a string to
direct:testDirect and it will print out on stderr. However, if I use the
template right away without sleeping I see
[SpringOsgiExtenderThread-2] WARN
org.apache.camel.component.direct.DirectProducer - No getConsumers()
available on Producer[direct:testDirect] for Exchange[Message: Hello World]
and no message is ever printing. Clearly there is some kind of race here.
What do I need to do so that I can be positive the camel context is up and
ready. I tried casting it to DefaultCamelContext and using the isStarted
method but that doesn't do it. It looks like that starts returning true
before everything is necessarily up and running.
Am I missing something obvious?
Thank you.
--
View this message in context:
http://www.nabble.com/Spring-DM-and-ProducerTemplate-tp21802085s22882p21802085.html
Sent from the Camel - Users mailing list archive at Nabble.com.