Gilad Chaplik has posted comments on this change. Change subject: userportal: Added caching to user portal page webadmin: Added caching to webadmin page ......................................................................
Patch Set 1: (11 inline comments) .................................................... File frontend/webadmin/modules/frontend-overlay/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/CachingFilter.java Line 53: public void doFilter(ServletRequest request, ServletResponse response, Line 54: FilterChain chain) throws IOException, ServletException { Line 55: // Cast to HttpServletRequest/Response. Line 56: final HttpServletRequest httpRequest = (HttpServletRequest) request; Line 57: final HttpServletResponse httpResponse = (HttpServletResponse) response; please consider instanceOf check? Line 58: Line 59: if (cacheFilterPatternMathes(httpRequest)) { Line 60: HttpServletResponseWrapper responseWrapper = getCacheHeaderResponseWrapper(httpResponse); Line 61: httpResponse.setHeader(CACHE_CONTROL, CACHE_YEAR); Line 58: Line 59: if (cacheFilterPatternMathes(httpRequest)) { Line 60: HttpServletResponseWrapper responseWrapper = getCacheHeaderResponseWrapper(httpResponse); Line 61: httpResponse.setHeader(CACHE_CONTROL, CACHE_YEAR); Line 62: httpResponse.setHeader(EXPIRES, getNowPlusYearHttpDate()); consider using NOW+[1 year of milliseconds] Line 63: chain.doFilter(request, responseWrapper); Line 64: } else if (noCacheFilterPatternMatches(httpRequest)) { Line 65: chain.doFilter(request, response); Line 66: httpResponse.setHeader(CACHE_CONTROL, NO_CACHE); Line 59: if (cacheFilterPatternMathes(httpRequest)) { Line 60: HttpServletResponseWrapper responseWrapper = getCacheHeaderResponseWrapper(httpResponse); Line 61: httpResponse.setHeader(CACHE_CONTROL, CACHE_YEAR); Line 62: httpResponse.setHeader(EXPIRES, getNowPlusYearHttpDate()); Line 63: chain.doFilter(request, responseWrapper); you pass responseWrapper to the next chain, so why are you setting the header of httpResponse parameter? Line 64: } else if (noCacheFilterPatternMatches(httpRequest)) { Line 65: chain.doFilter(request, response); Line 66: httpResponse.setHeader(CACHE_CONTROL, NO_CACHE); Line 67: httpResponse.setHeader(EXPIRES, getYesterdayHttpDate()); Line 63: chain.doFilter(request, responseWrapper); Line 64: } else if (noCacheFilterPatternMatches(httpRequest)) { Line 65: chain.doFilter(request, response); Line 66: httpResponse.setHeader(CACHE_CONTROL, NO_CACHE); Line 67: httpResponse.setHeader(EXPIRES, getYesterdayHttpDate()); getYesterday... () == 0? Line 68: } else { Line 69: chain.doFilter(request, response); Line 70: } Line 71: } Line 65: chain.doFilter(request, response); Line 66: httpResponse.setHeader(CACHE_CONTROL, NO_CACHE); Line 67: httpResponse.setHeader(EXPIRES, getYesterdayHttpDate()); Line 68: } else { Line 69: chain.doFilter(request, response); this line is duplicated in each of the if clauses. Line 70: } Line 71: } Line 72: Line 73: private String getYesterdayHttpDate() { Line 69: chain.doFilter(request, response); Line 70: } Line 71: } Line 72: Line 73: private String getYesterdayHttpDate() { don't think we need this method. Line 74: // Get Calendar instance Line 75: Calendar calendar = Calendar.getInstance(); Line 76: // Subtract a day, so it is in the past. Line 77: calendar.add(Calendar.DAY_OF_MONTH, -1); Line 81: dateFormat.setTimeZone(TimeZone.getTimeZone(GMT)); Line 82: return dateFormat.format(calendar.getTime()); Line 83: } Line 84: Line 85: private String getNowPlusYearHttpDate() { don't think we need this method. Line 86: // Get Calendar instance Line 87: Calendar calendar = Calendar.getInstance(); Line 88: // Add a year to now. Line 89: calendar.add(Calendar.YEAR, 1); Line 93: dateFormat.setTimeZone(TimeZone.getTimeZone(GMT)); Line 94: return dateFormat.format(calendar.getTime()); Line 95: } Line 96: Line 97: private HttpServletResponseWrapper getCacheHeaderResponseWrapper( should return HttpServletResponse Line 98: final HttpServletResponse httpResponse) { Line 99: return new HttpServletResponseWrapper(httpResponse) { Line 100: @Override Line 101: public void setHeader(final String name, final String value) { Line 104: httpResponse.setHeader(name, value); Line 105: } Line 106: } Line 107: }; Line 108: } please explain why we need this override/add comment Line 109: Line 110: private boolean cacheFilterPatternMathes(HttpServletRequest httpRequest) { Line 111: boolean result = false; Line 112: if (null != cachePattern) { Line 135: List<String> filterParams = Collections.list(filterConfig Line 136: .getInitParameterNames()); Line 137: // No need to worry about concurrency, worst case scenario the same Line 138: // pattern is calculated a couple of times. Line 139: if (null == cachePattern) { consider switching the null loc (cachePattern == null), that's the standard in the engine Line 140: // Get a list of parameters. Line 141: for (String paramName : filterParams) { Line 142: if (CACHE.equals(paramName)) { Line 143: cachePattern = Pattern.compile(filterConfig Line 137: // No need to worry about concurrency, worst case scenario the same Line 138: // pattern is calculated a couple of times. Line 139: if (null == cachePattern) { Line 140: // Get a list of parameters. Line 141: for (String paramName : filterParams) { use getInitParameter(name) instead of iterating. Line 142: if (CACHE.equals(paramName)) { Line 143: cachePattern = Pattern.compile(filterConfig Line 144: .getInitParameter(paramName)); Line 145: break; -- To view, visit http://gerrit.ovirt.org/10449 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I5d8e02ae542a4aa37bd421bde5582c0f3e9820ad Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alexander Wels <aw...@redhat.com> Gerrit-Reviewer: Alexander Wels <aw...@redhat.com> Gerrit-Reviewer: Einav Cohen <eco...@redhat.com> Gerrit-Reviewer: Gilad Chaplik <gchap...@redhat.com> Gerrit-Reviewer: Juan Hernandez <juan.hernan...@redhat.com> Gerrit-Reviewer: Vojtech Szocs <vsz...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches