Barracuda: Multiple Event Listeners?
Kirk Daries <[email protected]>
| Newsgroups | gmane.comp.java.enhydra.barracuda.general |
|---|---|
| Message-ID | <D09B591872D1D611AF2B0010B5A1AAD02E39B7@WCSMAIL> |
Hi,
I've run into a small problem and hope the barracuda event maestro's can
provide some assitance.
Here's a short event model.
-->DoLogin.event
|
|
--> SuccessfulLogin.event
|
|
-->AfterLogin.event
Basically.... when ever a user successfully logs into my system, the DoLogin
event redirects to the 'AfterLogin' event.
The SuccessfulLogin event, provides a 'hook' that enables any modules to be
notified via listeners that a user has just logged in.
In this case I've attached 2 listeners to the 'SuccessfulLogin' event.
Now... I've run into a problem during the event dispatching.
Here's some debug output.
<<debug output.txt>>
Notice that barracuda lists 2 event interests in event 'SuccessfulLogin'
namely,
sitawc.eworks.calldesk.eventListeners.request.Login_Listener and
sitawc.eworks.budgets.eventListeners.request.Login_Listener.
To make things simplier... I'll just refer to them as calldesk and budgets
resp.
Now...
the CallDesk listener is processed correctly.
But when it is time to execute the listener for the 'Budgets' module.... I
get the output...
>>Got Next
factory:sitawc.eworks.budgets.eventListeners.request.Login_Listener@53f67e
>>Skipping notification because event is already handled
>>Handled:true
Urrrm.....How do I ensure.. that both listeners are processed?
Thanx
KD
debug output.txt
(text/plain, 2.5 KB)
16915 [Thread-17] INFO org.enhydra.barracuda.core.event.DefaultEventBroker - Getting listeners for Class:class sitawc.barraframework.events.request.privateEvent.LoginScreen.SuccessfulLogin 16915 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Checking for generic listeners:[sitawc.eworks.calldesk.eventListeners.request.Login_Listener@4e280c, sitawc.eworks.budgets.eventListeners.request.Login_Listener@53f67e] 16915 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Found 2 16915 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Dispatching to listeners... 16915 [Thread-17] DEBUG org.enhydra.barracuda.core.util.data.DefaultStateMap - Setting queue state: [key]:org.enhydra.barracuda.core.event.EventContext.BaseEvent [val]:sitawc.barraframework.events.request.privateEvent.LoginScreen.SuccessfulLogin@52c6b4 16915 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Got Next factory:sitawc.eworks.calldesk.eventListeners.request.Login_Listener@4e280c 16915 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Notifying listener:sitawc.eworks.calldesk.eventListeners.request.Login_Listener$Login_Handler@2c5f13 16915 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultBaseEventListener - Entering Login_Listener$Login_Handler . . . LISTENER DEBUG CODE HERE . . 17616 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultBaseEventListener - Exiting Login_Listener$Login_Handler 17616 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Got Next factory:sitawc.eworks.budgets.eventListeners.request.Login_Listener@53f67e 17626 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Skipping notification because event is already handled 17626 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Handled:true 17626 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Chain element 8: sitawc.barraframework.events.request.privateEvent.LoginScreen.AfterLogin@50d124 17626 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Looking for event listeners... 17626 [Thread-17] DEBUG org.enhydra.barracuda.core.event.DefaultEventDispatcher - Checking for specific listeners:null 17626 [Thread-17] INFO org.enhydra.barracuda.core.event.DefaultEventBroker - Getting listeners for Class:class sitawc.barraframework.events.request.privateEvent.LoginScreen.AfterLogin