Example usage for com.liferay.portal.kernel.servlet BufferCacheServletResponse BufferCacheServletResponse

List of usage examples for com.liferay.portal.kernel.servlet BufferCacheServletResponse BufferCacheServletResponse

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.servlet BufferCacheServletResponse BufferCacheServletResponse.

Prototype

public BufferCacheServletResponse(HttpServletResponse httpServletResponse) 

Source Link

Usage

From source file:com.fb.filter.OpenGraphFilter.java

License:Open Source License

@Override
protected void processFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
        throws Exception {

    request.setAttribute(SKIP_FILTER, Boolean.TRUE);

    if (_log.isDebugEnabled()) {
        String completeURL = HttpUtil.getCompleteURL(request);

        _log.debug("Adding Open Graph Attributes " + completeURL);
    }/*  w  w  w  .  ja v a 2s.  c om*/

    BufferCacheServletResponse bufferCacheServletResponse = new BufferCacheServletResponse(response);

    processFilter(OpenGraphFilter.class, request, bufferCacheServletResponse, filterChain);

    String content = bufferCacheServletResponse.getString();

    String contentType = response.getContentType();

    if ((contentType != null) && contentType.startsWith(ContentTypes.TEXT_HTML)) {

        content = getContent(request, content);

        ServletResponseUtil.write(response, content);
    } else {
        ServletResponseUtil.write(response, bufferCacheServletResponse);
    }
}

From source file:com.liferay.content.targeting.analytics.hook.filter.YoutubeVideoHtmlFilter.java

License:Open Source License

@Override
protected void processFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
        throws Exception {

    request.setAttribute(SKIP_FILTER, Boolean.TRUE);

    if (_log.isDebugEnabled()) {
        String completeURL = HttpUtil.getCompleteURL(request);

        _log.debug("Processing Youtube URLs for " + completeURL);
    }//ww  w  .j av  a 2  s  . co m

    BufferCacheServletResponse bufferCacheServletResponse = new BufferCacheServletResponse(response);

    processFilter(YoutubeVideoHtmlFilter.class, request, bufferCacheServletResponse, filterChain);

    String content = bufferCacheServletResponse.getString();

    String contentType = response.getContentType();

    if ((contentType != null) && contentType.startsWith(ContentTypes.TEXT_HTML)) {

        content = getContent(request, content);

        ServletResponseUtil.write(response, content);
    } else {
        ServletResponseUtil.write(response, bufferCacheServletResponse);
    }
}

From source file:com.liferay.rtl.servlet.filters.dynamiccss.DynamicCSSFilter.java

License:Open Source License

protected Object getDynamicContent(HttpServletRequest request, HttpServletResponse response,
        FilterChain filterChain) throws Exception {

    String requestURI = request.getRequestURI();

    String requestPath = requestURI;

    String contextPath = request.getContextPath();

    if (!contextPath.equals(StringPool.SLASH)) {
        requestPath = requestPath.substring(contextPath.length());
    }//w  w  w . j  av  a 2s  . c o m

    URL resourceURL = _servletContext.getResource(requestPath);

    if (resourceURL == null) {
        return null;
    }

    URLConnection urlConnection = resourceURL.openConnection();

    String cacheCommonFileName = getCacheFileName(request);

    File cacheContentTypeFile = new File(_tempDir, cacheCommonFileName + "_E_CONTENT_TYPE");
    File cacheDataFile = new File(_tempDir, cacheCommonFileName + "_E_DATA");

    if (cacheDataFile.exists() && (cacheDataFile.lastModified() >= urlConnection.getLastModified())) {

        if (cacheContentTypeFile.exists()) {
            String contentType = FileUtil.read(cacheContentTypeFile);

            response.setContentType(contentType);
        }

        return cacheDataFile;
    }

    String dynamicContent = null;

    String content = null;

    try {
        if (requestPath.endsWith(_CSS_EXTENSION)) {
            if (_log.isInfoEnabled()) {
                _log.info("Parsing SASS on CSS " + requestPath);
            }

            content = StringUtil.read(urlConnection.getInputStream());

            dynamicContent = DynamicCSSUtil.parseSass(_servletContext, request, requestPath, content);

            response.setContentType(ContentTypes.TEXT_CSS);

            FileUtil.write(cacheContentTypeFile, ContentTypes.TEXT_CSS);
        } else if (requestPath.endsWith(_JSP_EXTENSION)) {
            if (_log.isInfoEnabled()) {
                _log.info("Parsing SASS on JSP or servlet " + requestPath);
            }

            BufferCacheServletResponse bufferCacheServletResponse = new BufferCacheServletResponse(response);

            processFilter(DynamicCSSFilter.class, request, bufferCacheServletResponse, filterChain);

            bufferCacheServletResponse.finishResponse();

            content = bufferCacheServletResponse.getString();

            dynamicContent = DynamicCSSUtil.parseSass(_servletContext, request, requestPath, content);

            FileUtil.write(cacheContentTypeFile, bufferCacheServletResponse.getContentType());
        } else {
            return null;
        }
    } catch (Exception e) {
        _log.error("Unable to parse SASS on CSS " + requestPath, e);

        if (_log.isDebugEnabled()) {
            _log.debug(content);
        }

        response.setHeader(HttpHeaders.CACHE_CONTROL, HttpHeaders.CACHE_CONTROL_NO_CACHE_VALUE);
    }

    if (dynamicContent != null) {
        FileUtil.write(cacheDataFile, dynamicContent);
    } else {
        dynamicContent = content;
    }

    return dynamicContent;
}