I looked over some of the issues open and closed around synchronous messages. I would like to have observer pattern messages dumped into a channel and have observers register for events from that observed source. This part is relatively easy. However, I do not see an easy way to configure synchronous handling in spring integration using the semantics described below:
a) Subject begins to issue a change event e.g. a property change.
b) The Subject sends the change event to the well-known observer channel.
c) The subject send method blocks until the event is completely handled from all handlers whether or note the handlers are executed in the same thread or not.
d) The Observer may modify the event but no burden should be placed on it for creating a reply message of any sort.
Both the Subject and Observer would be relatively plain POJOs with the Subject knowing about the well-known observer channel but the Observer is subscribed to the desired event using a non-spring API (its easy to write a small adapter for the Observer).
The use case scenario is similar to observing property change events using the property change listener pattern in plain Java. Sometimes, but now always, and for some event types, the Subject needs to inspect the event object for changes only after all handlers (if any) have completely fired.
Any easy ways to do this?


Reply With Quote