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.