On Tue, Feb 3, 2009 at 2:07 AM, paquettd <[email protected]> wrote: > > 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? Yeah it could be. As Spring is doing the IoC stuff your bean might get injected with the producer template before Camel had a chance to properly startup.
Maybe you can use the Spring depend-on attribute to instruct your bean that it depends on camel. Maybe you have found a isStarted() issue in camel-core. Feel free to create a ticket in JIRA for the isStarted() so we wont forget and can take a look at it. > > 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. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
