[
https://issues.apache.org/jira/browse/JEXL-333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henri Biestro reopened JEXL-333:
--------------------------------
Fully static classes (static methods, private actor) are not usable as
namespaces.
> Allow declaration of namespace within script
> --------------------------------------------
>
> Key: JEXL-333
> URL: https://issues.apache.org/jira/browse/JEXL-333
> Project: Commons JEXL
> Issue Type: Improvement
> Affects Versions: 3.1
> Reporter: Henri Biestro
> Assignee: Henri Biestro
> Priority: Major
> Fix For: 3.2
>
>
> *WHAT:*
> Allow declaration of a namespace within a script.
> *WHY:*
> As of 3.1, namespaces must be declared at Jexl engine building time. With an
> external (properties) configuration, adding new namespaces requires
> rebuilding the engine or updating the namespace map. This is often
> inconvenient in test or dev scenarios.
> *HOW:*
> Using a pragma, it is possible to statically add namespace entries for valid
> for the duration of the script execution. The options vehicle can be reused.
> The syntax will be:
> {code}#pragma jexl.namespace.xyz f.q.c.n{code}
> Where 'xyz' is the actual namespace prefix and 'f.q.c.n.' the fully qualified
> class name.
> Example:
> {code}
> #pragma jexl.namespace.tax org.apache.commons.jexl3.ContextNamespaceTest$Taxes
> #pragma jexl.namespace.str java.lang.String
> {code}
> The 1st pragma defines the 'tax' namespace as a static class of a test;
> The 2nd pragma defines the 'str' namespace' as the String class, allowing
> expression like:
> {code}
> str:format('%04d', 42)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)