On 8/28/07, Hiram Chirino <[EMAIL PROTECTED]> wrote:
> Got those test failures fixed now..  Here is a better version of the patch.

Great stuff!

I've been thinking we need a way to register onComplete / onFail
hooks. (Rather like TransactionSynchronization in Spring)...
http://static.springframework.org/spring/docs/2.0.x/api/org/springframework/transaction/support/TransactionSynchronization.html

So allowing something like

exchange.getTransaction().addSynchronization(new Synchronization() {
  pubic void onCommit() {
     //  remove the file...
  }

  public void onRollback() {
     ///
  }
}

https://issues.apache.org/activemq/browse/CAMEL-123

If we had some kinda Transaction object, which was propogated across
any copied exchanges (e.g. a new exchange for each async operation or
when using multicast etc), then we'd have a place we could register
these kinds of onCommit/onRollback handlers. Then each component in
the pipeline - whether file or ftp or whatever, could add their own
onCommit/onRollback handlers etc.

If we had this single Transaction object which is properly propogated,
maybe that could also take over some of the work doing the tracking of
the number of async steps per transaction as well as being the
AsyncCallback - to contain the count down latch and so forth. So
moving some of the code from Pipeline into this single place, this
Transaction object - which hopefully could make it a bit easier to
handle async processors in some of the other processors with minimal
code etc.

Am just wondering if we can minimise the amount of work required in
the pipeline/processor code to support async handling.

James
-------
http://macstrac.blogspot.com/

Reply via email to