Details
-
New Feature
-
Resolution: Fixed
-
Major
-
1.3 RC1
-
None
-
Unit
-
Description
Velocity has two components that are used for executing real Java methods, an introspector and an uberspector. The introspector is doing the low-level job of finding a method to call, given its name and a list of parameters. The uberspector has the extra job to find also getters, setters and iterators, wrap all of these into Velocity helper classes, and also do some nice logging.
By default, Velocity provides two uberspector/introspector pairs, a simple one, and a secure one that restricts calls to dangerous classes.
Given that we already found two uses for custom introspectors (XWIKI-2181 and XWIKI-2169), it would be nice to have just one uberspector (as required by the Velocity engine 1.5) and initialize it with a configurable list of uberspectors, using the Decorator pattern. Thus, we can define simple uberspectors that handle specific details of the script execution.
Note that chaining uberspectors is not the same as chaining introspectors...
Attachments
Issue Links
- blocks
-
XWIKI-2181 Velocity Introspector that restricts access to methods that require Programming rights
- Open
-
XWIKI-2169 Automatic logging of deprecated method calls in Velocity
- Closed
- is related to
-
XWIKI-2531 Custom Velocity Uberspector that allows linking several uberspectors
- Closed