Claude Brisson created VELOCITY-917:
---------------------------------------
Summary: VTL Grammar Characters Configuration
Key: VELOCITY-917
URL: https://issues.apache.org/jira/browse/VELOCITY-917
Project: Velocity
Issue Type: New Feature
Components: Engine
Affects Versions: 2.2
Reporter: Claude Brisson
Assignee: Claude Brisson
Experimental feature.
The goal is to introduce new configuration parameters to be able to change the
VTL grammar. For instance:
parser.character.dollar = '~'
parser.character.hash = '@'
parser.character.arobase = '%'
parser.character.star = '?'
Requirements:
+ fully B.C.
+ done at runtime, without the need to recompile the parser
+ null impact on performance
Implementation:
1. Parametrize code that needs explicit references to those characters
2. Define a ParserTokenManager interface and have the parser use this interface
rather than a concrete class
3. Use a custom class loader to *patch* the concrete token manager .class file,
instantiate this custom token manager and initialize parsers with it
The binary patch is prepared at compilation time (there will be one patch per
JRE vendor and class file version).
Due to the limited capability of this technique, the chosen characters are
restricted to UTF-8 single bytes characters. Patches _could_ be prepared for
two-bytes or more characters, but there would be the need to have as many
parser objects as variants in one/two/... characters combinations.
Also, some characters and combinations are obviously invalid.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]