Hi Sven, Why this change? This makes it impossible to use another Filter after WicketFilter?
Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Fri, Oct 9, 2015 at 10:10 AM, <svenme...@apache.org> wrote: > Repository: wicket > Updated Branches: > refs/heads/master 3b54aa802 -> 0d5011480 > > > simplify filter handling: don't pass the chain around, use the boolean > return in #doFilter() instead > > Project: http://git-wip-us.apache.org/repos/asf/wicket/repo > Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0d501148 > Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0d501148 > Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0d501148 > > Branch: refs/heads/master > Commit: 0d50114800b44c888ec3d719e06427d4f322925c > Parents: 3b54aa8 > Author: Sven Meier <svenme...@apache.org> > Authored: Fri Oct 9 10:08:44 2015 +0200 > Committer: Sven Meier <svenme...@apache.org> > Committed: Fri Oct 9 10:08:44 2015 +0200 > > ---------------------------------------------------------------------- > .../wicket/protocol/http/WicketFilter.java | 24 +++++++------------- > .../wicket/protocol/http/WicketServlet.java | 4 ++-- > .../wicket/protocol/http/WicketFilterTest.java | 8 ++----- > 3 files changed, 12 insertions(+), 24 deletions(-) > ---------------------------------------------------------------------- > > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/0d501148/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java > b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java > index d73a4a7..197603d 100644 > --- > a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java > +++ > b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java > @@ -132,13 +132,12 @@ public class WicketFilter implements Filter > * > * @param request > * @param response > - * @param chain > * @return false, if the request could not be processed > * @throws IOException > * @throws ServletException > */ > - boolean processRequest(ServletRequest request, final > ServletResponse response, > - final FilterChain chain) throws IOException, > ServletException > + boolean processRequest(ServletRequest request, final > ServletResponse response) > + throws IOException, ServletException > { > final ThreadContext previousThreadContext = > ThreadContext.detach(); > > @@ -169,10 +168,6 @@ public class WicketFilter implements Filter > if (shouldIgnorePath(httpServletRequest)) > { > log.debug("Ignoring request {}", > httpServletRequest.getRequestURL()); > - if (chain != null) > - { > - chain.doFilter(request, response); > - } > return false; > } > > @@ -201,7 +196,7 @@ public class WicketFilter implements Filter > > RequestCycle requestCycle = > application.createRequestCycle(webRequest, webResponse); > res = processRequestCycle(requestCycle, > webResponse, httpServletRequest, > - httpServletResponse, chain); > + httpServletResponse); > } > else > { > @@ -246,14 +241,13 @@ public class WicketFilter implements Filter > * @param webResponse > * @param httpServletRequest > * @param httpServletResponse > - * @param chain > * @return false, if the request could not be processed > * @throws IOException > * @throws ServletException > */ > protected boolean processRequestCycle(RequestCycle requestCycle, > WebResponse webResponse, > - HttpServletRequest httpServletRequest, HttpServletResponse > httpServletResponse, > - final FilterChain chain) throws IOException, > ServletException > + HttpServletRequest httpServletRequest, HttpServletResponse > httpServletResponse) > + throws IOException, ServletException > { > // Assume we are able to handle the request > boolean res = true; > @@ -264,10 +258,6 @@ public class WicketFilter implements Filter > } > else > { > - if (chain != null) > - { > - chain.doFilter(httpServletRequest, > httpServletResponse); > - } > res = false; > } > return res; > @@ -281,7 +271,9 @@ public class WicketFilter implements Filter > public void doFilter(final ServletRequest request, final > ServletResponse response, > final FilterChain chain) throws IOException, > ServletException > { > - processRequest(request, response, chain); > + if (!processRequest(request, response)) { > + chain.doFilter(request, response); > + } > } > > /** > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/0d501148/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java > b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java > index 5768c4f..2a8731e 100644 > --- > a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java > +++ > b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java > @@ -134,7 +134,7 @@ public class WicketServlet extends HttpServlet > public final void doGet(final HttpServletRequest servletRequest, > final HttpServletResponse servletResponse) throws > ServletException, IOException > { > - if (wicketFilter.processRequest(servletRequest, > servletResponse, null) == false) > + if (wicketFilter.processRequest(servletRequest, > servletResponse) == false) > { > fallback(servletRequest, servletResponse); > } > @@ -156,7 +156,7 @@ public class WicketServlet extends HttpServlet > public final void doPost(final HttpServletRequest servletRequest, > final HttpServletResponse servletResponse) throws > ServletException, IOException > { > - if (wicketFilter.processRequest(servletRequest, > servletResponse, null) == false) > + if (wicketFilter.processRequest(servletRequest, > servletResponse) == false) > { > fallback(servletRequest, servletResponse); > } > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/0d501148/wicket-core/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java > b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java > index 7fc36a7..f1b4ce9 100644 > --- > a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java > +++ > b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java > @@ -484,27 +484,23 @@ public class WicketFilterTest extends Assert > return > (String)invocation.getArguments()[0]; > } > }); > - FilterChain chain = mock(FilterChain.class); > > // execute 3 requests - 1 for bla.js, 1 for bla.css and 1 > for bla.img > for (int i = 0; i < 3; i++) > { > - boolean isProcessed = > filter.processRequest(request, response, chain); > + boolean isProcessed = > filter.processRequest(request, response); > assertFalse(isProcessed); > verify(application, > Mockito.never()).newWebRequest(Matchers.eq(request), > Matchers.anyString()); > verify(application, > Mockito.never()).newWebResponse(Matchers.any(WebRequest.class), > Matchers.eq(response)); > - verify(chain, Mockito.times(i + > 1)).doFilter(request, response); > } > > // execute the request to /something/real > - boolean isProcessed = filter.processRequest(request, > response, chain); > + boolean isProcessed = filter.processRequest(request, > response); > assertTrue(isProcessed); > verify(application).newWebRequest(Matchers.eq(request), > Matchers.anyString()); > > verify(application).newWebResponse(Matchers.any(WebRequest.class), > Matchers.eq(response)); > - // the request is processed so the chain is not executed > - verify(chain, Mockito.times(3)).doFilter(request, > response); > } > > /** > >