in src/main/java/org/apache/sling/fileoptim/impl/filters/FileOptimizerFilter.java [77:104]
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
if (request instanceof SlingHttpServletRequest) {
Resource resource = ((SlingHttpServletRequest) request).getResource();
try {
if (fileOptimizer.canOptimize(resource)) {
log.debug("Returning optimized file");
OptimizationResult res = fileOptimizer.getOptimizedContents(resource);
if (res.isOptimized()) {
OptimizedFile of = null;
if (!resource.getName().equals(JcrConstants.JCR_CONTENT)) {
of = resource.getChild(JcrConstants.JCR_CONTENT).adaptTo(OptimizedFile.class);
} else {
of = resource.adaptTo(OptimizedFile.class);
}
response.setContentType(of.getMimeType());
response.setContentLengthLong(res.getOptimizedSize());
((HttpServletResponse) response).setHeader("Optimized-With", res.getAlgorithm());
IOUtils.copy(res.getOptimizedContentStream(), response.getOutputStream());
return;
}
}
} catch (Exception e) {
log.warn("Unexpected exception attempting to optimize file response", e);
}
}
chain.doFilter(request, response);
}