private void includeScript()

in src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java [101:126]


    private void includeScript(final Bindings bindings, String script, PrintWriter out) {
        if (StringUtils.isEmpty(script)) {
            throw new SightlyException("Path for data-sly-include is empty");
        } else {
            LOG.debug("Attempting to include script {}.", script);
            SlingScriptHelper slingScriptHelper = BindingsUtils.getHelper(bindings);
            ServletResolver servletResolver = slingScriptHelper.getService(ServletResolver.class);
            if (servletResolver != null) {
                SlingHttpServletRequest request = BindingsUtils.getRequest(bindings);
                Servlet servlet = servletResolver.resolveServlet(request.getResource(), script);
                if (servlet != null) {
                    try {
                        SlingHttpServletResponse response = BindingsUtils.getResponse(bindings);
                        PrintWriterResponseWrapper resWrapper = new PrintWriterResponseWrapper(out, response);
                        servlet.service(request, resWrapper);
                    } catch (Exception e) {
                        throw new SightlyException("Failed to include script " + script, e);
                    }
                } else {
                    throw new SightlyException("Failed to locate script " + script);
                }
            } else {
                throw new SightlyException("Sling ServletResolver service is unavailable, failed to include " + script);
            }
        }
    }