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 <[email protected]>
Gerrit-Reviewer: Alexander Wels <[email protected]>
Gerrit-Reviewer: Einav Cohen <[email protected]>
Gerrit-Reviewer: Gilad Chaplik <[email protected]>
Gerrit-Reviewer: Juan Hernandez <[email protected]>
Gerrit-Reviewer: Vojtech Szocs <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches