public void doFilter()

in src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java [66:104]


    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
            ServletException {
        final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) request;
        final String resourceType = slingRequest.getResource().getResourceType();

        final Configuration config = configurationWhiteboard.getConfiguration(slingRequest, resourceType);
        if (config == null) {
            chain.doFilter(request, response);
            return;
        }

        final IncludeGenerator generator = generatorWhiteboard.getGenerator(config.getIncludeTypeName());
        if (generator == null) {
            LOG.error("Invalid generator: " + config.getIncludeTypeName());
            chain.doFilter(request, response);
            return;
        }

        final PrintWriter writer = response.getWriter();
        final String url = getUrl(config, slingRequest);
        if (url == null) {
            chain.doFilter(request, response);
            return;
        }

        if (config.getAddComment()) {
            writer.append(String.format(COMMENT, StringEscapeUtils.escapeHtml4(url), resourceType));
        }

        // Only write the includes markup if the required, configurable request
        // header is present
        if (shouldWriteIncludes(config, slingRequest)) {
            String include = generator.getInclude(slingRequest,url);
            LOG.debug(include);
            writer.append(include);
        } else {
            chain.doFilter(request, response);
        }
    }