[ 
https://issues.apache.org/jira/browse/JEXL-333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henri Biestro updated JEXL-333:
-------------------------------
    Description: 
*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}

  was:
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.


> 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)

Reply via email to