You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by ms...@apache.org on 2015/11/27 13:38:06 UTC

[25/38] portals-pluto git commit: Integrated latest version of the portlet API 3.0. Made necessary minor adaptations the Pluto code and demo portlets to make the previously available funtionality work. For the partial action request, changed implementati

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/7fb0624d/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java
new file mode 100644
index 0000000..0ebf65e
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java
@@ -0,0 +1,223 @@
+/*  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 javax.portlet.filter;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.util.Locale;
+
+import javax.portlet.ActionURL;
+import javax.portlet.CacheControl;
+import javax.portlet.MimeResponse;
+import javax.portlet.PortletURL;
+import javax.portlet.RenderURL;
+import javax.portlet.ResourceURL;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>MimeResponseWrapper</code> provides a convenient 
+ * implementation of the <code>MimeResponse</code> interface 
+ * that can be subclassed by developers wishing to adapt the response.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped response object.
+ * </div>
+ */
+public class MimeResponseWrapper extends PortletResponseWrapper implements
+MimeResponse {
+
+   MimeResponse response;
+
+   /**
+    * @param response
+    */
+   public MimeResponseWrapper(MimeResponse response) {
+      super(response);
+      this.response = response;
+   }
+
+   /**
+    * Return the wrapped response object.
+    * 
+    * @return the wrapped response
+    */
+   public MimeResponse getResponse() {
+      return response;
+   }
+
+   /**
+    * Sets the response object being wrapped.
+    * 
+    * @param response the response to set
+    * @throws java.lang.IllegalArgumentException   if the response is null.
+    */
+   public void setResponse(MimeResponse response) {
+      if ( response == null) {
+         throw new java.lang.IllegalArgumentException("Response is null");
+      }
+      super.setResponse(response);
+      this.response = response;
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>flushBuffer()</code> on the wrapped response object.
+    */ 
+   public void flushBuffer() throws IOException {
+      response.flushBuffer();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getBufferSize()</code> on the wrapped response object.
+    */
+   public int getBufferSize() {
+      return response.getBufferSize();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getCharacterEncoding()</code> on the wrapped response object.
+    */
+   public String getCharacterEncoding() {
+      return response.getCharacterEncoding();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getContentType()</code> on the wrapped response object.
+    */
+   public String getContentType() {
+      return response.getContentType();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getLocale()</code> on the wrapped response object.
+    */
+   public Locale getLocale() {
+      return response.getLocale();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPortletOutputStream()</code> on the wrapped response object.
+    */
+   public OutputStream getPortletOutputStream() throws IOException {
+      return response.getPortletOutputStream();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getWriter()</code> on the wrapped response object.
+    */
+   public PrintWriter getWriter() throws IOException {
+      return response.getWriter();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>isCommitted()</code> on the wrapped response object.
+    */
+   public boolean isCommitted() {
+      return response.isCommitted();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>reset()</code> on the wrapped response object.
+    */
+   public void reset() {
+      response.reset();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>resetBuffer()</code> on the wrapped response object.
+    */
+   public void resetBuffer() {
+      response.resetBuffer();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>setBufferSize(size)</code> on the wrapped response object.
+    */
+   public void setBufferSize(int size) {
+      response.setBufferSize(size);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getCacheControl()</code> on the wrapped response object.
+    */
+   public CacheControl getCacheControl() {
+      return response.getCacheControl();
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>createActionURL()</code> on the wrapped response object.
+    */
+   public <T extends PortletURL & ActionURL> T createActionURL() throws IllegalStateException {
+      return response.createActionURL();
+   }
+
+   /**
+    *  <span class="changed_added_3_0">The default behavior of this method is to call 
+    * <code>createActionURL(ParameterCopyOption)</code> on the wrapped response object.</span>
+    */
+   public ActionURL createActionURL(Copy option) throws IllegalStateException {
+      return response.createActionURL(option);
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>createRenderURL()</code> on the wrapped response object.
+    */
+   public <T extends PortletURL & RenderURL> T createRenderURL() throws IllegalStateException {
+      return response.createRenderURL();
+   }
+
+   /**
+    *  <span class="changed_added_3_0">The default behavior of this method is to call 
+    * <code>createRenderURL(ParameterCopyOption)</code> on the wrapped response object.</span>
+    */
+   public RenderURL createRenderURL(Copy option) throws IllegalStateException {
+      return response.createRenderURL(option);
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>createResourceURL()</code> on the wrapped response object.
+    */
+   public ResourceURL createResourceURL() throws IllegalStateException {
+      return response.createResourceURL();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>setContentType(type)</code> on the wrapped response object.
+    */
+   public void setContentType(String type) {
+      response.setContentType(type);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/7fb0624d/portlet-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java
index e198c2f..11cf811 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java
@@ -1,422 +1,422 @@
-/*  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.
- */
-
-/*
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet.filter;
-
-import java.security.Principal;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletParameters;
-import javax.portlet.PortletPreferences;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-import javax.portlet.RenderParameters;
-import javax.portlet.WindowState;
-import javax.servlet.http.Cookie;
-
-/**
- * <span class="changed_modified_3_0">The</span> 
- * <code>PortletRequestWrapper</code> provides a convenient 
- * implementation of the <code>PortletRequest</code> interface 
- * and is extended by other request wrappers.
- * This class implements the Wrapper or Decorator pattern. 
- * Methods default to calling through to the wrapped request object.
- *
- * @since 2.0
- * @see PortletRequest
- */
-public class PortletRequestWrapper implements PortletRequest {
-
-    PortletRequest request;
-    
-    /** 
-     * Require having a request for constructing
-    * the wrapper
-     */
-   
-   @SuppressWarnings("unused")
-    private PortletRequestWrapper() {
-    }
-    
-    
-    /**
-     * Creates an <code>PortletRequest</code> adaptor 
-     * wrapping the given request object.
-     * 
-     * @param request  the portlet request to wrap
-     * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
-     */
-    public PortletRequestWrapper(PortletRequest request) {
-    	if ( request == null)
-    		throw new java.lang.IllegalArgumentException("Request is null");
-
-        this.request = request;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAttribute(String name)</code> on the wrapped request object.
-     */
-    public Object getAttribute(String name) {
-        return request.getAttribute(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAttributeNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getAttributeNames() {
-        return request.getAttributeNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAuthType()</code> on the wrapped request object.
-     */
-    public String getAuthType() {
-        return request.getAuthType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getContextPath()</code> on the wrapped request object.
-     */
-    public String getContextPath() {
-        return request.getContextPath();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocale()</code> on the wrapped request object.
-     */
-    public Locale getLocale() {
-        return request.getLocale();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocales()</code> on the wrapped request object.
-     */
-    public Enumeration<Locale> getLocales() {
-        return request.getLocales();
-    }
-
-    /**
-    * <div class="changed_modified_3_0"> 
-    * The default behavior of this method is to call 
-    * <code>getRenderParameters()</code> on the wrapped request object.
-    * </div>
-    */
-   public RenderParameters getRenderParameters() {
-      return request.getRenderParameters();
-   }
-
-   /**
-     * The default behavior of this method is to call 
-     * <code>getParameter(String name)</code> on the wrapped request object.
-     */
-   @Deprecated
-    public String getParameter(String name) {
-        return request.getParameter(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterMap()</code> on the wrapped request object.
-     */
-   @Deprecated
-    public Map<String, String[]> getParameterMap() {
-        return request.getParameterMap();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterNames()</code> on the wrapped request object.
-     */
-   @Deprecated
-    public Enumeration<String> getParameterNames() {
-        return request.getParameterNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterValues(name)</code> on the wrapped request object.
-     */
-   @Deprecated
-    public String[] getParameterValues(String name) {
-        return request.getParameterValues(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortalContext()</code> on the wrapped request object.
-     */
-    public PortalContext getPortalContext() {
-        return request.getPortalContext();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletMode()</code> on the wrapped request object.
-     */
-    public PortletMode getPortletMode() {
-        return request.getPortletMode();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletSession()</code> on the wrapped request object.
-     */
-    public PortletSession getPortletSession() {
-        return request.getPortletSession();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletSession(create)</code> on the wrapped request object.
-     */
-    public PortletSession getPortletSession(boolean create) {
-        return request.getPortletSession(create);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPreferences()</code> on the wrapped request object.
-     */
-    public PortletPreferences getPreferences() {
-        return request.getPreferences();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getProperteis(name)</code> on the wrapped request object.
-     */
-    public Enumeration<String> getProperties(String name) {
-        return request.getProperties(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getProperty(name)</code> on the wrapped request object.
-     */
-    public String getProperty(String name) {
-        return request.getProperty(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPropertyNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getPropertyNames() {
-        return request.getPropertyNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getRemoteUser()</code> on the wrapped request object.
-     */
-    public String getRemoteUser() {
-        return request.getRemoteUser();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getRequestedSessionId()</code> on the wrapped request object.
-     */
-    public String getRequestedSessionId() {
-        return request.getRequestedSessionId();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getResponseContentType()</code> on the wrapped request object.
-     */
-    public String getResponseContentType() {
-        return request.getResponseContentType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getResponseContentTypes()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getResponseContentTypes() {
-        return request.getResponseContentTypes();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getScheme()</code> on the wrapped request object.
-     */
-    public String getScheme() {
-        return request.getScheme();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getServerName()</code> on the wrapped request object.
-     */
-    public String getServerName() {
-        return request.getServerName();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getServerPort()</code> on the wrapped request object.
-     */
-    public int getServerPort() {
-        return request.getServerPort();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getUserPrincipal()</code> on the wrapped request object.
-     */
-    public Principal getUserPrincipal() {
-        return request.getUserPrincipal();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWindowId()</code> on the wrapped request object.
-     */
-    public String getWindowID() {
-        return request.getWindowID();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWindowState()</code> on the wrapped request object.
-     */
-    public WindowState getWindowState() {
-        return request.getWindowState();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isPortletModeAllowed(mode)</code> on the wrapped request object.
-     */
-    public boolean isPortletModeAllowed(PortletMode mode) {
-        return request.isPortletModeAllowed(mode);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isRequestedSessionIdValid()</code> on the wrapped request object.
-     */
-    public boolean isRequestedSessionIdValid() {
-        return request.isRequestedSessionIdValid();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isSecure()</code> on the wrapped request object.
-     */
-    public boolean isSecure() {
-        return request.isSecure();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isUserInRole(role)</code> on the wrapped request object.
-     */
-    public boolean isUserInRole(String role) {
-        return request.isUserInRole(role);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isWindowStateAllowed(state)</code> on the wrapped request object.
-     */
-    public boolean isWindowStateAllowed(WindowState state) {
-        return request.isWindowStateAllowed(state);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>removeAttribute(name)</code> on the wrapped request object.
-     */
-    public void removeAttribute(String name) {
-        request.removeAttribute(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setAttribute(name, o)</code> on the wrapped request object.
-     */
-    public void setAttribute(String name, Object o) {
-        request.setAttribute(name, o);
-    }
-
-    /**
-     * Return the wrapped request object.
-     * 
-     * @return the wrapped request
-     */
-    public PortletRequest getRequest() {
-        return request;
-    }
-
-    /**
-     * Sets the request object being wrapped.
-     * 
-     * @param request the request to set
-     * @throws java.lang.IllegalArgumentException   if the request is null.
-     */
-    public void setRequest(PortletRequest request) {
-    	if ( request == null)
-    		throw new java.lang.IllegalArgumentException("Request is null");
-
-    	this.request = request;
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>getCookies()</code> on the wrapped request object.
-     */
-    public Cookie[] getCookies() {
-    	return request.getCookies();
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>getPrivateParameterMap()</code> on the wrapped request object.
-     */
-   @Deprecated 
-	public Map<String, String[]> getPrivateParameterMap() {
-		return request.getPrivateParameterMap();
-	}
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>getPublicParameterMap()</code> on the wrapped request object.
-     */
-   @Deprecated
-	public Map<String, String[]> getPublicParameterMap() {
-		return request.getPublicParameterMap();
-	}
-}
+/*  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.
+ */
+
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet.filter;
+
+import java.security.Principal;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.portlet.PortalContext;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletSession;
+import javax.portlet.RenderParameters;
+import javax.portlet.WindowState;
+import javax.servlet.http.Cookie;
+
+/**
+ * <span class="changed_modified_3_0">The</span> 
+ * <code>PortletRequestWrapper</code> provides a convenient 
+ * implementation of the <code>PortletRequest</code> interface 
+ * and is extended by other request wrappers.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped request object.
+ *
+ * @since 2.0
+ * @see PortletRequest
+ */
+public class PortletRequestWrapper implements PortletRequest {
+
+   PortletRequest request;
+
+   /** 
+    * Require having a request for constructing
+    * the wrapper
+    */
+   
+   @SuppressWarnings("unused")
+   private PortletRequestWrapper() {
+   }
+
+
+   /**
+    * Creates an <code>PortletRequest</code> adaptor 
+    * wrapping the given request object.
+    * 
+    * @param request  the portlet request to wrap
+    * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
+    */
+   public PortletRequestWrapper(PortletRequest request) {
+      if ( request == null)
+         throw new java.lang.IllegalArgumentException("Request is null");
+
+      this.request = request;
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getAttribute(String name)</code> on the wrapped request object.
+    */
+   public Object getAttribute(String name) {
+      return request.getAttribute(name);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getAttributeNames()</code> on the wrapped request object.
+    */
+   public Enumeration<String> getAttributeNames() {
+      return request.getAttributeNames();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getAuthType()</code> on the wrapped request object.
+    */
+   public String getAuthType() {
+      return request.getAuthType();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getContextPath()</code> on the wrapped request object.
+    */
+   public String getContextPath() {
+      return request.getContextPath();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getLocale()</code> on the wrapped request object.
+    */
+   public Locale getLocale() {
+      return request.getLocale();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getLocales()</code> on the wrapped request object.
+    */
+   public Enumeration<Locale> getLocales() {
+      return request.getLocales();
+   }
+
+   /**
+    * <div class="changed_modified_3_0"> 
+    * The default behavior of this method is to call 
+    * <code>getRenderParameters()</code> on the wrapped request object.
+    * </div>
+    */
+   public RenderParameters getRenderParameters() {
+      return request.getRenderParameters();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getParameter(String name)</code> on the wrapped request object.
+    */
+   @Deprecated
+   public String getParameter(String name) {
+      return request.getParameter(name);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getParameterMap()</code> on the wrapped request object.
+    */
+   @Deprecated
+   public Map<String, String[]> getParameterMap() {
+      return request.getParameterMap();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getParameterNames()</code> on the wrapped request object.
+    */
+   @Deprecated
+   public Enumeration<String> getParameterNames() {
+      return request.getParameterNames();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getParameterValues(name)</code> on the wrapped request object.
+    */
+   @Deprecated
+   public String[] getParameterValues(String name) {
+      return request.getParameterValues(name);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPortalContext()</code> on the wrapped request object.
+    */
+   public PortalContext getPortalContext() {
+      return request.getPortalContext();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPortletMode()</code> on the wrapped request object.
+    */
+   public PortletMode getPortletMode() {
+      return request.getPortletMode();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPortletSession()</code> on the wrapped request object.
+    */
+   public PortletSession getPortletSession() {
+      return request.getPortletSession();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPortletSession(create)</code> on the wrapped request object.
+    */
+   public PortletSession getPortletSession(boolean create) {
+      return request.getPortletSession(create);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPreferences()</code> on the wrapped request object.
+    */
+   public PortletPreferences getPreferences() {
+      return request.getPreferences();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getProperteis(name)</code> on the wrapped request object.
+    */
+   public Enumeration<String> getProperties(String name) {
+      return request.getProperties(name);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getProperty(name)</code> on the wrapped request object.
+    */
+   public String getProperty(String name) {
+      return request.getProperty(name);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPropertyNames()</code> on the wrapped request object.
+    */
+   public Enumeration<String> getPropertyNames() {
+      return request.getPropertyNames();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getRemoteUser()</code> on the wrapped request object.
+    */
+   public String getRemoteUser() {
+      return request.getRemoteUser();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getRequestedSessionId()</code> on the wrapped request object.
+    */
+   public String getRequestedSessionId() {
+      return request.getRequestedSessionId();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getResponseContentType()</code> on the wrapped request object.
+    */
+   public String getResponseContentType() {
+      return request.getResponseContentType();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getResponseContentTypes()</code> on the wrapped request object.
+    */
+   public Enumeration<String> getResponseContentTypes() {
+      return request.getResponseContentTypes();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getScheme()</code> on the wrapped request object.
+    */
+   public String getScheme() {
+      return request.getScheme();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getServerName()</code> on the wrapped request object.
+    */
+   public String getServerName() {
+      return request.getServerName();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getServerPort()</code> on the wrapped request object.
+    */
+   public int getServerPort() {
+      return request.getServerPort();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getUserPrincipal()</code> on the wrapped request object.
+    */
+   public Principal getUserPrincipal() {
+      return request.getUserPrincipal();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getWindowId()</code> on the wrapped request object.
+    */
+   public String getWindowID() {
+      return request.getWindowID();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getWindowState()</code> on the wrapped request object.
+    */
+   public WindowState getWindowState() {
+      return request.getWindowState();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>isPortletModeAllowed(mode)</code> on the wrapped request object.
+    */
+   public boolean isPortletModeAllowed(PortletMode mode) {
+      return request.isPortletModeAllowed(mode);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>isRequestedSessionIdValid()</code> on the wrapped request object.
+    */
+   public boolean isRequestedSessionIdValid() {
+      return request.isRequestedSessionIdValid();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>isSecure()</code> on the wrapped request object.
+    */
+   public boolean isSecure() {
+      return request.isSecure();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>isUserInRole(role)</code> on the wrapped request object.
+    */
+   public boolean isUserInRole(String role) {
+      return request.isUserInRole(role);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>isWindowStateAllowed(state)</code> on the wrapped request object.
+    */
+   public boolean isWindowStateAllowed(WindowState state) {
+      return request.isWindowStateAllowed(state);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>removeAttribute(name)</code> on the wrapped request object.
+    */
+   public void removeAttribute(String name) {
+      request.removeAttribute(name);
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>setAttribute(name, o)</code> on the wrapped request object.
+    */
+   public void setAttribute(String name, Object o) {
+      request.setAttribute(name, o);
+   }
+
+   /**
+    * Return the wrapped request object.
+    * 
+    * @return the wrapped request
+    */
+   public PortletRequest getRequest() {
+      return request;
+   }
+
+   /**
+    * Sets the request object being wrapped.
+    * 
+    * @param request the request to set
+    * @throws java.lang.IllegalArgumentException   if the request is null.
+    */
+   public void setRequest(PortletRequest request) {
+      if ( request == null)
+         throw new java.lang.IllegalArgumentException("Request is null");
+
+      this.request = request;
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>getCookies()</code> on the wrapped request object.
+    */
+   public Cookie[] getCookies() {
+      return request.getCookies();
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>getPrivateParameterMap()</code> on the wrapped request object.
+    */
+   @Deprecated 
+   public Map<String, String[]> getPrivateParameterMap() {
+      return request.getPrivateParameterMap();
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>getPublicParameterMap()</code> on the wrapped request object.
+    */
+   @Deprecated
+   public Map<String, String[]> getPublicParameterMap() {
+      return request.getPublicParameterMap();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/7fb0624d/portlet-api/src/main/java/javax/portlet/filter/PortletResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletResponseWrapper.java
index b9df9ee..0fa5e25 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletResponseWrapper.java
@@ -1,144 +1,137 @@
-/*  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.
- */
-
-/*
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet.filter;
-
-import javax.portlet.PortletResponse;
-import javax.servlet.http.Cookie;
-
-/**
- * The <code>PortletResponseWrapper</code> provides a convenient 
- * implementation of the <code>PortletResponse</code> interface 
- * and is extended by other response wrappers.
- * This class implements the Wrapper or Decorator pattern. 
- * Methods default to calling through to the wrapped response object.
- *
- * @since 2.0
- * @see PortletResponse
- */
-public class PortletResponseWrapper implements PortletResponse {
-
-		PortletResponse response;
-	    
-	    /** 
-	     * Require having a response for constructing
-	     * the wrapper.
-	     *
-	     */
-	    private PortletResponseWrapper() {
-	    }
-	    
-	    /**
-	     * Creates an <code>ActionResponse</code> adaptor 
-	     * wrapping the given response object.
-	     * 
-	     * @param response  the action response to wrap
-	     * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
-	     */
-	    public PortletResponseWrapper(PortletResponse response) {
-	    	if ( response == null)
-	    		throw new java.lang.IllegalArgumentException("Response is null");
-
-	        this.response = response;
-	    }
-
-	    /**
-	     * The default behavior of this method is to call 
-	     * <code>addProperty(key, value)</code> on the wrapped response object.
-	     */
-	    public void addProperty(String key, String value) {
-	        response.addProperty(key, value);
-	    }
-
-	    /**
-	     * The default behavior of this method is to call 
-	     * <code>encodeURL(path)</code> on the wrapped response object.
-	     */
-	    public String encodeURL(String path) {
-	        return response.encodeURL(path);
-	    }
-
-	    /**
-	     * The default behavior of this method is to call 
-	     * <code>getNamespace()</code> on the wrapped response object.
-	     */
-	    public String getNamespace() {
-	        return response.getNamespace();
-	    }
-
-	    /**
-	     * The default behavior of this method is to call 
-	     * <code>setProperty(key, value)</code> on the wrapped response object.
-	     */
-	    public void setProperty(String key, String value) {
-	        response.setProperty(key, value);
-	    }
-
-	    /**
-	     * Return the wrapped response object.
-	     * 
-	     * @return the wrapped response
-	     */
-	    public PortletResponse getResponse() {
-	        return response;
-	    }
-
-	    /**
-	     * Sets the response object being wrapped.
-	     * 
-	     * @param response the response to set
-	     * @throws java.lang.IllegalArgumentException   if the response is null.
-	     */
-	    public void setResponse(PortletResponse response) {
-	    	if ( response == null)
-	    		throw new java.lang.IllegalArgumentException("Response is null");
-
-	        this.response = response;
-	    }
-
-	    /**
-	     *  The default behavior of this method is to call 
-	     * <code>addProperty()</code> on the wrapped response object.
-	     */
-	    public void addProperty(String key, org.w3c.dom.Element element) {
-	        response.addProperty(key, element);
-	    }
-
-	    /**
-	     *  The default behavior of this method is to call 
-	     * <code>createElement()</code> on the wrapped response object.
-	     */
-	    public org.w3c.dom.Element createElement(String tagName) {
-	        return response.createElement(tagName);
-	    }
-
-	    /**
-	     *  The default behavior of this method is to call 
-	     * <code>addProperty()</code> on the wrapped response object.
-	     */
-	    public void addProperty(Cookie cookie) {
-	        response.addProperty(cookie);
-	    }
-
-}
+/*  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.
+ */
+
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet.filter;
+
+import javax.portlet.PortletResponse;
+import javax.servlet.http.Cookie;
+
+/**
+ * <span class="changed_modified_3_0">The</span> 
+ * <code>PortletResponseWrapper</code> provides a convenient 
+ * implementation of the <code>PortletResponse</code> interface 
+ * and is extended by other response wrappers.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped response object.
+ *
+ * @since 2.0
+ * @see PortletResponse
+ */
+public class PortletResponseWrapper implements PortletResponse {
+
+		PortletResponse response;
+	    
+	    /**
+	     * Creates an <code>ActionResponse</code> adaptor 
+	     * wrapping the given response object.
+	     * 
+	     * @param response  the action response to wrap
+	     * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
+	     */
+	    public PortletResponseWrapper(PortletResponse response) {
+	    	if ( response == null)
+	    		throw new java.lang.IllegalArgumentException("Response is null");
+
+	        this.response = response;
+	    }
+
+	    /**
+	     * The default behavior of this method is to call 
+	     * <code>addProperty(key, value)</code> on the wrapped response object.
+	     */
+	    public void addProperty(String key, String value) {
+	        response.addProperty(key, value);
+	    }
+
+	    /**
+	     * The default behavior of this method is to call 
+	     * <code>encodeURL(path)</code> on the wrapped response object.
+	     */
+	    public String encodeURL(String path) {
+	        return response.encodeURL(path);
+	    }
+
+	    /**
+	     * The default behavior of this method is to call 
+	     * <code>getNamespace()</code> on the wrapped response object.
+	     */
+	    public String getNamespace() {
+	        return response.getNamespace();
+	    }
+
+	    /**
+	     * The default behavior of this method is to call 
+	     * <code>setProperty(key, value)</code> on the wrapped response object.
+	     */
+	    public void setProperty(String key, String value) {
+	        response.setProperty(key, value);
+	    }
+
+	    /**
+	     * Return the wrapped response object.
+	     * 
+	     * @return the wrapped response
+	     */
+	    public PortletResponse getResponse() {
+	        return response;
+	    }
+
+	    /**
+	     * Sets the response object being wrapped.
+	     * 
+	     * @param response the response to set
+	     * @throws java.lang.IllegalArgumentException   if the response is null.
+	     */
+	    public void setResponse(PortletResponse response) {
+	    	if ( response == null)
+	    		throw new java.lang.IllegalArgumentException("Response is null");
+
+	        this.response = response;
+	    }
+
+	    /**
+	     *  The default behavior of this method is to call 
+	     * <code>addProperty()</code> on the wrapped response object.
+	     */
+	    public void addProperty(String key, org.w3c.dom.Element element) {
+	        response.addProperty(key, element);
+	    }
+
+	    /**
+	     *  The default behavior of this method is to call 
+	     * <code>createElement()</code> on the wrapped response object.
+	     */
+	    public org.w3c.dom.Element createElement(String tagName) {
+	        return response.createElement(tagName);
+	    }
+
+	    /**
+	     *  The default behavior of this method is to call 
+	     * <code>addProperty()</code> on the wrapped response object.
+	     */
+	    public void addProperty(Cookie cookie) {
+	        response.addProperty(cookie);
+	    }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/7fb0624d/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
index 1858feb..2506285 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
@@ -1,88 +1,90 @@
-/*  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.
- */
-
-/*
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet.filter;
-
-import javax.portlet.RenderRequest;
-
-/**
- * The <code>RenderRequestWrapper</code> provides a convenient 
- * implementation of the <code>RenderRequest</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
- * This class implements the Wrapper or Decorator pattern. 
- * Methods default to calling through to the wrapped request object.
- *
- * @since 2.0
- * @see RenderRequest
- */
-public class RenderRequestWrapper extends PortletRequestWrapper implements RenderRequest {
-
-    RenderRequest request;
-    
-    /**
-     * Creates an <code>RenderRequest</code> adaptor 
-     * wrapping the given request object.
-     * 
-     * @param request  the render request to wrap
-     * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
-     */
-    public RenderRequestWrapper(RenderRequest request) {
-    	super(request);
-    	this.request = request;
-    }
-
-    
-
-    /**
-     * Return the wrapped request object.
-     * 
-     * @return the wrapped request
-     */
-    public RenderRequest getRequest() {
-        return request;
-    }
-
-    /**
-     * Sets the request object being wrapped.
-     * 
-     * @param request the request to set
-     * @throws java.lang.IllegalArgumentException   if the request is null.
-     */
-    public void setRequest(RenderRequest request) {
-    	if ( request == null)
-    		throw new java.lang.IllegalArgumentException("Request is null");
-
-    	this.request = request;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getETag()</code> on the wrapped request object.
-     */
-    public String getETag() {
-        return request.getETag();
-    }
-
-
-}
+/*  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.
+ */
+
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet.filter;
+
+import javax.portlet.RenderRequest;
+
+/**
+ * <span class="changed_modified_3_0">The</span> 
+ * <code>RenderRequestWrapper</code> provides a convenient 
+ * implementation of the <code>RenderRequest</code> interface 
+ * that can be subclassed by developers wishing to adapt the request.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped request object.
+ *
+ * @since 2.0
+ * @see RenderRequest
+ */
+public class RenderRequestWrapper extends PortletRequestWrapper implements RenderRequest {
+
+   RenderRequest request;
+
+   /**
+    * Creates an <code>RenderRequest</code> adaptor 
+    * wrapping the given request object.
+    * 
+    * @param request  the render request to wrap
+    * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
+    */
+   public RenderRequestWrapper(RenderRequest request) {
+      super(request);
+      this.request = request;
+   }
+
+
+
+   /**
+    * Return the wrapped request object.
+    * 
+    * @return the wrapped request
+    */
+   public RenderRequest getRequest() {
+      return request;
+   }
+
+   /**
+    * Sets the request object being wrapped.
+    * 
+    * @param request the request to set
+    * @throws java.lang.IllegalArgumentException   if the request is null.
+    */
+   public void setRequest(RenderRequest request) {
+      if ( request == null) {
+         throw new java.lang.IllegalArgumentException("Request is null");
+      }
+      super.setRequest(request);
+      this.request = request;
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getETag()</code> on the wrapped request object.
+    */
+   public String getETag() {
+      return request.getETag();
+   }
+
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/7fb0624d/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
index 26514ef..f5a518c 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
@@ -1,252 +1,99 @@
-/*  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.
- */
-
-/*
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet.filter;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.util.Collection;
-import java.util.Locale;
-
-import javax.portlet.ActionURL;
-import javax.portlet.CacheControl;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletURL;
-import javax.portlet.RenderResponse;
-import javax.portlet.RenderURL;
-import javax.portlet.ResourceURL;
-
-/**
- * <span class="changed_modified_3_0">The</span> <code>RenderResponseWrapper</code> provides a convenient 
- * implementation of the <code>RenderResponse</code> interface 
- * that can be subclassed by developers wishing to adapt the response.
- * This class implements the Wrapper or Decorator pattern. 
- * Methods default to calling through to the wrapped response object.
- *
- * @since 2.0
- * @see RenderResponse
- */
-
-public class RenderResponseWrapper extends PortletResponseWrapper implements RenderResponse {
-
-    RenderResponse response;
-    
-    /**
-     * Creates an <code>RenderResponse</code> adaptor 
-     * wrapping the given response object.
-     * 
-     * @param response  the event response to wrap
-     * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
-     */
-    public RenderResponseWrapper(RenderResponse response) {
-    	super(response);
-    	this.response = response;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>flushBuffer()</code> on the wrapped response object.
-     */ 
-    public void flushBuffer() throws IOException {
-        response.flushBuffer();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getBufferSize()</code> on the wrapped response object.
-     */
-    public int getBufferSize() {
-        return response.getBufferSize();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getCharacterEncoding()</code> on the wrapped response object.
-     */
-    public String getCharacterEncoding() {
-        return response.getCharacterEncoding();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getContentType()</code> on the wrapped response object.
-     */
-    public String getContentType() {
-        return response.getContentType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocale()</code> on the wrapped response object.
-     */
-    public Locale getLocale() {
-        return response.getLocale();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletOutputStream()</code> on the wrapped response object.
-     */
-    public OutputStream getPortletOutputStream() throws IOException {
-        return response.getPortletOutputStream();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWriter()</code> on the wrapped response object.
-     */
-    public PrintWriter getWriter() throws IOException {
-        return response.getWriter();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isCommitted()</code> on the wrapped response object.
-     */
-    public boolean isCommitted() {
-        return response.isCommitted();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>reset()</code> on the wrapped response object.
-     */
-    public void reset() {
-        response.reset();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>resetBuffer()</code> on the wrapped response object.
-     */
-    public void resetBuffer() {
-        response.resetBuffer();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setBufferSize(size)</code> on the wrapped response object.
-     */
-    public void setBufferSize(int size) {
-        response.setBufferSize(size);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setContentType(type)</code> on the wrapped response object.
-     */
-    public void setContentType(String type) {
-        response.setContentType(type);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setTitle(title)</code> on the wrapped response object.
-     */
-    public void setTitle(String title) {
-        response.setTitle(title);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getCacheControl()</code> on the wrapped response object.
-     */
-    public CacheControl getCacheControl() {
-        return response.getCacheControl();
-    }
-
-    /**
-     *  <span class="changed_modified_3_0">The</span> default behavior of this method is to call 
-     * <code>setNextPossiblePortletModes()</code> on the wrapped response object.
-     */
-    public void setNextPossiblePortletModes(Collection<? extends PortletMode> portletModes) {
-        response.setNextPossiblePortletModes(portletModes);
-    }
-
-    /**
-     * Return the wrapped response object.
-     * 
-     * @return the wrapped response
-     */
-    public RenderResponse getResponse() {
-        return response;
-    }
-
-    /**
-     * Sets the response object being wrapped.
-     * 
-     * @param response the response to set
-     * @throws java.lang.IllegalArgumentException   if the response is null.
-     */
-    public void setResponse(RenderResponse response) {
-	    	if ( response == null)
-	    		throw new java.lang.IllegalArgumentException("Response is null");
-
-	    	this.response = response;
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>createActionURL()</code> on the wrapped response object.
-     */
-    public ActionURL createActionURL() throws IllegalStateException {
-		return response.createActionURL();
-	}
-
-    /**
-     *  <span class="changed_added_3_0">The default behavior of this method is to call 
-     * <code>createActionURL(ParameterCopyOption)</code> on the wrapped response object.</span>
-     */
-    public ActionURL createActionURL(ParameterCopyOption option) throws IllegalStateException {
-       return response.createActionURL(option);
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>createRenderURL()</code> on the wrapped response object.
-     */
-    public RenderURL createRenderURL() throws IllegalStateException {
-		return response.createRenderURL();
-	}
-
-    /**
-     *  <span class="changed_added_3_0">The default behavior of this method is to call 
-     * <code>createRenderURL(ParameterCopyOption)</code> on the wrapped response object.</span>
-     */
-    public RenderURL createRenderURL(ParameterCopyOption option) throws IllegalStateException {
-       return response.createRenderURL(option);
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>createResourceURL()</code> on the wrapped response object.
-     */
-	public ResourceURL createResourceURL() throws IllegalStateException {
-		return response.createResourceURL();
-	}
-
-
-
-}
+/*  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.
+ */
+
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet.filter;
+
+import java.util.Collection;
+
+import javax.portlet.PortletMode;
+import javax.portlet.RenderResponse;
+
+/**
+ * <span class="changed_modified_3_0">The</span> <code>RenderResponseWrapper</code> provides a convenient 
+ * implementation of the <code>RenderResponse</code> interface 
+ * that can be subclassed by developers wishing to adapt the response.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped response object.
+ *
+ * @since 2.0
+ * @see RenderResponse
+ */
+
+public class RenderResponseWrapper extends MimeResponseWrapper implements RenderResponse {
+
+   RenderResponse response;
+
+   /**
+    * Creates an <code>RenderResponse</code> adaptor 
+    * wrapping the given response object.
+    * 
+    * @param response  the event response to wrap
+    * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
+    */
+   public RenderResponseWrapper(RenderResponse response) {
+      super(response);
+      this.response = response;
+   }
+
+   /**
+    * Return the wrapped response object.
+    * 
+    * @return the wrapped response
+    */
+   public RenderResponse getResponse() {
+      return response;
+   }
+
+   /**
+    * Sets the response object being wrapped.
+    * 
+    * @param response the response to set
+    * @throws java.lang.IllegalArgumentException   if the response is null.
+    */
+   public void setResponse(RenderResponse response) {
+      if ( response == null) {
+         throw new java.lang.IllegalArgumentException("Response is null");
+      }
+      super.setResponse(response);
+      this.response = response;
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>setTitle(title)</code> on the wrapped response object.
+    */
+   @SuppressWarnings("deprecation")
+   public void setTitle(String title) {
+      response.setTitle(title);
+   }
+
+   /**
+    *  <span class="changed_modified_3_0">The</span> default behavior of this method is to call 
+    * <code>setNextPossiblePortletModes()</code> on the wrapped response object.
+    */
+   public void setNextPossiblePortletModes(Collection<? extends PortletMode> portletModes) {
+      response.setNextPossiblePortletModes(portletModes);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/7fb0624d/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
index 5c26e7b..50a5b86 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
@@ -1,197 +1,125 @@
-/*  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.
- */
-
-/*
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet.filter;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Map;
-
-import javax.portlet.PortletParameters;
-import javax.portlet.ResourceParameters;
-import javax.portlet.ResourceRequest;
-
-/**
- * <span class="changed_modified_3_0">The</span>  
- * <code>ResourceRequestWrapper</code> provides a convenient 
- * implementation of the <code>ResourceRequest</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
- * This class implements the Wrapper or Decorator pattern. 
- * Methods default to calling through to the wrapped request object.
- *
- * @since 2.0
- * @see ResourceRequest
- */
-public class ResourceRequestWrapper extends PortletRequestWrapper implements ResourceRequest {
-
-    ResourceRequest request;
-
-    /**
-     * Creates an <code>ResourceRequest</code> adaptor 
-     * wrapping the given request object.
-     * 
-     * @param request  the resource request to wrap
-     * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
-     */
-    public ResourceRequestWrapper(ResourceRequest request) {
-    	super(request);
-    	this.request = request;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletInputStream()</code> on the wrapped request object.
-     */
-    public InputStream getPortletInputStream() throws IOException {
-        return request.getPortletInputStream();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getReader()</code> on the wrapped request object.
-     */
-    public BufferedReader getReader() throws UnsupportedEncodingException,
-            IOException {
-        return request.getReader();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setCharacterEncoding(String enc)</code> 
-     * on the wrapped request object.
-     */
-    public void setCharacterEncoding(String enc)
-            throws UnsupportedEncodingException {
-       request.setCharacterEncoding(enc);
-    }
-    
-
-    /**
-     * Return the wrapped request object.
-     * 
-     * @return the wrapped request
-     */
-    public ResourceRequest getRequest() {
-        return request;
-    }
-
-    /**
-     * Sets the request object being wrapped.
-     * 
-     * @param request the request to set
-     * @throws java.lang.IllegalArgumentException   if the request is null.
-     */
-    public void setRequest(ResourceRequest request) {
-    	if ( request == null)
-    		throw new java.lang.IllegalArgumentException("Request is null");
-
-    	this.request = request;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getCharacterEncoding()</code> on the wrapped request object.
-     */
-    public String getCharacterEncoding() {      
-        return request.getCharacterEncoding();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getContentLength()</code> on the wrapped request object.
-     */
-    public int getContentLength() {
-        return request.getContentLength();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getContentType()</code> on the wrapped request object.
-     */
-    public String getContentType() {
-        return request.getContentType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getETag()</code> on the wrapped request object.
-     */
-    public String getETag() {
-        return request.getETag();
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>getMethod()</code> on the wrapped request object.
-     */
-    public String getMethod() {
-        return request.getMethod();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getResourceID()</code> on the wrapped request object.
-     */
-    public String getResourceID() {
-        return request.getResourceID();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPrivateRenderParameterMap()</code> on the wrapped request object.
-     */
-   @Deprecated
-	public Map<String, String[]> getPrivateRenderParameterMap() {
-		return request.getPrivateRenderParameterMap();
-	}
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>getCacheability()</code> on the wrapped response object.
-     */
-    public String getCacheability() {
-        return request.getCacheability();
-    }
-
-   /**
-    * <div class="changed_modified_3_0">  
-    *  The default behavior of this method is to call 
-    * <code>getResourceParameters()</code> on the wrapped response object.
-    * </div>
-    */
-   public ResourceParameters getResourceParameters() {
-      return request.getResourceParameters();
-   }
-
-   /* (non-Javadoc)
-    * @see javax.portlet.ResourceRequest#getPageState()
-    */
-   public String getPageState() {
-      return request.getPageState();
-   }
-    
-
-}
+/*  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.
+ */
+
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet.filter;
+
+import java.util.Map;
+
+import javax.portlet.ResourceParameters;
+import javax.portlet.ResourceRequest;
+
+/**
+ * <span class="changed_modified_3_0">The</span>  
+ * <code>ResourceRequestWrapper</code> provides a convenient 
+ * implementation of the <code>ResourceRequest</code> interface 
+ * that can be subclassed by developers wishing to adapt the request.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped request object.
+ *
+ * @since 2.0
+ * @see ResourceRequest
+ */
+public class ResourceRequestWrapper extends ClientDataRequestWrapper implements ResourceRequest {
+
+   ResourceRequest request;
+
+   /**
+    * Creates an <code>ResourceRequest</code> adaptor 
+    * wrapping the given request object.
+    * 
+    * @param request  the resource request to wrap
+    * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
+    */
+   public ResourceRequestWrapper(ResourceRequest request) {
+      super(request);
+      this.request = request;
+   }
+
+   /**
+    * Return the wrapped request object.
+    * 
+    * @return the wrapped request
+    */
+   public ResourceRequest getRequest() {
+      return request;
+   }
+
+   /**
+    * Sets the request object being wrapped.
+    * 
+    * @param request the request to set
+    * @throws java.lang.IllegalArgumentException   if the request is null.
+    */
+   public void setRequest(ResourceRequest request) {
+      if ( request == null) {
+         throw new java.lang.IllegalArgumentException("Request is null");
+      }
+      super.setRequest(request);
+      this.request = request;
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getETag()</code> on the wrapped request object.
+    */
+   public String getETag() {
+      return request.getETag();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getResourceID()</code> on the wrapped request object.
+    */
+   public String getResourceID() {
+      return request.getResourceID();
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>getPrivateRenderParameterMap()</code> on the wrapped request object.
+    */
+   @Deprecated
+   public Map<String, String[]> getPrivateRenderParameterMap() {
+      return request.getPrivateRenderParameterMap();
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>getCacheability()</code> on the wrapped response object.
+    */
+   public String getCacheability() {
+      return request.getCacheability();
+   }
+
+   /**
+    * <div class="changed_modified_3_0">  
+    *  The default behavior of this method is to call 
+    * <code>getResourceParameters()</code> on the wrapped response object.
+    * </div>
+    */
+   public ResourceParameters getResourceParameters() {
+      return request.getResourceParameters();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/7fb0624d/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
index 8454fca..486ccb8 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
@@ -1,271 +1,120 @@
-/*  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.
- */
-
-/*
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet.filter;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.util.Locale;
-
-import javax.portlet.ActionURL;
-import javax.portlet.CacheControl;
-import javax.portlet.PortletURL;
-import javax.portlet.RenderURL;
-import javax.portlet.ResourceResponse;
-import javax.portlet.ResourceURL;
-
-/**
- * <span class="changed_modified_3_0">The</span>  
- * <code>ResourceResponseWrapper</code> provides a convenient 
- * implementation of the <code>ResourceResponse</code> interface 
- * that can be subclassed by developers wishing to adapt the response.
- * This class implements the Wrapper or Decorator pattern. 
- * Methods default to calling through to the wrapped response object.
- *
- * @since 2.0
- * @see ResourceResponse
- */
-
-public class ResourceResponseWrapper extends PortletResponseWrapper implements ResourceResponse {
-
-    ResourceResponse response;
-    
-    /**
-     * Creates an <code>ResourceResponse</code> adaptor 
-     * wrapping the given response object.
-     * 
-     * @param response  the event response to wrap
-     * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
-     */
-    public ResourceResponseWrapper(ResourceResponse response) {
-    	super(response);
-    	this.response = response;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>flushBuffer()</code> on the wrapped response object.
-     */ 
-    public void flushBuffer() throws IOException {
-        response.flushBuffer();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getBufferSize()</code> on the wrapped response object.
-     */
-    public int getBufferSize() {
-        return response.getBufferSize();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getCharacterEncoding()</code> on the wrapped response object.
-     */
-    public String getCharacterEncoding() {
-        return response.getCharacterEncoding();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getContentType()</code> on the wrapped response object.
-     */
-    public String getContentType() {
-        return response.getContentType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocale()</code> on the wrapped response object.
-     */
-    public Locale getLocale() {
-        return response.getLocale();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletOutputStream()</code> on the wrapped response object.
-     */
-    public OutputStream getPortletOutputStream() throws IOException {
-        return response.getPortletOutputStream();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWriter()</code> on the wrapped response object.
-     */
-    public PrintWriter getWriter() throws IOException {
-        return response.getWriter();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isCommitted()</code> on the wrapped response object.
-     */
-    public boolean isCommitted() {
-        return response.isCommitted();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>reset()</code> on the wrapped response object.
-     */
-    public void reset() {
-        response.reset();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>resetBuffer()</code> on the wrapped response object.
-     */
-    public void resetBuffer() {
-        response.resetBuffer();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setBufferSize(size)</code> on the wrapped response object.
-     */
-    public void setBufferSize(int size) {
-        response.setBufferSize(size);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setContentType(type)</code> on the wrapped response object.
-     */
-    public void setContentType(String type) {
-        response.setContentType(type);
-    }
-
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getCacheControl()</code> on the wrapped response object.
-     */
-    public CacheControl getCacheControl() {
-        return response.getCacheControl();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setCharacterEncoding(String charset)</code> on the wrapped response object.
-     */
-    public void setCharacterEncoding(String charset) {
-        response.setCharacterEncoding(charset);
-        return;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setLocale(Locale loc)</code> on the wrapped response object.
-     */
-    public void setLocale(Locale loc) {
-        response.setLocale(loc);
-        return;
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>setContentLength()</code> on the wrapped response object.
-     */
-    public void setContentLength(int len) {
-        response.setContentLength(len);
-    }
-
-    /**
-     * <div class="changed_added_3_0">
-     *  The default behavior of this method is to call 
-     * <code>setStatus()</code> on the wrapped response object.
-     * </div>
-     */
-    public void setStatus(int sc) {
-        response.setStatus(sc);
-    }
-
-    /**
-     * Return the wrapped response object.
-     * 
-     * @return the wrapped response
-     */
-    public ResourceResponse getResponse() {
-        return response;
-    }
-
-    /**
-     * Sets the response object being wrapped.
-     * 
-     * @param response the response to set
-     * @throws java.lang.IllegalArgumentException   if the response is null.
-     */
-    public void setResponse(ResourceResponse response) {
-	    	if ( response == null)
-	    		throw new java.lang.IllegalArgumentException("Response is null");
-
-	    	this.response = response;
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>createActionURL()</code> on the wrapped response object.
-     */
-    public ActionURL createActionURL() throws IllegalStateException {
-		return response.createActionURL();
-	}
-
-    /**
-     *  <span class="changed_added_3_0">The default behavior of this method is to call 
-     * <code>createActionURL(ParameterCopyOption)</code> on the wrapped response object.</span>
-     */
-    public ActionURL createActionURL(ParameterCopyOption option) throws IllegalStateException {
-       return response.createActionURL(option);
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>createRenderURL()</code> on the wrapped response object.
-     */
-    public RenderURL createRenderURL() throws IllegalStateException {
-		return response.createRenderURL();
-	}
-
-    /**
-     *  <span class="changed_added_3_0">The default behavior of this method is to call 
-     * <code>createRenderURL(ParameterCopyOption)</code> on the wrapped response object.</span>
-     */
-    public RenderURL createRenderURL(ParameterCopyOption option) throws IllegalStateException {
-       return response.createRenderURL(option);
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>createResourceURL()</code> on the wrapped response object.
-     */
-	public ResourceURL createResourceURL() throws IllegalStateException {
-		return response.createResourceURL();
-	}
-	
-
-}
+/*  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.
+ */
+
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet.filter;
+
+import java.util.Locale;
+
+import javax.portlet.ResourceResponse;
+
+/**
+ * <span class="changed_modified_3_0">The</span>  
+ * <code>ResourceResponseWrapper</code> provides a convenient 
+ * implementation of the <code>ResourceResponse</code> interface 
+ * that can be subclassed by developers wishing to adapt the response.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped response object.
+ *
+ * @since 2.0
+ * @see ResourceResponse
+ */
+
+public class ResourceResponseWrapper extends MimeResponseWrapper implements ResourceResponse {
+
+   ResourceResponse response;
+
+   /**
+    * Creates an <code>ResourceResponse</code> adaptor 
+    * wrapping the given response object.
+    * 
+    * @param response  the event response to wrap
+    * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
+    */
+   public ResourceResponseWrapper(ResourceResponse response) {
+      super(response);
+      this.response = response;
+   }
+
+   /**
+    * Return the wrapped response object.
+    * 
+    * @return the wrapped response
+    */
+   public ResourceResponse getResponse() {
+      return response;
+   }
+
+   /**
+    * Sets the response object being wrapped.
+    * 
+    * @param response the response to set
+    * @throws java.lang.IllegalArgumentException   if the response is null.
+    */
+   public void setResponse(ResourceResponse response) {
+      if ( response == null) {
+         throw new java.lang.IllegalArgumentException("Response is null");
+      }
+      super.setResponse(response);
+      this.response = response;
+   }
+
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>setCharacterEncoding(String charset)</code> on the wrapped response object.
+    */
+   public void setCharacterEncoding(String charset) {
+      response.setCharacterEncoding(charset);
+      return;
+   }
+
+   /**
+    * The default behavior of this method is to call 
+    * <code>setLocale(Locale loc)</code> on the wrapped response object.
+    */
+   public void setLocale(Locale loc) {
+      response.setLocale(loc);
+      return;
+   }
+
+   /**
+    *  The default behavior of this method is to call 
+    * <code>setContentLength()</code> on the wrapped response object.
+    */
+   public void setContentLength(int len) {
+      response.setContentLength(len);
+   }
+
+   /**
+    * <div class="changed_added_3_0">
+    *  The default behavior of this method is to call 
+    * <code>setStatus()</code> on the wrapped response object.
+    * </div>
+    */
+   public void setStatus(int sc) {
+      response.setStatus(sc);
+   }
+
+
+}