initial implementation of Promise concept, currently backed by GPars
Refactored. Changed Promise to an interface. Introduced Promises factory class. Made PromiseList not implement list etc.
first cut of PromiseMap implementation
finished implementation of PromiseMap, integrated it with Promises static helper
change factory method name to 'createPromise'
test for timeout handling
move new async classes to new independent project that others can depend on
Expose an API to decorate promises, required for wrapping asynchronous function executions in persitence sessions for example
Implement @DelegateAsync annotation that transforms a class to delegate methods to another class asynchronously, returning a promise instead of the actual return type
Refactored and introduce concept of PromiseFactory with Gpars implementation, further reducing coupling between Promise framework and GPars
Implement synchronous PromiseFactory for usage in unit testing environment
move DelegateAsync transform to grails.async package
fix handling of then chaining for PromiseMap and PromiseList
DelegateAsync: don't specify generic type if target method returns void
remove leftShift from the Promise interface. Should be something implementations can optionally implement
Refactored code to make PromiseFactory stateless / pass decorators via argument
Missing from last commit
Move Promse.Decorator interface to PromiseDecorator in different package. Make AST transform aware of PromiseDecoratorProvider and pass it on via internal createPromise method call
exclude GroovyObject methods as candidates to be added as async methods
don't exclude interface methods from delegation