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);
}
}