Christopher,
Claus has got you covered ;) There is an EventNotification mechanism
that you can use. Add the following to your routes configure
public class InvokedOnStartupRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
final CamelContext context = getContext();
context.getManagementStrategy().setEventNotifier(new EventNotifier() {
public void notify(EventObject event) throws Exception {
if(event instanceof CamelContextStartedEvent)
{
ProducerTemplate template = context.createProducerTemplate();
template.sendBody("direct:invokedOnStartup", "Started");
}
}
public boolean isEnabled(EventObject event) {
return true;
}
});
from("direct:invokedOnStartup").to("mock:invokedOnStartup");
}
}
It might be nice also if there were a method in the LifecycleStrategy
interface, onInitializationComplete or the like, that fit a similar
purpose. I'll let Claus comment on that.
rgds,
ste
On Mon, Dec 28, 2009 at 6:06 PM, huntc <[email protected]> wrote:
>
> Hi Stephen,
>
> Thanks for your response.
>
> I do understand the use of the direct component, but thanks for the
> explanation any how.
>
> I guess using the Spring Events mechanism will get me there, but it'd be
> nice to codify the solution in a way that remains agnostic of being invoked
> from Spring.
>
> I'm thinking that it'd be useful to raise a JIRA so that RouteBuilder gets
> the opportunity of kicking things off once the context is ready. What'd
> think?
>
> BTW: I do not have a Main class as I'm using org.apache.camel.spring.Main.
>
> Kind regards,
> Christopher
> --
> View this message in context:
> http://old.nabble.com/Startup-invocation-of-a-route-tp26949232p26950280.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>