Minor food for thought...
While responding to a user forum question (http://www.jboss.com/index.html?module=bb&op=viewtopic&t=104915) it occurred to me that other interceptor-based architectures I see include call-context metadata as an internal field of the Invocation object that gets passed through the interceptor chain on the stack. In JBC we are separating it out into the InvocationContext ThreadLocal.
Since JBC is now using its own MethodCall subclass, including the InvocationContext metadata in the invocation object itself is possible.
There are downsides to this, and it might break things I haven't thought of. If we ever move away from using JBCMethodCall as our "Invocation" class (part of reducing coupling to JGroups) we should be sure to think about merging the InvocationContext back in.
I agree, this is my plan, except that rather than use JBCMethodCall, I plan to use the Invocation object from JBoss AOP (from JBC 2.1.x) and pass in a MethodCall object as a part of the Invocation.
The ThreadLocal is ugly and will go in time.