Hi devs,
I'd like to commit my big threadlocal patch. What it does is the
following:
* introduce a new VelocityManager component with 2 methods:
getVelocityContext() and getVelocityEngine() that have to be used from
now one whenever code needs to get the velocity context or evaluate
some velocity templates. Note that these methods are called in the
XWikiVelocityRenderer for now so nothing to change elsewhere for now.
* initialize the new Container objects (request, response, session)
in places where threads are created. This is required because request,
response and session are saved in ThreadLocal variables so that we
don't have to pass them to all methods.
* All this is required for me to implement the new VelocityMacro in
the new rendering mechanism since that component needs access to the
VelocityContext and VelocityEngine but without using the old code...
Since this is a complex patch it's very likely it'll break things.
I've tested several cases and it seems to be ok but I'm pretty sure
there'll be edge cases that may not work. I'd still like to commit
since it's getting big and I'd rather we commit it now rather than
later since we're still in 1.5M1 stage. I also need to progress on the
new rendering mechanism and this is prerequisite code.
Let me know if you're ok.
Thanks
-Vincent