On Jan 21, 2010, at 4:45 PM, Luis Fernando Planella Gonzalez wrote:
Help is always welcome. This one is tricky to describe, so I'm going
to try the Mr. Wizzard approach and list the "ingredients" first.
Ok,
so for this functionality, we need:
- a thread pool (java.util.concurrent.Executor) -- can use a
standard impl
- a java.util.concurrent.FutureTask
- a java.util.concurrent.Callable -- we will have to make one of
these
The callable will be a class that does the actual execution of the
async method, we'll be constructing one per method call passing in
the
method to be invoked, the object itself, and the parameters.
In the main request thread we will not invoke the target method
directly, instead we will:
1. construct a Callable object that contains all the information to
do the invocation
2. construct a FutureTask using the Callable
3. give the FutureTask to the Executor
4. return the FutureTask as the return value
We don't need to plum all this into the container code just yet.
Initially we just need a little class (maybe add it to
org.apache.openejb.util) that wraps all of this up and some test
cases
for it. We can worry about the when and where to use it question
later -- it's much tricker and far less isolated.
Hopefully this is enough to get started if you're interested in
hacking on it.
Ok, leave it to me, I'll hack on this, as it seems interesting and
not extremely hard...
However, if things go wrong, I'll come back crying out for help ;)
Cool. Feel free to chat on the list conversationally while coding.
Never hurts.
And, do you have an idea about when OpenEJB 3.1.3 will be released?
No date has been set yet, do you have a preference?
No, just want to be sure that it will be released, and not just be
forgotten because of the version 3.? / 4.? which will implement EJB
3.1 xD
So far we've been adding EJB 3.1 features in to the 3.1.x branch.
There are only a few parts of EJB 3.1 that involve a change to
existing ejb interfaces, so hopefully we can get pretty towards 3.1
before we feel the need to switch version numbers.