[
https://issues.apache.org/jira/browse/SLING-7207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Radu Cotescu reassigned SLING-7207:
-----------------------------------
Assignee: Radu Cotescu
> Get rid of runtime reflection in HTL expression evaluation
> ----------------------------------------------------------
>
> Key: SLING-7207
> URL: https://issues.apache.org/jira/browse/SLING-7207
> Project: Sling
> Issue Type: Improvement
> Components: Scripting
> Affects Versions: Scripting HTL Engine 1.0.20, Scripting HTL Compiler
> 1.0.0, Scripting HTL Java Compiler 1.0.0
> Reporter: Vlad Bailescu
> Assignee: Radu Cotescu
>
> At the moment the following expression
> {code}
> <sly data-sly-use.obj="com.my.Obj">${obj.message}</sly>
> {code}
> generates this Java code:
> {code}
> Object _global_obj = null;
> _global_obj = renderContext.call("use", "com.my.Obj", obj());
> {
> Object var_0 = renderContext.call("xss",
> renderContext.getObjectModel().resolveProperty(_global_obj, "message"),
> "text");
> out.write(renderContext.getObjectModel().toString(var_0));
> }
> {code}
> Resolving the property is done via reflection at runtime. Given the fact that
> for most use providers (JS is an exception) we know the type of
> {{_global_obj}} we could determine the right method to call at compile time.
> Resulting code might look something like:
> {code}
> com.my.Obj _global_obj = renderContext.call("use", com.my.Obj.class, obj());
> {
> Object var_0 = renderContext.call("xss", _global_obj.getMessage()),
> "text");
> out.write(renderContext.getObjectModel().toString(var_0));
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)