Como impedir que um fluxo de mula seja executado após a inicialização
Eu tenho um fluxo de mula que começa com um terminal de entrada jms. Meu requisito é impedir que a fila leia qualquer mensagem até que eu ative explicitamente o conector para o terminal. Então eu tenho um Initializer implementando MuleContextNotificationListener, sobrescreva onNotification como abaixo:
@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();
}
}
}
Mas o fluxo ainda é iniciado (lê as mensagens da fila jms) mesmo enquanto o aplicativo está sendo inicializado. O que devo fazer para interceptar quando um conector é inicializado para que eu possa pará-lo? Se não, qual mecanismo devo usar para impedir que o conector o leia. Eu já tenho o código para iniciar / parar o conector de uma chamada http.
Eu estou usando o Mule 3.2.2 sem anotações.
Obrigado,