You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2016/04/26 06:03:33 UTC
svn commit: r1740941 - in /sling/trunk/contrib/scripting/freemarker: pom.xml
src/main/java/org/apache/sling/scripting/freemarker/internal/FreemarkerScriptEngine.java
Author: olli
Date: Tue Apr 26 04:03:33 2016
New Revision: 1740941
URL: http://svn.apache.org/viewvc?rev=1740941&view=rev
Log:
SLING-5688 Make static models available
Modified:
sling/trunk/contrib/scripting/freemarker/pom.xml
sling/trunk/contrib/scripting/freemarker/src/main/java/org/apache/sling/scripting/freemarker/internal/FreemarkerScriptEngine.java
Modified: sling/trunk/contrib/scripting/freemarker/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/freemarker/pom.xml?rev=1740941&r1=1740940&r2=1740941&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/freemarker/pom.xml (original)
+++ sling/trunk/contrib/scripting/freemarker/pom.xml Tue Apr 26 04:03:33 2016
@@ -76,6 +76,9 @@
org.zeroturnaround.javarebel;
org.python.*;resolution:=optional, *
</Import-Package>
+ <DynamicImport-Package>
+ *
+ </DynamicImport-Package>
<ScriptEngine-Name>${project.name}</ScriptEngine-Name>
<ScriptEngine-Version>${project.version}</ScriptEngine-Version>
<_dsannotations>*</_dsannotations>
Modified: sling/trunk/contrib/scripting/freemarker/src/main/java/org/apache/sling/scripting/freemarker/internal/FreemarkerScriptEngine.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/freemarker/src/main/java/org/apache/sling/scripting/freemarker/internal/FreemarkerScriptEngine.java?rev=1740941&r1=1740940&r2=1740941&view=diff
==============================================================================
--- sling/trunk/contrib/scripting/freemarker/src/main/java/org/apache/sling/scripting/freemarker/internal/FreemarkerScriptEngine.java (original)
+++ sling/trunk/contrib/scripting/freemarker/src/main/java/org/apache/sling/scripting/freemarker/internal/FreemarkerScriptEngine.java Tue Apr 26 04:03:33 2016
@@ -24,7 +24,9 @@ import javax.script.ScriptEngineFactory;
import javax.script.ScriptException;
import javax.jcr.Node;
+import freemarker.ext.beans.BeansWrapper;
import freemarker.log.Logger;
+import freemarker.template.TemplateHashModel;
import org.apache.sling.api.scripting.SlingBindings;
import org.apache.sling.api.scripting.SlingScriptHelper;
import org.apache.sling.scripting.api.AbstractSlingScriptEngine;
@@ -42,9 +44,15 @@ public class FreemarkerScriptEngine exte
private final Configuration configuration;
+ private final BeansWrapper beansWrapper;
+
+ private final TemplateHashModel statics;
+
public FreemarkerScriptEngine(ScriptEngineFactory factory) {
super(factory);
configuration = new Configuration();
+ beansWrapper = new BeansWrapper();
+ statics = beansWrapper.getStaticModels();
}
public Object eval(Reader reader, ScriptContext scriptContext)
@@ -66,6 +74,7 @@ public class FreemarkerScriptEngine exte
try {
Template tmpl = new Template(scriptName, reader, configuration);
bindings.put("currentNode", new NodeModel((Node) bindings.get("currentNode")));
+ bindings.put("statics", statics);
tmpl.process(bindings, scriptContext.getWriter());
} catch (Throwable t) {
log.error("Failure running Freemarker script.", t);