Как остановить запуск потока мулов после запуска
У меня есть поток мулов, который начинается с входящей конечной точки jms. Мое требование состоит в том, чтобы запретить очереди читать любые сообщения, пока я явно не включу соединитель для конечной точки. Так что у меня есть инициализатор, реализующий MuleContextNotificationListener, переопределить onNotification, как показано ниже:
@Override
public void onNotification(MuleContextNotification ctxNotification) {
System.out.println("Notification order event: " + ctxNotification.getActionName() );
if(ctxNotification.getAction() == MuleContextNotification.CONTEXT_STARTING
|| ctxNotification.getAction() == MuleContextNotification.CONTEXT_STARTED){
try{
//Startup with the Staging and Error Q readers disabled.
System.out.println("STOPPING QUEUES : Staging and Error Queues");
//ctxNotification.getMuleContext().getRegistry().lookupConnector("lynxJMSConnectorStagingQReaderNormal").stop();
ctxNotification.getMuleContext().getRegistry().lookupConnector("lynxJMSConnectorStagingQReaderDR").stop();
ctxNotification.getMuleContext().getRegistry().lookupConnector("lynxJMSConnectorErrorQReader").stop();
ctxNotification.getMuleContext().getRegistry().lookupEndpointFactory().getInboundEndpoint("errorQueueReader").stop();
System.out.println("STOPPED QUEUES");
}catch(MuleException me){
me.printStackTrace();
}
}
}
Но поток все еще запускается (читает сообщения из очереди jms) даже во время инициализации приложения. Что я должен сделать, чтобы перехватить, когда соединитель инициализирован, чтобы я мог остановить это? Если нет, то какой механизм я должен использовать, чтобы остановить чтение разъема. У меня уже есть код для запуска / остановки разъема от http-звонка.
Я использую Mule 3.2.2 без аннотаций.
Спасибо,