Vincent Massol wrote: > ... > > Ok here's what I propose: > > * A module can have one or VelocityBridge components > * A VelocityBridge component can override or create new methods > * A VelocityBridge is registered as a component with a role-hint of > the class being bridged > * A VelocityBridge has a getName() method. That's the name under which > it'll be known in velocity (more below) > * A VelocityBridge has a getWrappedService() method which returns the > instance of the class being wrapped.
Is wrappedService.class == role-hint? Or what's the difference? > * There's a MethodSwapUberspector uberspector which has a high > priority and thus intercepts all calls. > * On init the MethodSwapUberspector looks for all VelocityBridge > components and stores them in a hashmap indexed on their names. How can I disable some bridges? Some configuration option? > * When "services.<name>.<method>" is called from Velocity, the > MethodSwapUberspector gets called and it looks in its hashmap for a > bridge named <name>. If found it looks for the <method> method in that > class (with the same signature). If found it calls it. If not found it > tries to call the method directly by calling it on getWrappedService(). > WDYT? +1. -- Artem Melentyev _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

