private Bindings getBindingsByEngine()

in src/main/java/org/apache/sling/scripting/core/impl/SlingBindingsVariablesListJsonServlet.java [179:197]


    private Bindings getBindingsByEngine(ScriptEngineFactory scriptEngineFactory, SlingHttpServletRequest request, SlingHttpServletResponse response) 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(response);
        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;
    }