use of javax.script.SimpleBindings in project sling by apache.
the class JsEnvironment method buildBindings.
private Bindings buildBindings(Resource scriptResource, Bindings local, Bindings arguments, CommonJsModule commonJsModule) {
Bindings bindings = new SimpleBindings();
bindings.putAll(engineBindings);
DependencyResolver dependencyResolver = new DependencyResolver(scriptResource, this, local);
UseFunction useFunction = new UseFunction(dependencyResolver, arguments);
bindings.put(Variables.JS_USE, useFunction);
bindings.put(Variables.MODULE, commonJsModule);
bindings.put(Variables.EXPORTS, commonJsModule.getExports());
bindings.put(Variables.CONSOLE, new Console(LoggerFactory.getLogger(scriptResource.getName())));
bindings.putAll(local);
return bindings;
}
use of javax.script.SimpleBindings in project sling by apache.
the class BindingsUtils method merge.
/**
* Combine two bindings objects. Priority goes to latter bindings.
*
* @param former first map of bindings
* @param latter second map of bindings, which can override the fist one
* @return the merging of the two maps
*/
public static Bindings merge(Bindings former, Bindings latter) {
Bindings bindings = new SimpleBindings();
bindings.putAll(former);
bindings.putAll(latter);
return bindings;
}
use of javax.script.SimpleBindings in project sling by apache.
the class JavaClassBackendCompilerTest method testScript.
@Test
public void testScript() throws Exception {
CompilationUnit compilationUnit = TestUtils.readScriptFromClasspath("/test.html");
JavaClassBackendCompiler backendCompiler = new JavaClassBackendCompiler();
SightlyCompiler sightlyCompiler = new SightlyCompiler();
sightlyCompiler.compile(compilationUnit, backendCompiler);
ClassInfo classInfo = buildClassInfo("testScript");
String source = backendCompiler.build(classInfo);
StringWriter writer = new StringWriter();
Bindings bindings = new SimpleBindings();
RenderContext renderContext = buildRenderContext(bindings);
render(writer, classInfo, source, renderContext, new SimpleBindings());
String expectedOutput = IOUtils.toString(this.getClass().getResourceAsStream("/test-output.html"), "UTF-8");
assertEquals(expectedOutput, writer.toString());
}
use of javax.script.SimpleBindings in project sling by apache.
the class JavaClassBackendCompilerTest method sling_6094_2.
@Test
public void sling_6094_2() throws Exception {
CompilationUnit compilationUnit = TestUtils.readScriptFromClasspath("/SLING-6094.2.html");
JavaClassBackendCompiler backendCompiler = new JavaClassBackendCompiler();
SightlyCompiler sightlyCompiler = new SightlyCompiler();
sightlyCompiler.compile(compilationUnit, backendCompiler);
ClassInfo classInfo = buildClassInfo("sling_6094_2");
String source = backendCompiler.build(classInfo);
StringWriter writer = new StringWriter();
Bindings bindings = new SimpleBindings();
RenderContext renderContext = buildRenderContext(bindings);
render(writer, classInfo, source, renderContext, new SimpleBindings());
String expectedOutput = IOUtils.toString(this.getClass().getResourceAsStream("/SLING-6094.2.output.html"), "UTF-8");
assertEquals(expectedOutput, writer.toString());
}
use of javax.script.SimpleBindings in project sling by apache.
the class JavaClassBackendCompilerTest method sling_6094_1.
@Test
public void sling_6094_1() throws Exception {
CompilationUnit compilationUnit = TestUtils.readScriptFromClasspath("/SLING-6094.1.html");
JavaClassBackendCompiler backendCompiler = new JavaClassBackendCompiler();
SightlyCompiler sightlyCompiler = new SightlyCompiler();
sightlyCompiler.compile(compilationUnit, backendCompiler);
ClassInfo classInfo = buildClassInfo("sling_6094_1");
String source = backendCompiler.build(classInfo);
StringWriter writer = new StringWriter();
Bindings bindings = new SimpleBindings();
bindings.put("img", new HashMap<String, Object>() {
{
put("attributes", new HashMap<String, String>() {
{
put("v-bind:src", "replaced");
}
});
}
});
RenderContext renderContext = buildRenderContext(bindings);
render(writer, classInfo, source, renderContext, new SimpleBindings());
String expectedOutput = IOUtils.toString(this.getClass().getResourceAsStream("/SLING-6094.1.output.html"), "UTF-8");
assertEquals(expectedOutput, writer.toString());
}
Aggregations