private Bindings getBindingsByEngine()

in src/main/java/org/apache/sling/scripting/core/impl/ScriptingVariablesConsolePlugin.java [244:270]


    private Bindings getBindingsByEngine(ScriptEngineFactory scriptEngineFactory, SlingHttpServletRequest request)
            throws IOException {
        String context = SlingScriptAdapterFactory.BINDINGS_CONTEXT; // use default context only
        final Collection<BindingsValuesProvider> bindingsValuesProviders =
                bindingsValuesProviderTracker.getBindingsValuesProviders(scriptEngineFactory, context);

        Resource invalidScriptResource =
                new NonExistingResource(request.getResourceResolver(), "some/invalid/scriptpath");
        DefaultSlingScript defaultSlingScript = new DefaultSlingScript(
                bundleContext,
                invalidScriptResource,
                scriptEngineFactory.getScriptEngine(),
                bindingsValuesProviders,
                null,
                null);

        // prepare the bindings (similar as in DefaultSlingScript#service)
        final SlingBindings initalBindings = new SlingBindings();
        initalBindings.setRequest(request);
        initalBindings.setResponse(Builders.newResponseBuilder().build());
        final Bindings bindings = defaultSlingScript.verifySlingBindings(initalBindings);

        // only thing being added in {DefaultSlingScript#call(...)} is resource resolver
        bindings.put(SlingScriptConstants.ATTR_SCRIPT_RESOURCE_RESOLVER, request.getResourceResolver());

        return bindings;
    }