package hk.hku.cecid.edi.as2.module; import hk.hku.cecid.edi.as2.AS2PlusProcessor; import hk.hku.cecid.edi.as2.pkg.AS2Message; import hk.hku.cecid.piazza.commons.module.EventModule; public class AS2EventModule extends EventModule<AS2EventListener> { public AS2EventModule(String descriptorLocation, ClassLoader loader) { super(descriptorLocation, loader); } public AS2EventModule(String descriptorLocation, boolean shouldInitialize) { super(descriptorLocation, shouldInitialize); } public AS2EventModule(String descriptorLocation, ClassLoader loader, boolean shouldInitialize) { super(descriptorLocation, loader, shouldInitialize); } public AS2EventModule(String descriptorLocation) { super(descriptorLocation); } public void fireMessageSent(AS2Message requestMessage) { int listenerCount = eventListenerList.size(); for (int i=0; i<listenerCount; ++i) { try { AS2PlusProcessor.getInstance().getLogger().info( "Trigger event listener - " + eventListenerList.get(i).getClass().getName()); eventListenerList.get(i).messageSent(requestMessage); } catch (Throwable e) { getLogger().error("Error occurs when event listener processes message sent event", e); } } } public void fireMessageReceived(AS2Message requestMessage) { int listenerCount = eventListenerList.size(); for (int i=0; i<listenerCount; ++i) { try { AS2PlusProcessor.getInstance().getLogger().info( "Trigger event listener - " + eventListenerList.get(i).getClass().getName()); eventListenerList.get(i).messageReceived(requestMessage); } catch (Throwable e) { getLogger().error("Error occurs when event listener processes message received event", e); } } } public void fireResponseReceived(AS2Message receipt) { int listenerCount = eventListenerList.size(); for (int i=0; i<listenerCount; ++i) { try { AS2PlusProcessor.getInstance().getLogger().info( "Trigger event listener - " + eventListenerList.get(i).getClass().getName()); eventListenerList.get(i).responseReceived(receipt); } catch (Throwable e) { getLogger().error("Error occurs when event listener processes message received event", e); } } } public void fireErrorOccurred(AS2Message errorResponse) { int listenerCount = eventListenerList.size(); for (int i=0; i<listenerCount; ++i) { try { AS2PlusProcessor.getInstance().getLogger().info( "Trigger event listener - " + eventListenerList.get(i).getClass().getName()); eventListenerList.get(i).errorOccurred(errorResponse); } catch (Throwable e) { getLogger().error("Error occurs when event listener processes message received event", e); } } } }