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