Author: ate Date: Fri Jun 15 05:32:10 2007 New Revision: 547651 URL: http://svn.apache.org/viewvc?view=rev&rev=547651 Log: Fix for WICKET-660: New Wicket Portlet support: Merge WicketPortletFilter back in WicketFilter using a delagate class for handling and (class) loading the portlet specific functionality See: https://issues.apache.org/jira/browse/WICKET-660#action_12505198
Added: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/FilterRequestContext.java (with props) Modified: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/WicketFilterPortletContext.java Modified: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java?view=diff&rev=547651&r1=547650&r2=547651 ============================================================================== --- incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java (original) +++ incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java Fri Jun 15 05:32:10 2007 @@ -39,6 +39,7 @@ import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.markup.parser.XmlPullParser; import org.apache.wicket.markup.parser.XmlTag; +import org.apache.wicket.protocol.http.portlet.FilterRequestContext; import org.apache.wicket.protocol.http.portlet.WicketFilterPortletContext; import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy; import org.apache.wicket.session.ISessionStore; @@ -119,17 +120,26 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - HttpServletRequest httpServletRequest = (HttpServletRequest)request; - String relativePath = getRelativePath(httpServletRequest); - + HttpServletRequest httpServletRequest; + HttpServletResponse httpServletResponse; + if (filterPortletContext != null) { - filterPortletContext.setupFilter(getFilterConfig(), request, response, getFilterPath(httpServletRequest)); + FilterRequestContext filterRequestContext = new FilterRequestContext((HttpServletRequest)request,(HttpServletResponse)response); + filterPortletContext.setupFilter(getFilterConfig(), filterRequestContext, getFilterPath((HttpServletRequest)request)); + httpServletRequest = filterRequestContext.getRequest(); + httpServletResponse = filterRequestContext.getResponse(); + } + else + { + httpServletRequest = (HttpServletRequest)request; + httpServletResponse = (HttpServletResponse)response; } + String relativePath = getRelativePath(httpServletRequest); + if (isWicketRequest(relativePath)) { - HttpServletResponse httpServletResponse = (HttpServletResponse)response; long lastModified = getLastModified(httpServletRequest); if (lastModified == -1) { Added: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/FilterRequestContext.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/FilterRequestContext.java?view=auto&rev=547651 ============================================================================== --- incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/FilterRequestContext.java (added) +++ incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/FilterRequestContext.java Fri Jun 15 05:32:10 2007 @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.protocol.http.portlet; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public final class FilterRequestContext +{ + private HttpServletRequest request; + private HttpServletResponse response; + + public FilterRequestContext(HttpServletRequest request, HttpServletResponse response) + { + this.request = request; + this.response = response; + } + + public HttpServletRequest getRequest() + { + return request; + } + public void setRequest(HttpServletRequest request) + { + this.request = request; + } + public HttpServletResponse getResponse() + { + return response; + } + public void setResponse(HttpServletResponse response) + { + this.response = response; + } +} \ No newline at end of file Propchange: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/FilterRequestContext.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/FilterRequestContext.java ------------------------------------------------------------------------------ svn:keywords = Id Modified: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/WicketFilterPortletContext.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/WicketFilterPortletContext.java?view=diff&rev=547651&r1=547650&r2=547651 ============================================================================== --- incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/WicketFilterPortletContext.java (original) +++ incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/portlet/WicketFilterPortletContext.java Fri Jun 15 05:32:10 2007 @@ -26,7 +26,6 @@ import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import org.apache.portals.bridges.common.PortletResourceURLFactory; import org.apache.portals.bridges.util.ServletPortletSessionProxy; @@ -41,31 +40,30 @@ */ public class WicketFilterPortletContext { - public void initFilter(FilterConfig filterConfig, WebApplication webApplication) throws ServletException + public void initFilter(FilterConfig filterConfig, WebApplication webApplication) throws ServletException { webApplication.getRequestCycleSettings().setRenderStrategy(IRequestCycleSettings.REDIRECT_TO_RENDER); } - public void setupFilter(FilterConfig config, ServletRequest request, ServletResponse response, String filterPath) throws IOException, ServletException + public void setupFilter(FilterConfig config, FilterRequestContext filterRequestContext, String filterPath) throws IOException, ServletException { - HttpServletRequest servletRequest = (HttpServletRequest)request; - PortletConfig portletConfig = (PortletConfig)request.getAttribute("javax.portlet.config"); + PortletConfig portletConfig = (PortletConfig)filterRequestContext.getRequest().getAttribute("javax.portlet.config"); if ( portletConfig != null ) { - WicketResponseState responseState = (WicketResponseState)request.getAttribute(WicketPortlet.RESPONSE_STATE_ATTR); - request = new PortletServletRequestWrapper(config.getServletContext(),servletRequest, ServletPortletSessionProxy.createProxy(servletRequest)); - if ( WicketPortlet.ACTION_REQUEST.equals(request.getAttribute(WicketPortlet.REQUEST_TYPE_ATTR))) + WicketResponseState responseState = (WicketResponseState)filterRequestContext.getRequest().getAttribute(WicketPortlet.RESPONSE_STATE_ATTR); + filterRequestContext.setRequest(new PortletServletRequestWrapper(config.getServletContext(),filterRequestContext.getRequest(), ServletPortletSessionProxy.createProxy(filterRequestContext.getRequest()))); + if ( WicketPortlet.ACTION_REQUEST.equals(filterRequestContext.getRequest().getAttribute(WicketPortlet.REQUEST_TYPE_ATTR))) { - response = new PortletActionServletResponseWrapper((HttpServletResponse)response, responseState); + filterRequestContext.setResponse(new PortletActionServletResponseWrapper(filterRequestContext.getResponse(), responseState)); } else { - response = new PortletRenderServletResponseWrapper( (HttpServletResponse)response, (RenderResponse)request.getAttribute("javax.portlet.response"),responseState); + filterRequestContext.setResponse(new PortletRenderServletResponseWrapper(filterRequestContext.getResponse(), (RenderResponse)filterRequestContext.getRequest().getAttribute("javax.portlet.response"),responseState)); } } else { - request = PortletRenderContext.getPortletServletRequest(config.getServletContext(),servletRequest, filterPath); + filterRequestContext.setRequest(PortletRenderContext.getPortletServletRequest(config.getServletContext(),filterRequestContext.getRequest(), filterPath)); } }