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 2016/01/25 13:30:28 UTC

[1/5] portals-pluto git commit: Worked on making portlet API consistent with jira issues

Repository: portals-pluto
Updated Branches:
  refs/heads/V3Prototype 1b0fc2e53 -> 5fb26a1dd


Worked on making portlet API consistent with jira issues


Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/20fdcf20
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/20fdcf20
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/20fdcf20

Branch: refs/heads/V3Prototype
Commit: 20fdcf2047cfb28790f781a23a89f4b9c63f224b
Parents: 1b0fc2e
Author: Scott Nicklous <ms...@apache.org>
Authored: Fri Jan 22 13:59:18 2016 +0100
Committer: Scott Nicklous <ms...@apache.org>
Committed: Fri Jan 22 13:59:18 2016 +0100

----------------------------------------------------------------------
 .../src/main/webapp/WEB-INF/jsp/view-ascp.jsp   |  26 +--
 .../pluto/container/impl/BaseURLImpl.java       |  14 --
 .../src/main/java/javax/portlet/BaseURL.java    |  37 ----
 .../main/java/javax/portlet/GenericPortlet.java |   3 +-
 .../java/javax/portlet/PortletResponse.java     |  13 +-
 .../javax/portlet/PortletSecurityException.java |   4 -
 .../java/javax/portlet/ReadOnlyException.java   |   4 -
 .../java/javax/portlet/ValidatorException.java  |   4 -
 .../portlet/filter/PortletConfigWrapper.java    | 185 +++++++++++++++++++
 .../filter/PortletRequestDispatcherWrapper.java |  58 ++++++
 10 files changed, 257 insertions(+), 91 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/PortletV3Demo/src/main/webapp/WEB-INF/jsp/view-ascp.jsp
----------------------------------------------------------------------
diff --git a/PortletV3Demo/src/main/webapp/WEB-INF/jsp/view-ascp.jsp b/PortletV3Demo/src/main/webapp/WEB-INF/jsp/view-ascp.jsp
index 8c2a458..7136009 100644
--- a/PortletV3Demo/src/main/webapp/WEB-INF/jsp/view-ascp.jsp
+++ b/PortletV3Demo/src/main/webapp/WEB-INF/jsp/view-ascp.jsp
@@ -27,9 +27,8 @@ limitations under the License.
 <portlet:defineObjects />
 
 
-<h3>Authenticated URL & Status Code Test Portlet</h3>
-<p>V3 portlet that displays a resource URL link that causes a status code to be set
-and other URLs that are marked as authenticated.</p>
+<h3>Status Code Test Portlet</h3>
+<p>V3 portlet that displays a resource URL link that causes a status code to be set.</p>
 <p>Use the form below to enter the HTTP status code.</p>
 <%
    ActionURL aurl = renderResponse.createActionURL();
@@ -55,26 +54,5 @@ and other URLs that are marked as authenticated.</p>
       out.print(resurl.toString());
       out.println("'>Resource URL, status code = " + sc + "</a></p>");
    }
-   
-   RenderURL renurl = renderResponse.createRenderURL(ALL);
-   renurl.setAuthenticated(true);
-   out.print("<p><a href='");
-   out.print(renurl.toString());
-   out.println("'>Render URL with setAuthenticated(true)</a></p>");
-   
-   ResourceURL resurl = renderResponse.createResourceURL();
-   resurl.setAuthenticated(true);
-   out.print("<p><a href='");
-   out.print(resurl.toString());
-   out.println("'>Resource URL with setAuthenticated(true)</a></p>");
-   
-   ActionURL acturl = renderResponse.createActionURL(ALL);
-   acturl.setAuthenticated(true);
-   StringBuilder txt = new StringBuilder();
-   txt.append("<form  METHOD='POST' ACTION='").append(acturl.toString()).append("'>")
-      .append("<button type='submit'>").append("Action URL with setAuthenticated(true)")
-      .append("</button>")
-      .append("</form>");
-   out.println(txt.toString());
 %>
 <p><hr/></p>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/pluto-container/src/main/java/org/apache/pluto/container/impl/BaseURLImpl.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/main/java/org/apache/pluto/container/impl/BaseURLImpl.java b/pluto-container/src/main/java/org/apache/pluto/container/impl/BaseURLImpl.java
index 65dbf00..52d46b5 100644
--- a/pluto-container/src/main/java/org/apache/pluto/container/impl/BaseURLImpl.java
+++ b/pluto-container/src/main/java/org/apache/pluto/container/impl/BaseURLImpl.java
@@ -304,18 +304,4 @@ public abstract class BaseURLImpl implements BaseURL {
       urlProvider.setSecure(secure);
    }
 
-   /* (non-Javadoc)
-    * @see javax.portlet.BaseURL#setAuthenticated(boolean)
-    */
-   public void setAuthenticated(boolean authenticated) {
-      urlProvider.setAuthenticated(authenticated);
-   }
-
-   /* (non-Javadoc)
-    * @see javax.portlet.BaseURL#getAuthenticated()
-    */
-   public boolean getAuthenticated() {
-      return urlProvider.getAuthenticated();
-   }
-
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/BaseURL.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/BaseURL.java b/portlet-api/src/main/java/javax/portlet/BaseURL.java
index 22cd9e7..1dd917c 100644
--- a/portlet-api/src/main/java/javax/portlet/BaseURL.java
+++ b/portlet-api/src/main/java/javax/portlet/BaseURL.java
@@ -251,43 +251,6 @@ public interface BaseURL extends PortletState {
    public void setSecure (boolean secure) throws PortletSecurityException;
 
 
-   /**
-    * <div class="changed_added_3_0">
-    * Indicates whether authentication is required for this URL. 
-    * <p>
-    * When the parameter is set to <code>true</code>, user authentication will be 
-    * required when accessing the URL. 
-    * <p>
-    * If authentication is not set or if it is 
-    * set to false using this method, authentication will be allowed, but not
-    * required.
-    * </div>
-    *
-    * @param  authenticated  true, if the URL requires authentication.
-    *                        false, if the URL does not require authentication.
-    *
-    * @since 3.0
-    * @see #getAuthenticated()
-    * @see PortletRequest#getAuthType()
-    */
-   public void setAuthenticated (boolean authenticated);
-
-
-   /**
-    * <div class="changed_added_3_0">
-    * Returns the authentication setting for the URL.
-    * <p>
-    * </div>
-    * 
-    * @return     <code>true</code> if the URL requires authentication;
-    *             <code>false</code> if authentication is allowed but not required.
-    *
-    * @since 3.0
-    * @see #setAuthenticated(boolean)
-    */
-   public boolean getAuthenticated ();
-
-
     /**
      * Returns the portlet URL string representation to be embedded in the
      * markup.<br>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/GenericPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/GenericPortlet.java b/portlet-api/src/main/java/javax/portlet/GenericPortlet.java
index 05c93f1..9f8fdee 100644
--- a/portlet-api/src/main/java/javax/portlet/GenericPortlet.java
+++ b/portlet-api/src/main/java/javax/portlet/GenericPortlet.java
@@ -252,7 +252,8 @@ public abstract class GenericPortlet implements Portlet, PortletConfig, EventPor
 	 *                if the streaming causes an I/O problem
 	 * 
 	 */
-	public void render(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
+	@SuppressWarnings("deprecation")
+   public void render(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
 		Object renderPartAttrValue = request.getAttribute(RenderRequest.RENDER_PART);
 		if (renderPartAttrValue != null) {
 			// streaming portal calling

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/PortletResponse.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/PortletResponse.java b/portlet-api/src/main/java/javax/portlet/PortletResponse.java
index 6dccbf0..3776370 100644
--- a/portlet-api/src/main/java/javax/portlet/PortletResponse.java
+++ b/portlet-api/src/main/java/javax/portlet/PortletResponse.java
@@ -25,7 +25,8 @@
 package javax.portlet;
 
 /**
- * The <CODE>PortletResponse</CODE> defines the base interface to assist a
+ * <div class="changed_modified_3_0">The</div>
+ * <CODE>PortletResponse</CODE> defines the base interface to assist a
  * portlet in creating and sending a response to the client. The portlet
  * container uses specialized versions of this interface when invoking a
  * portlet.
@@ -54,7 +55,10 @@ public interface PortletResponse {
      * @param key
      *            the key of the property to be returned to the portal
      * @param value
-     *            the value of the property to be returned to the portal
+     *            the value of the property to be returned to the portal. 
+     *            <span class="changed_modified_3_0">
+     *            The value should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt).
+     *            </span> 
      * 
      * @exception java.lang.IllegalArgumentException
      *                if key is <code>null</code>.
@@ -75,7 +79,10 @@ public interface PortletResponse {
      * @param key
      *            the key of the property to be returned to the portal
      * @param value
-     *            the value of the property to be returned to the portal
+     *            the value of the property to be returned to the portal.
+     *            <span class="changed_modified_3_0">
+     *            The value should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt).
+     *            </span> 
      * 
      * @exception java.lang.IllegalArgumentException
      *                if key is <code>null</code>.

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/PortletSecurityException.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/PortletSecurityException.java b/portlet-api/src/main/java/javax/portlet/PortletSecurityException.java
index 75104c9..c5a3486 100644
--- a/portlet-api/src/main/java/javax/portlet/PortletSecurityException.java
+++ b/portlet-api/src/main/java/javax/portlet/PortletSecurityException.java
@@ -35,10 +35,6 @@ public class PortletSecurityException extends PortletException
 
   private static final long serialVersionUID = 1L;
 
-  private PortletSecurityException ()
-  {
-  }
-
   /**
    * Constructs a new security exception with the given text. The
    * portlet container may use the text write it to a log.

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/ReadOnlyException.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/ReadOnlyException.java b/portlet-api/src/main/java/javax/portlet/ReadOnlyException.java
index 01c575a..1a9e629 100644
--- a/portlet-api/src/main/java/javax/portlet/ReadOnlyException.java
+++ b/portlet-api/src/main/java/javax/portlet/ReadOnlyException.java
@@ -33,10 +33,6 @@ public class ReadOnlyException extends PortletException
 {
 	  private static final long serialVersionUID = 1L;
 
-  private ReadOnlyException ()
-  {
-  }
-
   /**
    * Constructs a new read-only exception with the given text. The
    * portlet container may use the text write it to a log.

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/ValidatorException.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/ValidatorException.java b/portlet-api/src/main/java/javax/portlet/ValidatorException.java
index d7f68a0..bff490b 100644
--- a/portlet-api/src/main/java/javax/portlet/ValidatorException.java
+++ b/portlet-api/src/main/java/javax/portlet/ValidatorException.java
@@ -41,10 +41,6 @@ public class ValidatorException extends PortletException
   private transient ArrayList<String> failedKeyVector = new ArrayList<String>();
   private static final long serialVersionUID = 1L;
 
-  private ValidatorException ()
-  {
-  }
-
   /**
    * Constructs a new validator exception with the given text. The
    * portlet container may use the text write it to a log.

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
new file mode 100644
index 0000000..83ef903
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
@@ -0,0 +1,185 @@
+/*  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.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
+import javax.xml.namespace.QName;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class PortletConfigWrapper implements PortletConfig {
+   
+   protected PortletConfig wrapped;
+   
+   /**
+    * Construct with appropriate object.
+    */
+   public PortletConfigWrapper(PortletConfig config) {
+      this.wrapped = config;
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public PortletConfig getPortletConfig() {
+      return wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the request is null.
+    */
+   public void setPortletConfig(PortletConfig wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+     this.wrapped = wrapped;
+   }
+
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPortletName()
+    */
+   @Override
+   public String getPortletName() {
+      return wrapped.getPortletName();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPortletContext()
+    */
+   @Override
+   public PortletContext getPortletContext() {
+      return wrapped.getPortletContext();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getResourceBundle(java.util.Locale)
+    */
+   @Override
+   public ResourceBundle getResourceBundle(Locale locale) {
+      return wrapped.getResourceBundle(locale);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getInitParameter(java.lang.String)
+    */
+   @Override
+   public String getInitParameter(String name) {
+      return wrapped.getInitParameter(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getInitParameterNames()
+    */
+   @Override
+   public Enumeration<String> getInitParameterNames() {
+      return wrapped.getInitParameterNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPublicRenderParameterNames()
+    */
+   @Override
+   public Enumeration<String> getPublicRenderParameterNames() {
+      return wrapped.getPublicRenderParameterNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getDefaultNamespace()
+    */
+   @Override
+   public String getDefaultNamespace() {
+      return wrapped.getDefaultNamespace();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPublishingEventQNames()
+    */
+   @Override
+   public Enumeration<QName> getPublishingEventQNames() {
+      return wrapped.getPublishingEventQNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getProcessingEventQNames()
+    */
+   @Override
+   public Enumeration<QName> getProcessingEventQNames() {
+      return wrapped.getProcessingEventQNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getSupportedLocales()
+    */
+   @Override
+   public Enumeration<Locale> getSupportedLocales() {
+      return wrapped.getSupportedLocales();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getContainerRuntimeOptions()
+    */
+   @Override
+   public Map<String, String[]> getContainerRuntimeOptions() {
+      return wrapped.getContainerRuntimeOptions();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPortletModes(java.lang.String)
+    */
+   @Override
+   public Enumeration<PortletMode> getPortletModes(String mimeType) {
+      return wrapped.getPortletModes(mimeType);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getWindowStates(java.lang.String)
+    */
+   @Override
+   public Enumeration<WindowState> getWindowStates(String mimeType) {
+      return wrapped.getWindowStates(mimeType);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPublicRenderParameterDefinitions()
+    */
+   @Override
+   public Map<String, QName> getPublicRenderParameterDefinitions() {
+      return wrapped.getPublicRenderParameterDefinitions();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/20fdcf20/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
new file mode 100644
index 0000000..3963ed7
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
@@ -0,0 +1,58 @@
+/*  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 javax.portlet.PortletException;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletResponse;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class PortletRequestDispatcherWrapper implements PortletRequestDispatcher {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequestDispatcher#include(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
+    */
+   @Override
+   public void include(RenderRequest request, RenderResponse response) throws PortletException, IOException {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequestDispatcher#include(javax.portlet.PortletRequest, javax.portlet.PortletResponse)
+    */
+   @Override
+   public void include(PortletRequest request, PortletResponse response) throws PortletException, IOException {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequestDispatcher#forward(javax.portlet.PortletRequest, javax.portlet.PortletResponse)
+    */
+   @Override
+   public void forward(PortletRequest request, PortletResponse response) throws PortletException, IOException {
+   }
+
+}


[3/5] portals-pluto git commit: Added additional wrapper classes as requested by Jira issue PORTLETSPEC3-62

Posted by ms...@apache.org.
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/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 11cf811..824bde8 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java
@@ -49,18 +49,7 @@ import javax.servlet.http.Cookie;
  * @since 2.0
  * @see PortletRequest
  */
-public class PortletRequestWrapper implements PortletRequest {
-
-   PortletRequest request;
-
-   /** 
-    * Require having a request for constructing
-    * the wrapper
-    */
-   
-   @SuppressWarnings("unused")
-   private PortletRequestWrapper() {
-   }
+public class PortletRequestWrapper extends PortletStateWrapper implements PortletRequest {
 
 
    /**
@@ -71,10 +60,26 @@ public class PortletRequestWrapper implements PortletRequest {
     * @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");
+      super(request);
+   }
 
-      this.request = request;
+   /**
+    * Return the wrapped request object.
+    * 
+    * @return the wrapped request
+    */
+   public PortletRequest getRequest() {
+      return (PortletRequest) super.getWrapped();
+   }
+
+   /**
+    * 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) {
+      super.setWrapped(request);
    }
 
    /**
@@ -82,7 +87,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getAttribute(String name)</code> on the wrapped request object.
     */
    public Object getAttribute(String name) {
-      return request.getAttribute(name);
+      return ((PortletRequest)wrapped).getAttribute(name);
    }
 
    /**
@@ -90,7 +95,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getAttributeNames()</code> on the wrapped request object.
     */
    public Enumeration<String> getAttributeNames() {
-      return request.getAttributeNames();
+      return ((PortletRequest)wrapped).getAttributeNames();
    }
 
    /**
@@ -98,7 +103,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getAuthType()</code> on the wrapped request object.
     */
    public String getAuthType() {
-      return request.getAuthType();
+      return ((PortletRequest)wrapped).getAuthType();
    }
 
    /**
@@ -106,7 +111,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getContextPath()</code> on the wrapped request object.
     */
    public String getContextPath() {
-      return request.getContextPath();
+      return ((PortletRequest)wrapped).getContextPath();
    }
 
    /**
@@ -114,7 +119,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getLocale()</code> on the wrapped request object.
     */
    public Locale getLocale() {
-      return request.getLocale();
+      return ((PortletRequest)wrapped).getLocale();
    }
 
    /**
@@ -122,7 +127,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getLocales()</code> on the wrapped request object.
     */
    public Enumeration<Locale> getLocales() {
-      return request.getLocales();
+      return ((PortletRequest)wrapped).getLocales();
    }
 
    /**
@@ -132,7 +137,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * </div>
     */
    public RenderParameters getRenderParameters() {
-      return request.getRenderParameters();
+      return ((PortletRequest)wrapped).getRenderParameters();
    }
 
    /**
@@ -141,7 +146,7 @@ public class PortletRequestWrapper implements PortletRequest {
     */
    @Deprecated
    public String getParameter(String name) {
-      return request.getParameter(name);
+      return ((PortletRequest)wrapped).getParameter(name);
    }
 
    /**
@@ -150,7 +155,7 @@ public class PortletRequestWrapper implements PortletRequest {
     */
    @Deprecated
    public Map<String, String[]> getParameterMap() {
-      return request.getParameterMap();
+      return ((PortletRequest)wrapped).getParameterMap();
    }
 
    /**
@@ -159,7 +164,7 @@ public class PortletRequestWrapper implements PortletRequest {
     */
    @Deprecated
    public Enumeration<String> getParameterNames() {
-      return request.getParameterNames();
+      return ((PortletRequest)wrapped).getParameterNames();
    }
 
    /**
@@ -168,7 +173,7 @@ public class PortletRequestWrapper implements PortletRequest {
     */
    @Deprecated
    public String[] getParameterValues(String name) {
-      return request.getParameterValues(name);
+      return ((PortletRequest)wrapped).getParameterValues(name);
    }
 
    /**
@@ -176,7 +181,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getPortalContext()</code> on the wrapped request object.
     */
    public PortalContext getPortalContext() {
-      return request.getPortalContext();
+      return ((PortletRequest)wrapped).getPortalContext();
    }
 
    /**
@@ -184,7 +189,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getPortletMode()</code> on the wrapped request object.
     */
    public PortletMode getPortletMode() {
-      return request.getPortletMode();
+      return ((PortletRequest)wrapped).getPortletMode();
    }
 
    /**
@@ -192,7 +197,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getPortletSession()</code> on the wrapped request object.
     */
    public PortletSession getPortletSession() {
-      return request.getPortletSession();
+      return ((PortletRequest)wrapped).getPortletSession();
    }
 
    /**
@@ -200,7 +205,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getPortletSession(create)</code> on the wrapped request object.
     */
    public PortletSession getPortletSession(boolean create) {
-      return request.getPortletSession(create);
+      return ((PortletRequest)wrapped).getPortletSession(create);
    }
 
    /**
@@ -208,7 +213,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getPreferences()</code> on the wrapped request object.
     */
    public PortletPreferences getPreferences() {
-      return request.getPreferences();
+      return ((PortletRequest)wrapped).getPreferences();
    }
 
    /**
@@ -216,7 +221,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getProperteis(name)</code> on the wrapped request object.
     */
    public Enumeration<String> getProperties(String name) {
-      return request.getProperties(name);
+      return ((PortletRequest)wrapped).getProperties(name);
    }
 
    /**
@@ -224,7 +229,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getProperty(name)</code> on the wrapped request object.
     */
    public String getProperty(String name) {
-      return request.getProperty(name);
+      return ((PortletRequest)wrapped).getProperty(name);
    }
 
    /**
@@ -232,7 +237,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getPropertyNames()</code> on the wrapped request object.
     */
    public Enumeration<String> getPropertyNames() {
-      return request.getPropertyNames();
+      return ((PortletRequest)wrapped).getPropertyNames();
    }
 
    /**
@@ -240,7 +245,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getRemoteUser()</code> on the wrapped request object.
     */
    public String getRemoteUser() {
-      return request.getRemoteUser();
+      return ((PortletRequest)wrapped).getRemoteUser();
    }
 
    /**
@@ -248,7 +253,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getRequestedSessionId()</code> on the wrapped request object.
     */
    public String getRequestedSessionId() {
-      return request.getRequestedSessionId();
+      return ((PortletRequest)wrapped).getRequestedSessionId();
    }
 
    /**
@@ -256,7 +261,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getResponseContentType()</code> on the wrapped request object.
     */
    public String getResponseContentType() {
-      return request.getResponseContentType();
+      return ((PortletRequest)wrapped).getResponseContentType();
    }
 
    /**
@@ -264,7 +269,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getResponseContentTypes()</code> on the wrapped request object.
     */
    public Enumeration<String> getResponseContentTypes() {
-      return request.getResponseContentTypes();
+      return ((PortletRequest)wrapped).getResponseContentTypes();
    }
 
    /**
@@ -272,7 +277,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getScheme()</code> on the wrapped request object.
     */
    public String getScheme() {
-      return request.getScheme();
+      return ((PortletRequest)wrapped).getScheme();
    }
 
    /**
@@ -280,7 +285,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getServerName()</code> on the wrapped request object.
     */
    public String getServerName() {
-      return request.getServerName();
+      return ((PortletRequest)wrapped).getServerName();
    }
 
    /**
@@ -288,7 +293,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getServerPort()</code> on the wrapped request object.
     */
    public int getServerPort() {
-      return request.getServerPort();
+      return ((PortletRequest)wrapped).getServerPort();
    }
 
    /**
@@ -296,7 +301,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getUserPrincipal()</code> on the wrapped request object.
     */
    public Principal getUserPrincipal() {
-      return request.getUserPrincipal();
+      return ((PortletRequest)wrapped).getUserPrincipal();
    }
 
    /**
@@ -304,7 +309,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getWindowId()</code> on the wrapped request object.
     */
    public String getWindowID() {
-      return request.getWindowID();
+      return ((PortletRequest)wrapped).getWindowID();
    }
 
    /**
@@ -312,7 +317,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getWindowState()</code> on the wrapped request object.
     */
    public WindowState getWindowState() {
-      return request.getWindowState();
+      return ((PortletRequest)wrapped).getWindowState();
    }
 
    /**
@@ -320,7 +325,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>isPortletModeAllowed(mode)</code> on the wrapped request object.
     */
    public boolean isPortletModeAllowed(PortletMode mode) {
-      return request.isPortletModeAllowed(mode);
+      return ((PortletRequest)wrapped).isPortletModeAllowed(mode);
    }
 
    /**
@@ -328,7 +333,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>isRequestedSessionIdValid()</code> on the wrapped request object.
     */
    public boolean isRequestedSessionIdValid() {
-      return request.isRequestedSessionIdValid();
+      return ((PortletRequest)wrapped).isRequestedSessionIdValid();
    }
 
    /**
@@ -336,7 +341,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>isSecure()</code> on the wrapped request object.
     */
    public boolean isSecure() {
-      return request.isSecure();
+      return ((PortletRequest)wrapped).isSecure();
    }
 
    /**
@@ -344,7 +349,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>isUserInRole(role)</code> on the wrapped request object.
     */
    public boolean isUserInRole(String role) {
-      return request.isUserInRole(role);
+      return ((PortletRequest)wrapped).isUserInRole(role);
    }
 
    /**
@@ -352,7 +357,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>isWindowStateAllowed(state)</code> on the wrapped request object.
     */
    public boolean isWindowStateAllowed(WindowState state) {
-      return request.isWindowStateAllowed(state);
+      return ((PortletRequest)wrapped).isWindowStateAllowed(state);
    }
 
    /**
@@ -360,7 +365,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>removeAttribute(name)</code> on the wrapped request object.
     */
    public void removeAttribute(String name) {
-      request.removeAttribute(name);
+      ((PortletRequest)wrapped).removeAttribute(name);
    }
 
    /**
@@ -368,29 +373,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <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;
+      ((PortletRequest)wrapped).setAttribute(name, o);
    }
 
    /**
@@ -398,7 +381,7 @@ public class PortletRequestWrapper implements PortletRequest {
     * <code>getCookies()</code> on the wrapped request object.
     */
    public Cookie[] getCookies() {
-      return request.getCookies();
+      return ((PortletRequest)wrapped).getCookies();
    }
 
    /**
@@ -407,7 +390,7 @@ public class PortletRequestWrapper implements PortletRequest {
     */
    @Deprecated 
    public Map<String, String[]> getPrivateParameterMap() {
-      return request.getPrivateParameterMap();
+      return ((PortletRequest)wrapped).getPrivateParameterMap();
    }
 
    /**
@@ -416,7 +399,7 @@ public class PortletRequestWrapper implements PortletRequest {
     */
    @Deprecated
    public Map<String, String[]> getPublicParameterMap() {
-      return request.getPublicParameterMap();
+      return ((PortletRequest)wrapped).getPublicParameterMap();
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java
new file mode 100644
index 0000000..d76e851
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.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.util.Enumeration;
+import java.util.Map;
+
+import javax.portlet.PortletContext;
+import javax.portlet.PortletSession;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>PortletSessionWrapper</code> provides a convenient 
+ * implementation of the <code>PortletSession</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class PortletSessionWrapper implements PortletSession {
+   
+   protected PortletSession wrapped;
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletSession is null.
+    */
+   public PortletSessionWrapper(PortletSession wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+      this.wrapped = wrapped;
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public PortletSession getWrapped() {
+      return wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletSession is null.
+    */
+   public void setWrapped(PortletSession wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+     this.wrapped = wrapped;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttribute(java.lang.String)
+    */
+   @Override
+   public Object getAttribute(String name) {
+      return wrapped.getAttribute(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttribute(java.lang.String, int)
+    */
+   @Override
+   public Object getAttribute(String name, int scope) {
+      return wrapped.getAttribute(name, scope);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeNames()
+    */
+   @Override
+   public Enumeration<String> getAttributeNames() {
+      return wrapped.getAttributeNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeNames(int)
+    */
+   @Override
+   public Enumeration<String> getAttributeNames(int scope) {
+      return wrapped.getAttributeNames(scope);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getCreationTime()
+    */
+   @Override
+   public long getCreationTime() {
+      return wrapped.getCreationTime();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getId()
+    */
+   @Override
+   public String getId() {
+      return wrapped.getId();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getLastAccessedTime()
+    */
+   @Override
+   public long getLastAccessedTime() {
+      return wrapped.getLastAccessedTime();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getMaxInactiveInterval()
+    */
+   @Override
+   public int getMaxInactiveInterval() {
+      return wrapped.getMaxInactiveInterval();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#invalidate()
+    */
+   @Override
+   public void invalidate() {
+      wrapped.invalidate();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#isNew()
+    */
+   @Override
+   public boolean isNew() {
+      return wrapped.isNew();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#removeAttribute(java.lang.String)
+    */
+   @Override
+   public void removeAttribute(String name) {
+      wrapped.removeAttribute(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#removeAttribute(java.lang.String, int)
+    */
+   @Override
+   public void removeAttribute(String name, int scope) {
+      wrapped.removeAttribute(name, scope);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#setAttribute(java.lang.String, java.lang.Object)
+    */
+   @Override
+   public void setAttribute(String name, Object value) {
+      wrapped.setAttribute(name, value);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#setAttribute(java.lang.String, java.lang.Object, int)
+    */
+   @Override
+   public void setAttribute(String name, Object value, int scope) {
+      wrapped.setAttribute(name, value, scope);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#setMaxInactiveInterval(int)
+    */
+   @Override
+   public void setMaxInactiveInterval(int interval) {
+      wrapped.setMaxInactiveInterval(interval);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getPortletContext()
+    */
+   @Override
+   public PortletContext getPortletContext() {
+      return wrapped.getPortletContext();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeMap()
+    */
+   @Override
+   public Map<String, Object> getAttributeMap() {
+      return wrapped.getAttributeMap();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeMap(int)
+    */
+   @Override
+   public Map<String, Object> getAttributeMap(int scope) {
+      return wrapped.getAttributeMap(scope);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java
new file mode 100644
index 0000000..aa69794
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java
@@ -0,0 +1,102 @@
+/*  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 javax.portlet.PortletMode;
+import javax.portlet.PortletState;
+import javax.portlet.RenderParameters;
+import javax.portlet.WindowState;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>PortletStateWrapper</code> provides a convenient 
+ * implementation of the <code>PortletState</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class PortletStateWrapper implements PortletState {
+   
+   protected PortletState wrapped;
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletState is null.
+    */
+   public PortletStateWrapper(PortletState wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+      this.wrapped = wrapped;
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public PortletState getWrapped() {
+      return wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletState is null.
+    */
+   public void setWrapped(PortletState wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+     this.wrapped = wrapped;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getRenderParameters()
+    */
+   @Override
+   public RenderParameters getRenderParameters() {
+      return wrapped.getRenderParameters();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getPortletMode()
+    */
+   @Override
+   public PortletMode getPortletMode() {
+      return wrapped.getPortletMode();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getWindowState()
+    */
+   @Override
+   public WindowState getWindowState() {
+      return wrapped.getWindowState();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java
new file mode 100644
index 0000000..56ae896
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java
@@ -0,0 +1,114 @@
+/*  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 javax.portlet.MutableRenderParameters;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletModeException;
+import javax.portlet.PortletURL;
+import javax.portlet.WindowState;
+import javax.portlet.WindowStateException;
+import javax.portlet.annotations.PortletSerializable;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>PortletURLWrapper</code> provides a convenient 
+ * implementation of the <code>PortletURL</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class PortletURLWrapper extends BaseURLWrapper implements PortletURL {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletURL is null.
+    */
+   public PortletURLWrapper(PortletURL wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public PortletURL getWrapped() {
+      return (PortletURL) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletURL is null.
+    */
+   public void setWrapped(PortletURL wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#getRenderParameters()
+    */
+   @Override
+   public MutableRenderParameters getRenderParameters() {
+      return ((PortletURL)wrapped).getRenderParameters();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#setWindowState(javax.portlet.WindowState)
+    */
+   @Override
+   public void setWindowState(WindowState windowState) throws WindowStateException {
+      ((PortletURL)wrapped).setWindowState(windowState);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#setPortletMode(javax.portlet.PortletMode)
+    */
+   @Override
+   public void setPortletMode(PortletMode portletMode) throws PortletModeException {
+      ((PortletURL)wrapped).setPortletMode(portletMode);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletURL#removePublicRenderParameter(java.lang.String)
+    */
+   @Deprecated
+   @Override
+   public void removePublicRenderParameter(String name) {
+      ((PortletURL)wrapped).removePublicRenderParameter(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletURL#setBeanParameter(javax.portlet.annotations.PortletSerializable)
+    */
+   @Override
+   public void setBeanParameter(PortletSerializable bean) {
+      ((PortletURL)wrapped).setBeanParameter(bean);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java
new file mode 100644
index 0000000..bbc566c
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java
@@ -0,0 +1,84 @@
+/*  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 javax.portlet.MutableRenderParameters;
+import javax.portlet.RenderParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>RenderParametersWrapper</code> provides a convenient 
+ * implementation of the <code>RenderParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class RenderParametersWrapper extends PortletParametersWrapper implements RenderParameters {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the RenderParameters is null.
+    */
+   public RenderParametersWrapper(RenderParameters wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public RenderParameters getWrapped() {
+      return (RenderParameters) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the RenderParameters is null.
+    */
+   public void setWrapped(RenderParameters wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderParameters#clone()
+    */
+   @Override
+   public MutableRenderParameters clone() {
+      return ((RenderParameters)wrapped).clone();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderParameters#isPublic(java.lang.String)
+    */
+   @Override
+   public boolean isPublic(String name) {
+      return ((RenderParameters)wrapped).isPublic(name);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/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 2506285..19c5051 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
@@ -39,8 +39,6 @@ import javax.portlet.RenderRequest;
  */
 public class RenderRequestWrapper extends PortletRequestWrapper implements RenderRequest {
 
-   RenderRequest request;
-
    /**
     * Creates an <code>RenderRequest</code> adaptor 
     * wrapping the given request object.
@@ -50,7 +48,6 @@ public class RenderRequestWrapper extends PortletRequestWrapper implements Rende
     */
    public RenderRequestWrapper(RenderRequest request) {
       super(request);
-      this.request = request;
    }
 
 
@@ -61,7 +58,7 @@ public class RenderRequestWrapper extends PortletRequestWrapper implements Rende
     * @return the wrapped request
     */
    public RenderRequest getRequest() {
-      return request;
+      return (RenderRequest) super.getRequest();
    }
 
    /**
@@ -71,11 +68,7 @@ public class RenderRequestWrapper extends PortletRequestWrapper implements Rende
     * @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;
    }
 
    /**
@@ -83,7 +76,7 @@ public class RenderRequestWrapper extends PortletRequestWrapper implements Rende
     * <code>getETag()</code> on the wrapped request object.
     */
    public String getETag() {
-      return request.getETag();
+      return ((RenderRequest)wrapped).getETag();
    }
 
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/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 f5a518c..b4fbe71 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
@@ -32,7 +32,7 @@ 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.
+ * that can be subclassed by developers wishing to adapt the ((RenderResponse)response).
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *
@@ -42,8 +42,6 @@ import javax.portlet.RenderResponse;
 
 public class RenderResponseWrapper extends MimeResponseWrapper implements RenderResponse {
 
-   RenderResponse response;
-
    /**
     * Creates an <code>RenderResponse</code> adaptor 
     * wrapping the given response object.
@@ -53,7 +51,6 @@ public class RenderResponseWrapper extends MimeResponseWrapper implements Render
     */
    public RenderResponseWrapper(RenderResponse response) {
       super(response);
-      this.response = response;
    }
 
    /**
@@ -62,7 +59,7 @@ public class RenderResponseWrapper extends MimeResponseWrapper implements Render
     * @return the wrapped response
     */
    public RenderResponse getResponse() {
-      return response;
+      return (RenderResponse) response;
    }
 
    /**
@@ -72,20 +69,16 @@ public class RenderResponseWrapper extends MimeResponseWrapper implements Render
     * @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")
+   @Deprecated
    public void setTitle(String title) {
-      response.setTitle(title);
+      ((RenderResponse)response).setTitle(title);
    }
 
    /**
@@ -93,7 +86,7 @@ public class RenderResponseWrapper extends MimeResponseWrapper implements Render
     * <code>setNextPossiblePortletModes()</code> on the wrapped response object.
     */
    public void setNextPossiblePortletModes(Collection<? extends PortletMode> portletModes) {
-      response.setNextPossiblePortletModes(portletModes);
+      ((RenderResponse)response).setNextPossiblePortletModes(portletModes);
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java
new file mode 100644
index 0000000..5c54a09
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java
@@ -0,0 +1,83 @@
+/*  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 javax.portlet.RenderURL;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>RenderURLWrapper</code> provides a convenient 
+ * implementation of the <code>RenderURL</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class RenderURLWrapper extends PortletURLWrapper implements RenderURL {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the RenderURL is null.
+    */
+   public RenderURLWrapper(RenderURL wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public RenderURL getWrapped() {
+      return (RenderURL) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the RenderURL is null.
+    */
+   public void setWrapped(RenderURL wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderURL#setFragmentIdentifier(java.lang.String)
+    */
+   @Override
+   public void setFragmentIdentifier(String fragment) {
+      ((RenderURL)wrapped).setFragmentIdentifier(fragment);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderURL#getFragmentIdentifier()
+    */
+   @Override
+   public String getFragmentIdentifier() {
+      return ((RenderURL)wrapped).getFragmentIdentifier();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java
new file mode 100644
index 0000000..57a8752
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java
@@ -0,0 +1,76 @@
+/*  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 javax.portlet.MutableResourceParameters;
+import javax.portlet.ResourceParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>ResourceParametersWrapper</code> provides a convenient 
+ * implementation of the <code>ResourceParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class ResourceParametersWrapper extends PortletParametersWrapper implements ResourceParameters {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ResourceParameters is null.
+    */
+   public ResourceParametersWrapper(ResourceParameters wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public ResourceParameters getWrapped() {
+      return (ResourceParameters) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ResourceParameters is null.
+    */
+   public void setWrapped(ResourceParameters wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceParameters#clone()
+    */
+   @Override
+   public MutableResourceParameters clone() {
+      return ((ResourceParameters)wrapped).clone();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/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 50a5b86..f10284c 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
@@ -42,8 +42,6 @@ import javax.portlet.ResourceRequest;
  */
 public class ResourceRequestWrapper extends ClientDataRequestWrapper implements ResourceRequest {
 
-   ResourceRequest request;
-
    /**
     * Creates an <code>ResourceRequest</code> adaptor 
     * wrapping the given request object.
@@ -53,7 +51,6 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     */
    public ResourceRequestWrapper(ResourceRequest request) {
       super(request);
-      this.request = request;
    }
 
    /**
@@ -62,7 +59,7 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     * @return the wrapped request
     */
    public ResourceRequest getRequest() {
-      return request;
+      return (ResourceRequest) super.getRequest();
    }
 
    /**
@@ -72,11 +69,7 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     * @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;
    }
 
    /**
@@ -84,7 +77,7 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     * <code>getETag()</code> on the wrapped request object.
     */
    public String getETag() {
-      return request.getETag();
+      return ((ResourceRequest)wrapped).getETag();
    }
 
    /**
@@ -92,7 +85,7 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     * <code>getResourceID()</code> on the wrapped request object.
     */
    public String getResourceID() {
-      return request.getResourceID();
+      return ((ResourceRequest)wrapped).getResourceID();
    }
 
    /**
@@ -101,7 +94,7 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     */
    @Deprecated
    public Map<String, String[]> getPrivateRenderParameterMap() {
-      return request.getPrivateRenderParameterMap();
+      return ((ResourceRequest)wrapped).getPrivateRenderParameterMap();
    }
 
    /**
@@ -109,7 +102,7 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     * <code>getCacheability()</code> on the wrapped response object.
     */
    public String getCacheability() {
-      return request.getCacheability();
+      return ((ResourceRequest)wrapped).getCacheability();
    }
 
    /**
@@ -119,7 +112,7 @@ public class ResourceRequestWrapper extends ClientDataRequestWrapper implements
     * </div>
     */
    public ResourceParameters getResourceParameters() {
-      return request.getResourceParameters();
+      return ((ResourceRequest)wrapped).getResourceParameters();
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/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 486ccb8..ca2d129 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
@@ -32,7 +32,7 @@ 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.
+ * that can be subclassed by developers wishing to adapt the ((ResourceResponse)response).
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *
@@ -42,8 +42,6 @@ import javax.portlet.ResourceResponse;
 
 public class ResourceResponseWrapper extends MimeResponseWrapper implements ResourceResponse {
 
-   ResourceResponse response;
-
    /**
     * Creates an <code>ResourceResponse</code> adaptor 
     * wrapping the given response object.
@@ -53,7 +51,6 @@ public class ResourceResponseWrapper extends MimeResponseWrapper implements Reso
     */
    public ResourceResponseWrapper(ResourceResponse response) {
       super(response);
-      this.response = response;
    }
 
    /**
@@ -62,7 +59,7 @@ public class ResourceResponseWrapper extends MimeResponseWrapper implements Reso
     * @return the wrapped response
     */
    public ResourceResponse getResponse() {
-      return response;
+      return (ResourceResponse) response;
    }
 
    /**
@@ -72,11 +69,7 @@ public class ResourceResponseWrapper extends MimeResponseWrapper implements Reso
     * @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;
    }
 
 
@@ -85,8 +78,7 @@ public class ResourceResponseWrapper extends MimeResponseWrapper implements Reso
     * <code>setCharacterEncoding(String charset)</code> on the wrapped response object.
     */
    public void setCharacterEncoding(String charset) {
-      response.setCharacterEncoding(charset);
-      return;
+      ((ResourceResponse)response).setCharacterEncoding(charset);
    }
 
    /**
@@ -94,8 +86,7 @@ public class ResourceResponseWrapper extends MimeResponseWrapper implements Reso
     * <code>setLocale(Locale loc)</code> on the wrapped response object.
     */
    public void setLocale(Locale loc) {
-      response.setLocale(loc);
-      return;
+      ((ResourceResponse)response).setLocale(loc);
    }
 
    /**
@@ -103,7 +94,7 @@ public class ResourceResponseWrapper extends MimeResponseWrapper implements Reso
     * <code>setContentLength()</code> on the wrapped response object.
     */
    public void setContentLength(int len) {
-      response.setContentLength(len);
+      ((ResourceResponse)response).setContentLength(len);
    }
 
    /**
@@ -113,7 +104,7 @@ public class ResourceResponseWrapper extends MimeResponseWrapper implements Reso
     * </div>
     */
    public void setStatus(int sc) {
-      response.setStatus(sc);
+      ((ResourceResponse)response).setStatus(sc);
    }
 
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java
new file mode 100644
index 0000000..237a5bf
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java
@@ -0,0 +1,108 @@
+/*  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 javax.portlet.MutableResourceParameters;
+import javax.portlet.ResourceURL;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>ResourceURLWrapper</code> provides a convenient 
+ * implementation of the <code>ResourceURL</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class ResourceURLWrapper extends BaseURLWrapper implements ResourceURL {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ResourceURL is null.
+    */
+   public ResourceURLWrapper(ResourceURL wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public ResourceURL getWrapped() {
+      return (ResourceURL) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ResourceURL is null.
+    */
+   public void setWrapped(ResourceURL wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceURL#getResourceParameters()
+    */
+   @Override
+   public MutableResourceParameters getResourceParameters() {
+      return ((ResourceURL)wrapped).getResourceParameters();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceURL#setResourceID(java.lang.String)
+    */
+   @Override
+   public void setResourceID(String resourceID) {
+      ((ResourceURL)wrapped).setResourceID(resourceID);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceURL#getResourceID()
+    */
+   @Override
+   public String getResourceID() {
+      return ((ResourceURL)wrapped).getResourceID();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceURL#getCacheability()
+    */
+   @Override
+   public String getCacheability() {
+      return ((ResourceURL)wrapped).getCacheability();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceURL#setCacheability(java.lang.String)
+    */
+   @Override
+   public void setCacheability(String cacheLevel) {
+      ((ResourceURL)wrapped).setCacheability(cacheLevel);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
index 9284c37..94568d5 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
@@ -41,14 +41,11 @@ import javax.xml.namespace.QName;
  */
 public class StateAwareResponseWrapper extends PortletResponseWrapper implements StateAwareResponse {
 
-   StateAwareResponse response;
-
    /**
     * @param response
     */
    public StateAwareResponseWrapper(StateAwareResponse response) {
       super(response);
-      this.response = response;
    }
 
    /**
@@ -57,7 +54,7 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     * @return the wrapped response
     */
    public StateAwareResponse getResponse() {
-      return response;
+      return (StateAwareResponse) response;
    }
 
    /**
@@ -67,18 +64,14 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     * @throws java.lang.IllegalArgumentException   if the response is null.
     */
    public void setResponse(StateAwareResponse response) {
-      if ( response == null) {
-         throw new java.lang.IllegalArgumentException("Response is null");
-      }
       super.setResponse(response);
-      this.response = response;
    }
 
    /* (non-Javadoc)
     * @see javax.portlet.MutablePortletState#getRenderParameters()
     */
    public MutableRenderParameters getRenderParameters() {
-      return response.getRenderParameters();
+      return ((StateAwareResponse)response).getRenderParameters();
    }
 
    /* (non-Javadoc)
@@ -86,7 +79,7 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     */
    public void setWindowState(WindowState windowState)
          throws WindowStateException {
-      response.setWindowState(windowState);
+      ((StateAwareResponse)response).setWindowState(windowState);
    }
 
    /* (non-Javadoc)
@@ -94,21 +87,21 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     */
    public void setPortletMode(PortletMode portletMode)
          throws PortletModeException {
-      response.setPortletMode(portletMode);
+      ((StateAwareResponse)response).setPortletMode(portletMode);
    }
 
    /* (non-Javadoc)
     * @see javax.portlet.PortletState#getPortletMode()
     */
    public PortletMode getPortletMode() {
-      return response.getPortletMode();
+      return ((StateAwareResponse)response).getPortletMode();
    }
 
    /* (non-Javadoc)
     * @see javax.portlet.PortletState#getWindowState()
     */
    public WindowState getWindowState() {
-      return response.getWindowState();
+      return ((StateAwareResponse)response).getWindowState();
    }
 
    /* (non-Javadoc)
@@ -116,7 +109,7 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     */
    @Deprecated
    public void setRenderParameters(Map<String, String[]> parameters) {
-      response.setRenderParameters(parameters);
+      ((StateAwareResponse)response).setRenderParameters(parameters);
    }
 
    /* (non-Javadoc)
@@ -124,7 +117,7 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     */
    @Deprecated
    public void setRenderParameter(String key, String value) {
-      response.setRenderParameter(key, value);
+      ((StateAwareResponse)response).setRenderParameter(key, value);
    }
 
    /* (non-Javadoc)
@@ -132,21 +125,21 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     */
    @Deprecated
    public void setRenderParameter(String key, String... values) {
-      response.setRenderParameter(key, values);
+      ((StateAwareResponse)response).setRenderParameter(key, values);
    }
 
    /* (non-Javadoc)
     * @see javax.portlet.StateAwareResponse#setEvent(javax.xml.namespace.QName, java.io.Serializable)
     */
    public void setEvent(QName name, Serializable value) {
-      response.setEvent(name, value);
+      ((StateAwareResponse)response).setEvent(name, value);
    }
 
    /* (non-Javadoc)
     * @see javax.portlet.StateAwareResponse#setEvent(java.lang.String, java.io.Serializable)
     */
    public void setEvent(String name, Serializable value) {
-      response.setEvent(name, value);
+      ((StateAwareResponse)response).setEvent(name, value);
    }
 
    /* (non-Javadoc)
@@ -154,7 +147,7 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     */
    @Deprecated
    public Map<String, String[]> getRenderParameterMap() {
-      return response.getRenderParameterMap();
+      return ((StateAwareResponse)response).getRenderParameterMap();
    }
 
    /* (non-Javadoc)
@@ -162,7 +155,7 @@ public class StateAwareResponseWrapper extends PortletResponseWrapper implements
     */
    @Deprecated
    public void removePublicRenderParameter(String name) {
-      response.removePublicRenderParameter(name);
+      ((StateAwareResponse)response).removePublicRenderParameter(name);
    }
 
 }


[2/5] portals-pluto git commit: Worked on making portlet API consistent with jira issues #2

Posted by ms...@apache.org.
Worked on making portlet API consistent with jira issues #2


Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/2c2a3692
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/2c2a3692
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/2c2a3692

Branch: refs/heads/V3Prototype
Commit: 2c2a3692afd0f58925e877174112ad2fb27322d3
Parents: 20fdcf2
Author: Scott Nicklous <ms...@apache.org>
Authored: Fri Jan 22 14:00:44 2016 +0100
Committer: Scott Nicklous <ms...@apache.org>
Committed: Fri Jan 22 14:00:44 2016 +0100

----------------------------------------------------------------------
 .../javax/portlet/filter/PortletConfigWrapper.java   | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2c2a3692/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
index 83ef903..3831c33 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
@@ -31,6 +31,7 @@ import javax.portlet.WindowState;
 import javax.xml.namespace.QName;
 
 /**
+ * 
  * @author Scott Nicklous
  *
  */
@@ -39,10 +40,20 @@ public class PortletConfigWrapper implements PortletConfig {
    protected PortletConfig wrapped;
    
    /**
+    * <div class="changed_added_3_0">
+    * The <code>PortletConfigWrapper</code> provides a convenient 
+    * implementation of the <code>PortletConfig</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.
+    * </div>
     * Construct with appropriate object.
     */
-   public PortletConfigWrapper(PortletConfig config) {
-      this.wrapped = config;
+   public PortletConfigWrapper(PortletConfig wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Wrapped object is null");
+      }
+      this.wrapped = wrapped;
    }
    
 


[4/5] portals-pluto git commit: Added additional wrapper classes as requested by Jira issue PORTLETSPEC3-62

Posted by ms...@apache.org.
Added additional wrapper classes as requested by Jira issue PORTLETSPEC3-62


Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/aa5e8a3b
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/aa5e8a3b
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/aa5e8a3b

Branch: refs/heads/V3Prototype
Commit: aa5e8a3b83f1c6396a4d218347ed2515f5ef9ac9
Parents: 2c2a369
Author: Scott Nicklous <ms...@apache.org>
Authored: Sat Jan 23 12:39:01 2016 +0100
Committer: Scott Nicklous <ms...@apache.org>
Committed: Sat Jan 23 12:39:01 2016 +0100

----------------------------------------------------------------------
 .../portlet/filter/ActionParametersWrapper.java |  76 ++++++
 .../portlet/filter/ActionRequestWrapper.java    |  11 +-
 .../portlet/filter/ActionResponseWrapper.java   |  17 +-
 .../javax/portlet/filter/ActionURLWrapper.java  |  76 ++++++
 .../javax/portlet/filter/BaseURLWrapper.java    | 168 +++++++++++++
 .../filter/ClientDataRequestWrapper.java        |  82 ++++---
 .../portlet/filter/EventRequestWrapper.java     |  13 +-
 .../portlet/filter/EventResponseWrapper.java    |  13 +-
 .../portlet/filter/HeaderRequestWrapper.java    |  10 +-
 .../portlet/filter/HeaderResponseWrapper.java   |  37 ++-
 .../portlet/filter/MimeResponseWrapper.java     | 123 +++++-----
 .../filter/MutableActionParametersWrapper.java  |  75 ++++++
 .../filter/MutablePortletParametersWrapper.java | 118 +++++++++
 .../filter/MutablePortletStateWrapper.java      |  97 ++++++++
 .../filter/MutableRenderParametersWrapper.java  |  99 ++++++++
 .../MutableResourceParametersWrapper.java       |  76 ++++++
 .../portlet/filter/PortletConfigWrapper.java    |  21 +-
 .../portlet/filter/PortletContextWrapper.java   | 240 +++++++++++++++++++
 .../filter/PortletParametersWrapper.java        | 126 ++++++++++
 .../filter/PortletRequestDispatcherWrapper.java |  47 +++-
 .../portlet/filter/PortletRequestWrapper.java   | 135 +++++------
 .../portlet/filter/PortletSessionWrapper.java   | 223 +++++++++++++++++
 .../portlet/filter/PortletStateWrapper.java     | 102 ++++++++
 .../javax/portlet/filter/PortletURLWrapper.java | 114 +++++++++
 .../portlet/filter/RenderParametersWrapper.java |  84 +++++++
 .../portlet/filter/RenderRequestWrapper.java    |  11 +-
 .../portlet/filter/RenderResponseWrapper.java   |  17 +-
 .../javax/portlet/filter/RenderURLWrapper.java  |  83 +++++++
 .../filter/ResourceParametersWrapper.java       |  76 ++++++
 .../portlet/filter/ResourceRequestWrapper.java  |  19 +-
 .../portlet/filter/ResourceResponseWrapper.java |  21 +-
 .../portlet/filter/ResourceURLWrapper.java      | 108 +++++++++
 .../filter/StateAwareResponseWrapper.java       |  33 +--
 33 files changed, 2219 insertions(+), 332 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java
new file mode 100644
index 0000000..7f39fb4
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java
@@ -0,0 +1,76 @@
+/*  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 javax.portlet.ActionParameters;
+import javax.portlet.MutableActionParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>ActionParametersWrapper</code> provides a convenient 
+ * implementation of the <code>ActionParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class ActionParametersWrapper extends PortletParametersWrapper implements ActionParameters {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ActionParameters is null.
+    */
+   public ActionParametersWrapper(ActionParameters wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public ActionParameters getWrapped() {
+      return (ActionParameters) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ActionParameters is null.
+    */
+   public void setWrapped(ActionParameters wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ActionParameters#clone()
+    */
+   @Override
+   public MutableActionParameters clone() {
+      return ((ActionParameters)wrapped).clone();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
index 237cd76..2ebe37b 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
@@ -40,8 +40,6 @@ import javax.portlet.ActionRequest;
  */
 public class ActionRequestWrapper extends ClientDataRequestWrapper implements ActionRequest {
 
-   ActionRequest request;
-
    /**
     * Creates an <code>ActionRequest</code> adaptor 
     * wrapping the given request object.
@@ -51,7 +49,6 @@ public class ActionRequestWrapper extends ClientDataRequestWrapper implements Ac
     */
    public ActionRequestWrapper(ActionRequest request) {
       super(request);
-      this.request = request;
    }
 
    /**
@@ -60,7 +57,7 @@ public class ActionRequestWrapper extends ClientDataRequestWrapper implements Ac
     * @return the wrapped request
     */
    public ActionRequest getRequest() {
-      return request;
+      return (ActionRequest) super.getRequest();
    }
 
    /**
@@ -70,11 +67,7 @@ public class ActionRequestWrapper extends ClientDataRequestWrapper implements Ac
     * @throws java.lang.IllegalArgumentException   if the request is null.
     */
    public void setRequest(ActionRequest request) {
-      if ( request == null) {
-         throw new java.lang.IllegalArgumentException("Request is null");
-      }
       super.setRequest(request);
-      this.request = request;
    }
 
    /**
@@ -84,7 +77,7 @@ public class ActionRequestWrapper extends ClientDataRequestWrapper implements Ac
     * </div>
     */
    public ActionParameters getActionParameters() {
-      return request.getActionParameters();
+      return ((ActionRequest)wrapped).getActionParameters();
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
index 4ad1be0..1598c7e 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
@@ -34,7 +34,7 @@ import javax.portlet.RenderURL;
  * <span class="changed_modified_3_0">The</span> 
  * <code>ActionResponseWrapper</code> provides a convenient 
  * implementation of the <code>ActionResponse</code> interface 
- * that can be subclassed by developers wishing to adapt the response.
+ * that can be subclassed by developers wishing to adapt the ((ActionResponse)response).
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *
@@ -43,8 +43,6 @@ import javax.portlet.RenderURL;
  */
 public class ActionResponseWrapper extends StateAwareResponseWrapper implements ActionResponse {
 
-   ActionResponse response;
-
    /**
     * Creates an <code>ActionResponse</code> adaptor 
     * wrapping the given response object.
@@ -54,7 +52,6 @@ public class ActionResponseWrapper extends StateAwareResponseWrapper implements
     */
    public ActionResponseWrapper(ActionResponse response) {
       super(response);
-      this.response = response;
    }
 
    /**
@@ -63,7 +60,7 @@ public class ActionResponseWrapper extends StateAwareResponseWrapper implements
     * @return the wrapped response
     */
    public ActionResponse getResponse() {
-      return response;
+      return (ActionResponse) response;
    }
 
    /**
@@ -73,11 +70,7 @@ public class ActionResponseWrapper extends StateAwareResponseWrapper implements
     * @throws java.lang.IllegalArgumentException   if the response is null.
     */
    public void setResponse(ActionResponse response) {
-      if ( response == null) {
-         throw new java.lang.IllegalArgumentException("Response is null");
-      }
       super.setResponse(response);
-      this.response = response;
    }
 
    /**
@@ -85,7 +78,7 @@ public class ActionResponseWrapper extends StateAwareResponseWrapper implements
     * <code>sendRedirect(location)</code> on the wrapped response object.
     */
    public void sendRedirect(String location) throws IOException {
-      response.sendRedirect(location);
+      ((ActionResponse)response).sendRedirect(location);
    }
 
    /**
@@ -93,14 +86,14 @@ public class ActionResponseWrapper extends StateAwareResponseWrapper implements
     * <code>sendRedirect(location, renderUrlParamName)</code> on the wrapped response object.
     */
    public void sendRedirect(String location, String renderUrlParamName) throws IOException {
-      response.sendRedirect(location, renderUrlParamName);
+      ((ActionResponse)response).sendRedirect(location, renderUrlParamName);
    }
 
    /**
     * call wrapped object.
     */
    public RenderURL getRedirectURL(Copy option) throws IllegalStateException {
-      return response.getRedirectURL(option);
+      return ((ActionResponse)response).getRedirectURL(option);
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java
new file mode 100644
index 0000000..25b254e
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java
@@ -0,0 +1,76 @@
+/*  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 javax.portlet.ActionURL;
+import javax.portlet.MutableActionParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>ActionURLWrapper</code> provides a convenient 
+ * implementation of the <code>ActionURL</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class ActionURLWrapper extends PortletURLWrapper implements ActionURL {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ActionURL is null.
+    */
+   public ActionURLWrapper(ActionURL wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public ActionURL getWrapped() {
+      return (ActionURL) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the ActionURL is null.
+    */
+   public void setWrapped(ActionURL wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ActionURL#getActionParameters()
+    */
+   @Override
+   public MutableActionParameters getActionParameters() {
+      return ((ActionURL)wrapped).getActionParameters();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java
new file mode 100644
index 0000000..4fa2878
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java
@@ -0,0 +1,168 @@
+/*  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.Writer;
+import java.util.Map;
+
+import javax.portlet.BaseURL;
+import javax.portlet.PortletSecurityException;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>BaseURLWrapper</code> provides a convenient 
+ * implementation of the <code>BaseURL</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class BaseURLWrapper extends PortletStateWrapper implements BaseURL {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the BaseURL is null.
+    */
+   public BaseURLWrapper(BaseURL wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   @Override
+   public BaseURL getWrapped() {
+      return ((BaseURL)wrapped);
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the BaseURL is null.
+    */
+   public void setWrapped(BaseURL wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("BaseURL to wrap is null");
+      }
+     this.wrapped = wrapped;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#setParameter(java.lang.String, java.lang.String)
+    */
+   @Deprecated
+   @Override
+   public void setParameter(String name, String value) {
+      ((BaseURL)wrapped).setParameter(name, value);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#setParameter(java.lang.String, java.lang.String[])
+    */
+   @Deprecated
+   @Override
+   public void setParameter(String name, String... values) {
+      ((BaseURL)wrapped).setParameter(name, values);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#setParameters(java.util.Map)
+    */
+   @Deprecated
+   @Override
+   public void setParameters(Map<String, String[]> parameters) {
+      ((BaseURL)wrapped).setParameters(parameters);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#setSecure(boolean)
+    */
+   @Override
+   public void setSecure(boolean secure) throws PortletSecurityException {
+      ((BaseURL)wrapped).setSecure(secure);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#getParameterMap()
+    */
+   @Deprecated
+   @Override
+   public Map<String, String[]> getParameterMap() {
+      return ((BaseURL)wrapped).getParameterMap();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#write(java.io.Writer)
+    */
+   @Override
+   public void write(Writer out) throws IOException {
+      ((BaseURL)wrapped).write(out);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#write(java.io.Writer, boolean)
+    */
+   @Override
+   public void write(Writer out, boolean escapeXML) throws IOException {
+      ((BaseURL)wrapped).write(out, escapeXML);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#append(java.lang.Appendable)
+    */
+   @Override
+   public Appendable append(Appendable out) throws IOException {
+      return ((BaseURL)wrapped).append(out);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#append(java.lang.Appendable, boolean)
+    */
+   @Override
+   public Appendable append(Appendable out, boolean escapeXML) throws IOException {
+      return ((BaseURL)wrapped).append(out, escapeXML);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#addProperty(java.lang.String, java.lang.String)
+    */
+   @Override
+   public void addProperty(String key, String value) {
+      ((BaseURL)wrapped).addProperty(key, value);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.BaseURL#setProperty(java.lang.String, java.lang.String)
+    */
+   @Override
+   public void setProperty(String key, String value) {
+      ((BaseURL)wrapped).setProperty(key, value);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
index ad0114d..a9f6589 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
@@ -16,7 +16,6 @@
  *  under the License.
  */
 
-
 package javax.portlet.filter;
 
 import java.io.BufferedReader;
@@ -27,25 +26,19 @@ import java.io.UnsupportedEncodingException;
 import javax.portlet.ClientDataRequest;
 
 /**
- * <div class="changed_added_3_0">
- * The <code>ClientDataRequestWrapper</code> provides a convenient 
- * implementation of the <code>ClientDataRequest</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.
- * </div>
+ * <div class="changed_added_3_0"> The <code>ClientDataRequestWrapper</code>
+ * provides a convenient implementation of the <code>ClientDataRequest</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. </div>
  */
-public class ClientDataRequestWrapper extends PortletRequestWrapper implements
-ClientDataRequest {
-
-   ClientDataRequest request;
+public class ClientDataRequestWrapper extends PortletRequestWrapper implements ClientDataRequest {
 
    /**
     * @param request
     */
    public ClientDataRequestWrapper(ClientDataRequest request) {
       super(request);
-      this.request = request;
    }
 
    /**
@@ -54,72 +47,83 @@ ClientDataRequest {
     * @return the wrapped request
     */
    public ClientDataRequest getRequest() {
-      return request;
+      return (ClientDataRequest) super.getRequest();
    }
 
    /**
     * Sets the request object being wrapped.
     * 
-    * @param request the request to set
-    * @throws java.lang.IllegalArgumentException   if the request is null.
+    * @param request
+    *           the request to set
+    * @throws java.lang.IllegalArgumentException
+    *            if the request is null.
     */
    public void setRequest(ClientDataRequest request) {
-      if ( request == null) {
-         throw new java.lang.IllegalArgumentException("Request is null");
-      }
       super.setRequest(request);
-      this.request = request;
    }
 
-   /* (non-Javadoc)
+   /*
+    * (non-Javadoc)
+    * 
     * @see javax.portlet.ClientDataRequest#getPortletInputStream()
     */
    public InputStream getPortletInputStream() throws IOException {
-      return request.getPortletInputStream();
+      return ((ClientDataRequest)wrapped).getPortletInputStream();
    }
 
-   /* (non-Javadoc)
-    * @see javax.portlet.ClientDataRequest#setCharacterEncoding(java.lang.String)
+   /*
+    * (non-Javadoc)
+    * 
+    * @see
+    * javax.portlet.ClientDataRequest#setCharacterEncoding(java.lang.String)
     */
-   public void setCharacterEncoding(String enc)
-         throws UnsupportedEncodingException {
-      request.setCharacterEncoding(enc);
+   public void setCharacterEncoding(String enc) throws UnsupportedEncodingException {
+      ((ClientDataRequest)wrapped).setCharacterEncoding(enc);
    }
 
-   /* (non-Javadoc)
+   /*
+    * (non-Javadoc)
+    * 
     * @see javax.portlet.ClientDataRequest#getReader()
     */
-   public BufferedReader getReader() throws UnsupportedEncodingException,
-   IOException {
-      return request.getReader();
+   public BufferedReader getReader() throws UnsupportedEncodingException, IOException {
+      return ((ClientDataRequest)wrapped).getReader();
    }
 
-   /* (non-Javadoc)
+   /*
+    * (non-Javadoc)
+    * 
     * @see javax.portlet.ClientDataRequest#getCharacterEncoding()
     */
    public String getCharacterEncoding() {
-      return request.getCharacterEncoding();
+      return ((ClientDataRequest)wrapped).getCharacterEncoding();
    }
 
-   /* (non-Javadoc)
+   /*
+    * (non-Javadoc)
+    * 
     * @see javax.portlet.ClientDataRequest#getContentType()
     */
    public String getContentType() {
-      return request.getContentType();
+      return ((ClientDataRequest)wrapped).getContentType();
    }
 
-   /* (non-Javadoc)
+   /*
+    * (non-Javadoc)
+    * 
     * @see javax.portlet.ClientDataRequest#getContentLength()
     */
    public int getContentLength() {
-      return request.getContentLength();
+      return ((ClientDataRequest)wrapped).getContentLength();
    }
 
-   /* (non-Javadoc)
+   /*
+    * (non-Javadoc)
+    * 
     * @see javax.portlet.ClientDataRequest#getMethod()
     */
    public String getMethod() {
-      return request.getMethod();
+      return ((ClientDataRequest)wrapped).getMethod();
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
index d035974..6356e56 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
@@ -40,8 +40,6 @@ import javax.portlet.EventRequest;
  */
 public class EventRequestWrapper extends PortletRequestWrapper implements EventRequest {
 
-   EventRequest request;
-
 
    /**
     * Creates an <code>EventRequest</code> adaptor 
@@ -52,7 +50,6 @@ public class EventRequestWrapper extends PortletRequestWrapper implements EventR
     */
    public EventRequestWrapper(EventRequest request) {
       super(request);
-      this.request = request;
    }
 
    /**
@@ -61,7 +58,7 @@ public class EventRequestWrapper extends PortletRequestWrapper implements EventR
     * @return the wrapped request
     */
    public EventRequest getRequest() {
-      return request;
+      return (EventRequest) super.getRequest();
    }
 
    /**
@@ -71,11 +68,7 @@ public class EventRequestWrapper extends PortletRequestWrapper implements EventR
     * @throws java.lang.IllegalArgumentException   if the request is null.
     */
    public void setRequest(EventRequest request) {
-      if ( request == null) {
-         throw new java.lang.IllegalArgumentException("Request is null");
-      }
       super.setRequest(request);
-      this.request = request;
    }
 
    /**
@@ -83,7 +76,7 @@ public class EventRequestWrapper extends PortletRequestWrapper implements EventR
     * <code>getEvent()</code> on the wrapped request object.
     */
    public Event getEvent() {
-      return request.getEvent();
+      return ((EventRequest)wrapped).getEvent();
    }
 
    /**
@@ -91,7 +84,7 @@ public class EventRequestWrapper extends PortletRequestWrapper implements EventR
     * <code>getMethod()</code> on the wrapped request object.
     */
    public String getMethod() {
-      return request.getMethod();
+      return ((EventRequest)wrapped).getMethod();
    }
 
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
index 1831a29..6d9e6b8 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
@@ -31,7 +31,7 @@ import javax.portlet.EventResponse;
  * <span class="changed_modified_3_0">The</span> 
  * <code>EventResponseWrapper</code> provides a convenient 
  * implementation of the <code>EventResponse</code> interface 
- * that can be subclassed by developers wishing to adapt the response.
+ * that can be subclassed by developers wishing to adapt the ((EventResponse)response).
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *
@@ -41,8 +41,6 @@ import javax.portlet.EventResponse;
 
 public class EventResponseWrapper extends StateAwareResponseWrapper implements EventResponse {
 
-   EventResponse response;
-
    /**
     * Creates an <code>EventResponse</code> adaptor 
     * wrapping the given response object.
@@ -52,7 +50,6 @@ public class EventResponseWrapper extends StateAwareResponseWrapper implements E
     */
    public EventResponseWrapper(EventResponse response) {
       super(response);
-      this.response = response;
    }
 
    /**
@@ -61,7 +58,7 @@ public class EventResponseWrapper extends StateAwareResponseWrapper implements E
     * @return the wrapped response
     */
    public EventResponse getResponse() {
-      return response;
+      return (EventResponse) response;
    }
 
    /**
@@ -71,11 +68,7 @@ public class EventResponseWrapper extends StateAwareResponseWrapper implements E
     * @throws java.lang.IllegalArgumentException   if the response is null.
     */
    public void setResponse(EventResponse response) {
-      if ( response == null) {
-         throw new java.lang.IllegalArgumentException("Response is null");
-      }
       super.setResponse(response);
-      this.response = response;
    }
 
    /**
@@ -84,6 +77,6 @@ public class EventResponseWrapper extends StateAwareResponseWrapper implements E
     */
    @Deprecated
    public void setRenderParameters(EventRequest request) {
-      response.setRenderParameters(request);         
+      ((EventResponse)response).setRenderParameters(request);         
    }
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
index 5334907..5d0b5ee 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
@@ -39,8 +39,6 @@ import javax.portlet.HeaderRequest;
  * @see HeaderRequest
  */
 public class HeaderRequestWrapper extends RenderRequestWrapper implements HeaderRequest {
-
-    HeaderRequest request;
     
     /**
      * Creates an <code>HeaderRequest</code> adaptor 
@@ -51,7 +49,6 @@ public class HeaderRequestWrapper extends RenderRequestWrapper implements Header
      */
     public HeaderRequestWrapper(HeaderRequest request) {
     	super(request);
-    	this.request = request;
     }
 
     /**
@@ -59,8 +56,9 @@ public class HeaderRequestWrapper extends RenderRequestWrapper implements Header
      * 
      * @return the wrapped request
      */
+    @Override
     public HeaderRequest getRequest() {
-       return request;
+       return (HeaderRequest) wrapped;
     }
 
     /**
@@ -70,11 +68,7 @@ public class HeaderRequestWrapper extends RenderRequestWrapper implements Header
      * @throws java.lang.IllegalArgumentException   if the request is null.
      */
     public void setRequest(HeaderRequest request) {
-       if ( request == null) {
-          throw new java.lang.IllegalArgumentException("Request is null");
-       }
        super.setRequest(request);
-       this.request = request;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
index bccd50d..c3b40cf 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
@@ -16,31 +16,24 @@
  *  under the License.
  */
 
-
 package javax.portlet.filter;
 
 import javax.portlet.HeaderResponse;
 
 /**
- * <div class="changed_added_3_0">
- * The <code>HeaderResponseWrapper</code> provides a convenient 
- * implementation of the <code>HeaderResponse</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>
+ * <div class="changed_added_3_0"> The <code>HeaderResponseWrapper</code>
+ * provides a convenient implementation of the <code>HeaderResponse</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 HeaderResponseWrapper extends MimeResponseWrapper implements
-HeaderResponse {
-
-   HeaderResponse response;
+public class HeaderResponseWrapper extends MimeResponseWrapper implements HeaderResponse {
 
    /**
     * @param response
     */
    public HeaderResponseWrapper(HeaderResponse response) {
       super(response);
-      this.response = response;
    }
 
    /**
@@ -49,28 +42,28 @@ HeaderResponse {
     * @return the wrapped response
     */
    public HeaderResponse getResponse() {
-      return response;
+      return (HeaderResponse) response;
    }
 
    /**
     * Sets the response object being wrapped.
     * 
-    * @param response the response to set
-    * @throws java.lang.IllegalArgumentException   if the response is null.
+    * @param response
+    *           the response to set
+    * @throws java.lang.IllegalArgumentException
+    *            if the response is null.
     */
    public void setResponse(HeaderResponse response) {
-      if ( response == null) {
-         throw new java.lang.IllegalArgumentException("Response is null");
-      }
       super.setResponse(response);
-      this.response = response;
    }
 
-   /* (non-Javadoc)
+   /*
+    * (non-Javadoc)
+    * 
     * @see javax.portlet.HeaderResponse#setTitle(java.lang.String)
     */
    public void setTitle(String title) {
-      response.setTitle(title);
+      ((HeaderResponse)response).setTitle(title);
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/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
index 0ebf65e..0c3cf4e 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java
@@ -16,7 +16,6 @@
  *  under the License.
  */
 
-
 package javax.portlet.filter;
 
 import java.io.IOException;
@@ -32,25 +31,19 @@ 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>
+ * <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;
+public class MimeResponseWrapper extends PortletResponseWrapper implements MimeResponse {
 
    /**
     * @param response
     */
    public MimeResponseWrapper(MimeResponse response) {
       super(response);
-      this.response = response;
    }
 
    /**
@@ -59,165 +52,165 @@ MimeResponse {
     * @return the wrapped response
     */
    public MimeResponse getResponse() {
-      return response;
+      return (MimeResponse) super.getResponse();
    }
 
    /**
     * Sets the response object being wrapped.
     * 
-    * @param response the response to set
-    * @throws java.lang.IllegalArgumentException   if the response is null.
+    * @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.
-    */ 
+    * The default behavior of this method is to call <code>flushBuffer()</code>
+    * on the wrapped response object.
+    */
    public void flushBuffer() throws IOException {
-      response.flushBuffer();
+      ((MimeResponse)response).flushBuffer();
    }
 
    /**
-    * The default behavior of this method is to call 
+    * The default behavior of this method is to call
     * <code>getBufferSize()</code> on the wrapped response object.
     */
    public int getBufferSize() {
-      return response.getBufferSize();
+      return ((MimeResponse)response).getBufferSize();
    }
 
    /**
-    * The default behavior of this method is to call 
+    * The default behavior of this method is to call
     * <code>getCharacterEncoding()</code> on the wrapped response object.
     */
    public String getCharacterEncoding() {
-      return response.getCharacterEncoding();
+      return ((MimeResponse)response).getCharacterEncoding();
    }
 
    /**
-    * The default behavior of this method is to call 
+    * The default behavior of this method is to call
     * <code>getContentType()</code> on the wrapped response object.
     */
    public String getContentType() {
-      return response.getContentType();
+      return ((MimeResponse)response).getContentType();
    }
 
    /**
-    * The default behavior of this method is to call 
-    * <code>getLocale()</code> on the wrapped response object.
+    * The default behavior of this method is to call <code>getLocale()</code> on
+    * the wrapped response object.
     */
    public Locale getLocale() {
-      return response.getLocale();
+      return ((MimeResponse)response).getLocale();
    }
 
    /**
-    * The default behavior of this method is to call 
+    * 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();
+      return ((MimeResponse)response).getPortletOutputStream();
    }
 
    /**
-    * The default behavior of this method is to call 
-    * <code>getWriter()</code> on the wrapped response object.
+    * 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();
+      return ((MimeResponse)response).getWriter();
    }
 
    /**
-    * The default behavior of this method is to call 
-    * <code>isCommitted()</code> on the wrapped response object.
+    * The default behavior of this method is to call <code>isCommitted()</code>
+    * on the wrapped response object.
     */
    public boolean isCommitted() {
-      return response.isCommitted();
+      return ((MimeResponse)response).isCommitted();
    }
 
    /**
-    * The default behavior of this method is to call 
-    * <code>reset()</code> on the wrapped response object.
+    * The default behavior of this method is to call <code>reset()</code> on the
+    * wrapped response object.
     */
    public void reset() {
-      response.reset();
+      ((MimeResponse)response).reset();
    }
 
    /**
-    * The default behavior of this method is to call 
-    * <code>resetBuffer()</code> on the wrapped response object.
+    * The default behavior of this method is to call <code>resetBuffer()</code>
+    * on the wrapped response object.
     */
    public void resetBuffer() {
-      response.resetBuffer();
+      ((MimeResponse)response).resetBuffer();
    }
 
    /**
-    * The default behavior of this method is to call 
+    * 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);
+      ((MimeResponse)response).setBufferSize(size);
    }
 
    /**
-    * The default behavior of this method is to call 
+    * The default behavior of this method is to call
     * <code>getCacheControl()</code> on the wrapped response object.
     */
    public CacheControl getCacheControl() {
-      return response.getCacheControl();
+      return ((MimeResponse)response).getCacheControl();
    }
 
    /**
-    *  The default behavior of this method is to call 
+    * 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();
+      return ((MimeResponse)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>
+    * <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);
+      return ((MimeResponse)response).createActionURL(option);
    }
 
    /**
-    *  The default behavior of this method is to call 
+    * 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();
+      return ((MimeResponse)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>
+    * <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);
+      return ((MimeResponse)response).createRenderURL(option);
    }
 
    /**
-    *  The default behavior of this method is to call 
+    * 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();
+      return ((MimeResponse)response).createResourceURL();
    }
 
    /**
-    * The default behavior of this method is to call 
+    * 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);
+      ((MimeResponse)response).setContentType(type);
    }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java
new file mode 100644
index 0000000..736a0ae
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java
@@ -0,0 +1,75 @@
+/*  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 javax.portlet.MutableActionParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>MutableActionParametersWrapper</code> provides a convenient 
+ * implementation of the <code>MutableActionParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class MutableActionParametersWrapper extends MutablePortletParametersWrapper implements MutableActionParameters {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutableActionParameters is null.
+    */
+   public MutableActionParametersWrapper(MutableActionParameters wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public MutableActionParameters getWrapped() {
+      return (MutableActionParameters) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutableActionParameters is null.
+    */
+   public void setWrapped(MutableActionParameters wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ActionParameters#clone()
+    */
+   @Override
+   public MutableActionParameters clone() {
+      return ((MutableActionParameters)wrapped).clone();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java
new file mode 100644
index 0000000..c546ee5
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java
@@ -0,0 +1,118 @@
+/*  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 javax.portlet.Mutable;
+import javax.portlet.MutablePortletParameters;
+import javax.portlet.PortletParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>MutablePortletParametersWrapper</code> provides a convenient 
+ * implementation of the <code>MutablePortletParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class MutablePortletParametersWrapper extends PortletParametersWrapper implements MutablePortletParameters,
+      Mutable {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutablePortletParameters is null.
+    */
+   public MutablePortletParametersWrapper(MutablePortletParameters wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public MutablePortletParameters getWrapped() {
+      return (MutablePortletParameters) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutablePortletParameters is null.
+    */
+   public void setWrapped(MutablePortletParameters wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletParameters#setValue(java.lang.String, java.lang.String)
+    */
+   @Override
+   public String setValue(String name, String value) {
+      return ((MutablePortletParameters)wrapped).setValue(name, value);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletParameters#setValues(java.lang.String, java.lang.String[])
+    */
+   @Override
+   public String[] setValues(String name, String... values) {
+      return ((MutablePortletParameters)wrapped).setValues(name, values);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletParameters#removeParameter(java.lang.String)
+    */
+   @Override
+   public boolean removeParameter(String name) {
+      return ((MutablePortletParameters)wrapped).removeParameter(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletParameters#set(javax.portlet.PortletParameters)
+    */
+   @Override
+   public MutablePortletParameters set(PortletParameters params) {
+      return ((MutablePortletParameters)wrapped).set(params);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletParameters#add(javax.portlet.PortletParameters)
+    */
+   @Override
+   public MutablePortletParameters add(PortletParameters params) {
+      return ((MutablePortletParameters)wrapped).add(params);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletParameters#clear()
+    */
+   @Override
+   public void clear() {
+      ((MutablePortletParameters)wrapped).clear();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java
new file mode 100644
index 0000000..ed15012
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java
@@ -0,0 +1,97 @@
+/*  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 javax.portlet.Mutable;
+import javax.portlet.MutablePortletState;
+import javax.portlet.MutableRenderParameters;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletModeException;
+import javax.portlet.WindowState;
+import javax.portlet.WindowStateException;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>MutablePortletStateWrapper</code> provides a convenient 
+ * implementation of the <code>MutablePortletState</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class MutablePortletStateWrapper extends PortletStateWrapper implements MutablePortletState, Mutable {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutablePortletState is null.
+    */
+   public MutablePortletStateWrapper(MutablePortletState wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public MutablePortletState getWrapped() {
+      return (MutablePortletState) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutablePortletState is null.
+    */
+   public void setWrapped(MutablePortletState wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#getRenderParameters()
+    */
+   @Override
+   public MutableRenderParameters getRenderParameters() {
+      return ((MutablePortletState)wrapped).getRenderParameters();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#setWindowState(javax.portlet.WindowState)
+    */
+   @Override
+   public void setWindowState(WindowState windowState) throws WindowStateException {
+      ((MutablePortletState)wrapped).setWindowState(windowState);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#setPortletMode(javax.portlet.PortletMode)
+    */
+   @Override
+   public void setPortletMode(PortletMode portletMode) throws PortletModeException {
+      ((MutablePortletState)wrapped).setPortletMode(portletMode);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java
new file mode 100644
index 0000000..65141af
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java
@@ -0,0 +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.
+ */
+
+
+package javax.portlet.filter;
+
+import javax.portlet.MutableRenderParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>MutableRenderParametersWrapper</code> provides a convenient 
+ * implementation of the <code>MutableRenderParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class MutableRenderParametersWrapper extends MutablePortletParametersWrapper implements MutableRenderParameters {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutableRenderParameters is null.
+    */
+   public MutableRenderParametersWrapper(MutableRenderParameters wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public MutableRenderParameters getWrapped() {
+      return (MutableRenderParameters) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutableRenderParameters is null.
+    */
+   public void setWrapped(MutableRenderParameters wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderParameters#clone()
+    */
+   @Override
+   public MutableRenderParameters clone() {
+      return ((MutableRenderParameters)wrapped).clone();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderParameters#isPublic(java.lang.String)
+    */
+   @Override
+   public boolean isPublic(String name) {
+      return ((MutableRenderParameters)wrapped).isPublic(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutableRenderParameters#clearPrivate()
+    */
+   @Override
+   public void clearPrivate() {
+      ((MutableRenderParameters)wrapped).clearPrivate();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutableRenderParameters#clearPublic()
+    */
+   @Override
+   public void clearPublic() {
+      ((MutableRenderParameters)wrapped).clearPublic();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java
new file mode 100644
index 0000000..8322b1d
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java
@@ -0,0 +1,76 @@
+/*  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 javax.portlet.MutableResourceParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>MutableResourceParametersWrapper</code> provides a convenient 
+ * implementation of the <code>MutableResourceParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class MutableResourceParametersWrapper extends MutablePortletParametersWrapper implements
+      MutableResourceParameters {
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutableResourceParameters is null.
+    */
+   public MutableResourceParametersWrapper(MutableResourceParameters wrapped) {
+      super(wrapped);
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public MutableResourceParameters getWrapped() {
+      return (MutableResourceParameters) wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the MutableResourceParameters is null.
+    */
+   public void setWrapped(MutableResourceParameters wrapped) {
+      super.setWrapped(wrapped);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceParameters#clone()
+    */
+   @Override
+   public MutableResourceParameters clone() {
+      return ((MutableResourceParameters)wrapped).clone();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
index 3831c33..d251375 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
@@ -31,6 +31,13 @@ import javax.portlet.WindowState;
 import javax.xml.namespace.QName;
 
 /**
+ * <div class="changed_added_3_0">
+ * The <code>PortletConfigWrapper</code> provides a convenient 
+ * implementation of the <code>PortletConfig</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.
+ * </div>
  * 
  * @author Scott Nicklous
  *
@@ -40,18 +47,10 @@ public class PortletConfigWrapper implements PortletConfig {
    protected PortletConfig wrapped;
    
    /**
-    * <div class="changed_added_3_0">
-    * The <code>PortletConfigWrapper</code> provides a convenient 
-    * implementation of the <code>PortletConfig</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.
-    * </div>
-    * Construct with appropriate object.
     */
    public PortletConfigWrapper(PortletConfig wrapped) {
       if (wrapped == null) {
-         throw new java.lang.IllegalArgumentException("Wrapped object is null");
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
       }
       this.wrapped = wrapped;
    }
@@ -62,7 +61,7 @@ public class PortletConfigWrapper implements PortletConfig {
     * 
     * @return the wrapped object.
     */
-   public PortletConfig getPortletConfig() {
+   public PortletConfig getWrapped() {
       return wrapped;
    }
 
@@ -73,7 +72,7 @@ public class PortletConfigWrapper implements PortletConfig {
     * @param the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the request is null.
     */
-   public void setPortletConfig(PortletConfig wrapped) {
+   public void setWrapped(PortletConfig wrapped) {
       if (wrapped == null) {
          throw new java.lang.IllegalArgumentException("Object to wrap is null");
       }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java
new file mode 100644
index 0000000..f9b1b54
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java
@@ -0,0 +1,240 @@
+/*  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.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.Set;
+
+import javax.portlet.PortletContext;
+import javax.portlet.PortletRequestDispatcher;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>PortletContextWrapper</code> provides a convenient 
+ * implementation of the <code>PortletContext</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class PortletContextWrapper implements PortletContext {
+   
+   protected PortletContext wrapped;
+   
+   /**
+    */
+   public PortletContextWrapper(PortletContext wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("PortletContext to wrap is null");
+      }
+      this.wrapped = wrapped;
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public PortletContext getPortletContext() {
+      return wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletContext is null.
+    */
+   public void setPortletContext(PortletContext wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("PortletContext to wrap is null");
+      }
+     this.wrapped = wrapped;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getServerInfo()
+    */
+   @Override
+   public String getServerInfo() {
+      return wrapped.getServerInfo();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getRequestDispatcher(java.lang.String)
+    */
+   @Override
+   public PortletRequestDispatcher getRequestDispatcher(String path) {
+      return wrapped.getRequestDispatcher(path);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getNamedDispatcher(java.lang.String)
+    */
+   @Override
+   public PortletRequestDispatcher getNamedDispatcher(String name) {
+      return wrapped.getNamedDispatcher(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getResourceAsStream(java.lang.String)
+    */
+   @Override
+   public InputStream getResourceAsStream(String path) {
+      return wrapped.getResourceAsStream(path);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getMajorVersion()
+    */
+   @Override
+   public int getMajorVersion() {
+      return wrapped.getMajorVersion();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getMinorVersion()
+    */
+   @Override
+   public int getMinorVersion() {
+      return wrapped.getMinorVersion();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getMimeType(java.lang.String)
+    */
+   @Override
+   public String getMimeType(String file) {
+      return wrapped.getMimeType(file);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getRealPath(java.lang.String)
+    */
+   @Override
+   public String getRealPath(String path) {
+      return wrapped.getRealPath(path);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getResourcePaths(java.lang.String)
+    */
+   @Override
+   public Set<String> getResourcePaths(String path) {
+      return wrapped.getResourcePaths(path);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getResource(java.lang.String)
+    */
+   @Override
+   public URL getResource(String path) throws MalformedURLException {
+      return wrapped.getResource(path);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getAttribute(java.lang.String)
+    */
+   @Override
+   public Object getAttribute(String name) {
+      return wrapped.getAttribute(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getAttributeNames()
+    */
+   @Override
+   public Enumeration<String> getAttributeNames() {
+      return wrapped.getAttributeNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getInitParameter(java.lang.String)
+    */
+   @Override
+   public String getInitParameter(String name) {
+      return wrapped.getInitParameter(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getInitParameterNames()
+    */
+   @Override
+   public Enumeration<String> getInitParameterNames() {
+      return wrapped.getInitParameterNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#log(java.lang.String)
+    */
+   @Override
+   public void log(String msg) {
+      wrapped.log(msg);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#log(java.lang.String, java.lang.Throwable)
+    */
+   @Override
+   public void log(String message, Throwable throwable) {
+      wrapped.log(message, throwable);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#removeAttribute(java.lang.String)
+    */
+   @Override
+   public void removeAttribute(String name) {
+      wrapped.removeAttribute(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#setAttribute(java.lang.String, java.lang.Object)
+    */
+   @Override
+   public void setAttribute(String name, Object object) {
+      wrapped.setAttribute(name, object);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getPortletContextName()
+    */
+   @Override
+   public String getPortletContextName() {
+      return wrapped.getPortletContextName();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletContext#getContainerRuntimeOptions()
+    */
+   @Override
+   public Enumeration<String> getContainerRuntimeOptions() {
+      return wrapped.getContainerRuntimeOptions();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java
new file mode 100644
index 0000000..8bc8cd2
--- /dev/null
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java
@@ -0,0 +1,126 @@
+/*  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.util.Set;
+
+import javax.portlet.MutablePortletParameters;
+import javax.portlet.PortletParameters;
+
+/**
+ * <div class="changed_added_3_0">
+ * The <code>PortletParametersWrapper</code> provides a convenient 
+ * implementation of the <code>PortletParameters</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.
+ * </div>
+ * 
+ * @author Scott Nicklous
+ *
+ */
+public class PortletParametersWrapper implements PortletParameters {
+   
+   protected PortletParameters wrapped;
+   
+   /**
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletParameters is null.
+    */
+   public PortletParametersWrapper(PortletParameters wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+      this.wrapped = wrapped;
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public PortletParameters getWrapped() {
+      return wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the PortletParameters is null.
+    */
+   public void setWrapped(PortletParameters wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+     this.wrapped = wrapped;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#getValue(java.lang.String)
+    */
+   @Override
+   public String getValue(String name) {
+      return wrapped.getValue(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#getNames()
+    */
+   @Override
+   public Set<? extends String> getNames() {
+      return wrapped.getNames();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#getValues(java.lang.String)
+    */
+   @Override
+   public String[] getValues(String name) {
+      return wrapped.getValues(name);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#isEmpty()
+    */
+   @Override
+   public boolean isEmpty() {
+      return wrapped.isEmpty();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#size()
+    */
+   @Override
+   public int size() {
+      return wrapped.size();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#clone()
+    */
+   @Override
+   public MutablePortletParameters clone() {
+      return wrapped.clone();
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/aa5e8a3b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
index 3963ed7..4d0be19 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
@@ -29,16 +29,59 @@ import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
 
 /**
+ * <div class="changed_added_3_0">
+ * The <code>PortletRequestDispatcherWrapper</code> provides a convenient 
+ * implementation of the <code>PortletRequestDispatcher</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.
+ * </div>
+ * 
  * @author Scott Nicklous
- *
  */
 public class PortletRequestDispatcherWrapper implements PortletRequestDispatcher {
+   
+   protected PortletRequestDispatcher wrapped;
+   
+   /**
+    */
+   public PortletRequestDispatcherWrapper(PortletRequestDispatcher wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+      this.wrapped = wrapped;
+   }
+   
+
+   /**
+    * Gets the wrapped object.
+    * 
+    * @return the wrapped object.
+    */
+   public PortletRequestDispatcher getWrapped() {
+      return wrapped;
+   }
+
+
+   /**
+    * Sets the wrapped object.
+    * 
+    * @param the wrapped object to set.
+    * @throws java.lang.IllegalArgumentException   if the request is null.
+    */
+   public void setWrapped(PortletRequestDispatcher wrapped) {
+      if (wrapped == null) {
+         throw new java.lang.IllegalArgumentException("Object to wrap is null");
+      }
+     this.wrapped = wrapped;
+   }
 
    /* (non-Javadoc)
     * @see javax.portlet.PortletRequestDispatcher#include(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
     */
    @Override
    public void include(RenderRequest request, RenderResponse response) throws PortletException, IOException {
+      wrapped.include(request, response);
    }
 
    /* (non-Javadoc)
@@ -46,6 +89,7 @@ public class PortletRequestDispatcherWrapper implements PortletRequestDispatcher
     */
    @Override
    public void include(PortletRequest request, PortletResponse response) throws PortletException, IOException {
+      wrapped.include(request, response);
    }
 
    /* (non-Javadoc)
@@ -53,6 +97,7 @@ public class PortletRequestDispatcherWrapper implements PortletRequestDispatcher
     */
    @Override
    public void forward(PortletRequest request, PortletResponse response) throws PortletException, IOException {
+      wrapped.forward(request, response);
    }
 
 }


[5/5] portals-pluto git commit: Minor wording changes in the Javadoc. Copied updated portlet API overview document into the Pluto portlet_api project.

Posted by ms...@apache.org.
Minor wording changes in the Javadoc. Copied updated portlet API overview
document into the Pluto portlet_api project.


Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/5fb26a1d
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/5fb26a1d
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/5fb26a1d

Branch: refs/heads/V3Prototype
Commit: 5fb26a1dd5c5209dfaa1fad07ed246dc8d30d1e7
Parents: aa5e8a3
Author: Scott Nicklous <ms...@apache.org>
Authored: Mon Jan 25 13:21:04 2016 +0100
Committer: Scott Nicklous <ms...@apache.org>
Committed: Mon Jan 25 13:22:42 2016 +0100

----------------------------------------------------------------------
 .../java/javax/portlet/PortletResponse.java     |   2 +-
 .../javax/portlet/annotations/package-info.java |   1 -
 .../portlet/filter/ActionParametersWrapper.java |   6 +-
 .../portlet/filter/ActionRequestWrapper.java    |   2 +-
 .../portlet/filter/ActionResponseWrapper.java   |   2 +-
 .../javax/portlet/filter/ActionURLWrapper.java  |   6 +-
 .../javax/portlet/filter/BaseURLWrapper.java    |   6 +-
 .../filter/ClientDataRequestWrapper.java        |   2 +-
 .../portlet/filter/EventRequestWrapper.java     |   2 +-
 .../portlet/filter/EventResponseWrapper.java    |   2 +-
 .../portlet/filter/HeaderRequestWrapper.java    |   2 +-
 .../portlet/filter/HeaderResponseWrapper.java   |   2 +-
 .../portlet/filter/MimeResponseWrapper.java     |   2 +-
 .../filter/MutableActionParametersWrapper.java  |   6 +-
 .../filter/MutablePortletParametersWrapper.java |   6 +-
 .../filter/MutablePortletStateWrapper.java      |   6 +-
 .../filter/MutableRenderParametersWrapper.java  |   6 +-
 .../MutableResourceParametersWrapper.java       |   6 +-
 .../portlet/filter/PortletConfigWrapper.java    |   4 +-
 .../portlet/filter/PortletContextWrapper.java   |   4 +-
 .../filter/PortletParametersWrapper.java        |   6 +-
 .../filter/PortletRequestDispatcherWrapper.java |   4 +-
 .../portlet/filter/PortletSessionWrapper.java   |   6 +-
 .../portlet/filter/PortletStateWrapper.java     |   6 +-
 .../javax/portlet/filter/PortletURLWrapper.java |   6 +-
 .../portlet/filter/RenderParametersWrapper.java |   6 +-
 .../portlet/filter/RenderRequestWrapper.java    |   2 +-
 .../portlet/filter/RenderResponseWrapper.java   |   2 +-
 .../javax/portlet/filter/RenderURLWrapper.java  |   6 +-
 .../filter/ResourceParametersWrapper.java       |   6 +-
 .../portlet/filter/ResourceRequestWrapper.java  |   2 +-
 .../portlet/filter/ResourceResponseWrapper.java |   2 +-
 .../portlet/filter/ResourceURLWrapper.java      |   6 +-
 .../filter/StateAwareResponseWrapper.java       |   2 +-
 portlet-api/src/main/javadoc/overview.html      | 193 ++++++++++++++++++-
 portlet-api/src/main/javadoc/portlet-api.css    | 111 ++++++++++-
 36 files changed, 363 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/PortletResponse.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/PortletResponse.java b/portlet-api/src/main/java/javax/portlet/PortletResponse.java
index 3776370..ddc3e48 100644
--- a/portlet-api/src/main/java/javax/portlet/PortletResponse.java
+++ b/portlet-api/src/main/java/javax/portlet/PortletResponse.java
@@ -25,7 +25,7 @@
 package javax.portlet;
 
 /**
- * <div class="changed_modified_3_0">The</div>
+ * <span class="changed_modified_3_0">The</span>
  * <CODE>PortletResponse</CODE> defines the base interface to assist a
  * portlet in creating and sending a response to the client. The portlet
  * container uses specialized versions of this interface when invoking a

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/annotations/package-info.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/annotations/package-info.java b/portlet-api/src/main/java/javax/portlet/annotations/package-info.java
index aa02ac5..82f2f2f 100644
--- a/portlet-api/src/main/java/javax/portlet/annotations/package-info.java
+++ b/portlet-api/src/main/java/javax/portlet/annotations/package-info.java
@@ -48,7 +48,6 @@
  * {@link javax.portlet.annotations.HeaderMethod}, 
  * {@link javax.portlet.annotations.RenderMethod}, 
  * {@link javax.portlet.annotations.ServeResourceMethod}, or 
- * {@link javax.portlet.annotations.PortletResources}.
  * <p>
  * Bean portlet methods can be contained in any valid bean class. 
  * The class needs not implement any portlet-specific interface or extend a portlet class. 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java
index 7f39fb4..956f55a 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionParametersWrapper.java
@@ -26,7 +26,7 @@ import javax.portlet.MutableActionParameters;
  * <div class="changed_added_3_0">
  * The <code>ActionParametersWrapper</code> provides a convenient 
  * implementation of the <code>ActionParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -37,7 +37,7 @@ import javax.portlet.MutableActionParameters;
 public class ActionParametersWrapper extends PortletParametersWrapper implements ActionParameters {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ActionParameters is null.
     */
    public ActionParametersWrapper(ActionParameters wrapped) {
@@ -58,7 +58,7 @@ public class ActionParametersWrapper extends PortletParametersWrapper implements
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ActionParameters is null.
     */
    public void setWrapped(ActionParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
index 2ebe37b..ac48e6a 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
@@ -31,7 +31,7 @@ import javax.portlet.ActionRequest;
  * <span class="changed_modified_3_0">The</span> 
  * <code>ActionRequestWrapper</code> provides a convenient 
  * implementation of the <code>ActionRequest</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
index 1598c7e..de727b8 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
@@ -34,7 +34,7 @@ import javax.portlet.RenderURL;
  * <span class="changed_modified_3_0">The</span> 
  * <code>ActionResponseWrapper</code> provides a convenient 
  * implementation of the <code>ActionResponse</code> interface 
- * that can be subclassed by developers wishing to adapt the ((ActionResponse)response).
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java
index 25b254e..b1ddf72 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ActionURLWrapper.java
@@ -26,7 +26,7 @@ import javax.portlet.MutableActionParameters;
  * <div class="changed_added_3_0">
  * The <code>ActionURLWrapper</code> provides a convenient 
  * implementation of the <code>ActionURL</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -37,7 +37,7 @@ import javax.portlet.MutableActionParameters;
 public class ActionURLWrapper extends PortletURLWrapper implements ActionURL {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ActionURL is null.
     */
    public ActionURLWrapper(ActionURL wrapped) {
@@ -58,7 +58,7 @@ public class ActionURLWrapper extends PortletURLWrapper implements ActionURL {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ActionURL is null.
     */
    public void setWrapped(ActionURL wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java
index 4fa2878..cd3ab2c 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/BaseURLWrapper.java
@@ -30,7 +30,7 @@ import javax.portlet.PortletSecurityException;
  * <div class="changed_added_3_0">
  * The <code>BaseURLWrapper</code> provides a convenient 
  * implementation of the <code>BaseURL</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -41,7 +41,7 @@ import javax.portlet.PortletSecurityException;
 public class BaseURLWrapper extends PortletStateWrapper implements BaseURL {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the BaseURL is null.
     */
    public BaseURLWrapper(BaseURL wrapped) {
@@ -63,7 +63,7 @@ public class BaseURLWrapper extends PortletStateWrapper implements BaseURL {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the BaseURL is null.
     */
    public void setWrapped(BaseURL wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
index a9f6589..95e0deb 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ClientDataRequestWrapper.java
@@ -28,7 +28,7 @@ import javax.portlet.ClientDataRequest;
 /**
  * <div class="changed_added_3_0"> The <code>ClientDataRequestWrapper</code>
  * provides a convenient implementation of the <code>ClientDataRequest</code>
- * interface that can be subclassed by developers wishing to adapt the request.
+ * interface that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. Methods default to
  * calling through to the wrapped request object. </div>
  */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
index 6356e56..e74cc8c 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
@@ -31,7 +31,7 @@ import javax.portlet.EventRequest;
  * <span class="changed_modified_3_0">The</span> 
  * <code>EventRequestWrapper</code> provides a convenient 
  * implementation of the <code>EventRequest</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
index 6d9e6b8..1755064 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
@@ -31,7 +31,7 @@ import javax.portlet.EventResponse;
  * <span class="changed_modified_3_0">The</span> 
  * <code>EventResponseWrapper</code> provides a convenient 
  * implementation of the <code>EventResponse</code> interface 
- * that can be subclassed by developers wishing to adapt the ((EventResponse)response).
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
index 5d0b5ee..bbe32eb 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/HeaderRequestWrapper.java
@@ -30,7 +30,7 @@ import javax.portlet.HeaderRequest;
  * <div class="changed_added_3_0">
  * The <code>HeaderRequestWrapper</code> provides a convenient 
  * implementation of the <code>HeaderRequest</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
index c3b40cf..c7251b7 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/HeaderResponseWrapper.java
@@ -23,7 +23,7 @@ import javax.portlet.HeaderResponse;
 /**
  * <div class="changed_added_3_0"> The <code>HeaderResponseWrapper</code>
  * provides a convenient implementation of the <code>HeaderResponse</code>
- * interface that can be subclassed by developers wishing to adapt the Response.
+ * interface that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. Methods default to
  * calling through to the wrapped Response object. </div>
  */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/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
index 0c3cf4e..9365d44 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/MimeResponseWrapper.java
@@ -33,7 +33,7 @@ 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
+ * can be subclassed by developers. This class
  * implements the Wrapper or Decorator pattern. Methods default to calling
  * through to the wrapped response object. </div>
  */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java
index 736a0ae..e1cba10 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutableActionParametersWrapper.java
@@ -25,7 +25,7 @@ import javax.portlet.MutableActionParameters;
  * <div class="changed_added_3_0">
  * The <code>MutableActionParametersWrapper</code> provides a convenient 
  * implementation of the <code>MutableActionParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -36,7 +36,7 @@ import javax.portlet.MutableActionParameters;
 public class MutableActionParametersWrapper extends MutablePortletParametersWrapper implements MutableActionParameters {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutableActionParameters is null.
     */
    public MutableActionParametersWrapper(MutableActionParameters wrapped) {
@@ -57,7 +57,7 @@ public class MutableActionParametersWrapper extends MutablePortletParametersWrap
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutableActionParameters is null.
     */
    public void setWrapped(MutableActionParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java
index c546ee5..ef65c7c 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletParametersWrapper.java
@@ -27,7 +27,7 @@ import javax.portlet.PortletParameters;
  * <div class="changed_added_3_0">
  * The <code>MutablePortletParametersWrapper</code> provides a convenient 
  * implementation of the <code>MutablePortletParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -39,7 +39,7 @@ public class MutablePortletParametersWrapper extends PortletParametersWrapper im
       Mutable {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutablePortletParameters is null.
     */
    public MutablePortletParametersWrapper(MutablePortletParameters wrapped) {
@@ -60,7 +60,7 @@ public class MutablePortletParametersWrapper extends PortletParametersWrapper im
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutablePortletParameters is null.
     */
    public void setWrapped(MutablePortletParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java
index ed15012..62c613f 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutablePortletStateWrapper.java
@@ -31,7 +31,7 @@ import javax.portlet.WindowStateException;
  * <div class="changed_added_3_0">
  * The <code>MutablePortletStateWrapper</code> provides a convenient 
  * implementation of the <code>MutablePortletState</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -42,7 +42,7 @@ import javax.portlet.WindowStateException;
 public class MutablePortletStateWrapper extends PortletStateWrapper implements MutablePortletState, Mutable {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutablePortletState is null.
     */
    public MutablePortletStateWrapper(MutablePortletState wrapped) {
@@ -63,7 +63,7 @@ public class MutablePortletStateWrapper extends PortletStateWrapper implements M
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutablePortletState is null.
     */
    public void setWrapped(MutablePortletState wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java
index 65141af..8ad172c 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutableRenderParametersWrapper.java
@@ -25,7 +25,7 @@ import javax.portlet.MutableRenderParameters;
  * <div class="changed_added_3_0">
  * The <code>MutableRenderParametersWrapper</code> provides a convenient 
  * implementation of the <code>MutableRenderParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -36,7 +36,7 @@ import javax.portlet.MutableRenderParameters;
 public class MutableRenderParametersWrapper extends MutablePortletParametersWrapper implements MutableRenderParameters {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutableRenderParameters is null.
     */
    public MutableRenderParametersWrapper(MutableRenderParameters wrapped) {
@@ -57,7 +57,7 @@ public class MutableRenderParametersWrapper extends MutablePortletParametersWrap
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutableRenderParameters is null.
     */
    public void setWrapped(MutableRenderParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java
index 8322b1d..919b842 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/MutableResourceParametersWrapper.java
@@ -25,7 +25,7 @@ import javax.portlet.MutableResourceParameters;
  * <div class="changed_added_3_0">
  * The <code>MutableResourceParametersWrapper</code> provides a convenient 
  * implementation of the <code>MutableResourceParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -37,7 +37,7 @@ public class MutableResourceParametersWrapper extends MutablePortletParametersWr
       MutableResourceParameters {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutableResourceParameters is null.
     */
    public MutableResourceParametersWrapper(MutableResourceParameters wrapped) {
@@ -58,7 +58,7 @@ public class MutableResourceParametersWrapper extends MutablePortletParametersWr
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the MutableResourceParameters is null.
     */
    public void setWrapped(MutableResourceParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
index d251375..a977212 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletConfigWrapper.java
@@ -34,7 +34,7 @@ import javax.xml.namespace.QName;
  * <div class="changed_added_3_0">
  * The <code>PortletConfigWrapper</code> provides a convenient 
  * implementation of the <code>PortletConfig</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -69,7 +69,7 @@ public class PortletConfigWrapper implements PortletConfig {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the request is null.
     */
    public void setWrapped(PortletConfig wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java
index f9b1b54..50470f1 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletContextWrapper.java
@@ -32,7 +32,7 @@ import javax.portlet.PortletRequestDispatcher;
  * <div class="changed_added_3_0">
  * The <code>PortletContextWrapper</code> provides a convenient 
  * implementation of the <code>PortletContext</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -67,7 +67,7 @@ public class PortletContextWrapper implements PortletContext {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletContext is null.
     */
    public void setPortletContext(PortletContext wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java
index 8bc8cd2..68d9c77 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletParametersWrapper.java
@@ -28,7 +28,7 @@ import javax.portlet.PortletParameters;
  * <div class="changed_added_3_0">
  * The <code>PortletParametersWrapper</code> provides a convenient 
  * implementation of the <code>PortletParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -41,7 +41,7 @@ public class PortletParametersWrapper implements PortletParameters {
    protected PortletParameters wrapped;
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletParameters is null.
     */
    public PortletParametersWrapper(PortletParameters wrapped) {
@@ -65,7 +65,7 @@ public class PortletParametersWrapper implements PortletParameters {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletParameters is null.
     */
    public void setWrapped(PortletParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
index 4d0be19..39da72f 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletRequestDispatcherWrapper.java
@@ -32,7 +32,7 @@ import javax.portlet.RenderResponse;
  * <div class="changed_added_3_0">
  * The <code>PortletRequestDispatcherWrapper</code> provides a convenient 
  * implementation of the <code>PortletRequestDispatcher</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -66,7 +66,7 @@ public class PortletRequestDispatcherWrapper implements PortletRequestDispatcher
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the request is null.
     */
    public void setWrapped(PortletRequestDispatcher wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java
index d76e851..fbfa0c3 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletSessionWrapper.java
@@ -29,7 +29,7 @@ import javax.portlet.PortletSession;
  * <div class="changed_added_3_0">
  * The <code>PortletSessionWrapper</code> provides a convenient 
  * implementation of the <code>PortletSession</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -42,7 +42,7 @@ public class PortletSessionWrapper implements PortletSession {
    protected PortletSession wrapped;
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletSession is null.
     */
    public PortletSessionWrapper(PortletSession wrapped) {
@@ -66,7 +66,7 @@ public class PortletSessionWrapper implements PortletSession {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletSession is null.
     */
    public void setWrapped(PortletSession wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java
index aa69794..7f1e4e7 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletStateWrapper.java
@@ -28,7 +28,7 @@ import javax.portlet.WindowState;
  * <div class="changed_added_3_0">
  * The <code>PortletStateWrapper</code> provides a convenient 
  * implementation of the <code>PortletState</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -41,7 +41,7 @@ public class PortletStateWrapper implements PortletState {
    protected PortletState wrapped;
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletState is null.
     */
    public PortletStateWrapper(PortletState wrapped) {
@@ -65,7 +65,7 @@ public class PortletStateWrapper implements PortletState {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletState is null.
     */
    public void setWrapped(PortletState wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java
index 56ae896..8661f47 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/PortletURLWrapper.java
@@ -31,7 +31,7 @@ import javax.portlet.annotations.PortletSerializable;
  * <div class="changed_added_3_0">
  * The <code>PortletURLWrapper</code> provides a convenient 
  * implementation of the <code>PortletURL</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -42,7 +42,7 @@ import javax.portlet.annotations.PortletSerializable;
 public class PortletURLWrapper extends BaseURLWrapper implements PortletURL {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletURL is null.
     */
    public PortletURLWrapper(PortletURL wrapped) {
@@ -63,7 +63,7 @@ public class PortletURLWrapper extends BaseURLWrapper implements PortletURL {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the PortletURL is null.
     */
    public void setWrapped(PortletURL wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java
index bbc566c..ca54bfb 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderParametersWrapper.java
@@ -26,7 +26,7 @@ import javax.portlet.RenderParameters;
  * <div class="changed_added_3_0">
  * The <code>RenderParametersWrapper</code> provides a convenient 
  * implementation of the <code>RenderParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -37,7 +37,7 @@ import javax.portlet.RenderParameters;
 public class RenderParametersWrapper extends PortletParametersWrapper implements RenderParameters {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the RenderParameters is null.
     */
    public RenderParametersWrapper(RenderParameters wrapped) {
@@ -58,7 +58,7 @@ public class RenderParametersWrapper extends PortletParametersWrapper implements
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the RenderParameters is null.
     */
    public void setWrapped(RenderParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/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 19c5051..2ecef38 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderRequestWrapper.java
@@ -30,7 +30,7 @@ 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.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/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 b4fbe71..a48af0b 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
@@ -32,7 +32,7 @@ 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 ((RenderResponse)response).
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java
index 5c54a09..c07b21f 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/RenderURLWrapper.java
@@ -25,7 +25,7 @@ import javax.portlet.RenderURL;
  * <div class="changed_added_3_0">
  * The <code>RenderURLWrapper</code> provides a convenient 
  * implementation of the <code>RenderURL</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -36,7 +36,7 @@ import javax.portlet.RenderURL;
 public class RenderURLWrapper extends PortletURLWrapper implements RenderURL {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the RenderURL is null.
     */
    public RenderURLWrapper(RenderURL wrapped) {
@@ -57,7 +57,7 @@ public class RenderURLWrapper extends PortletURLWrapper implements RenderURL {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the RenderURL is null.
     */
    public void setWrapped(RenderURL wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java
index 57a8752..964b428 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceParametersWrapper.java
@@ -26,7 +26,7 @@ import javax.portlet.ResourceParameters;
  * <div class="changed_added_3_0">
  * The <code>ResourceParametersWrapper</code> provides a convenient 
  * implementation of the <code>ResourceParameters</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -37,7 +37,7 @@ import javax.portlet.ResourceParameters;
 public class ResourceParametersWrapper extends PortletParametersWrapper implements ResourceParameters {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ResourceParameters is null.
     */
    public ResourceParametersWrapper(ResourceParameters wrapped) {
@@ -58,7 +58,7 @@ public class ResourceParametersWrapper extends PortletParametersWrapper implemen
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ResourceParameters is null.
     */
    public void setWrapped(ResourceParameters wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/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 f10284c..5ce2388 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
@@ -33,7 +33,7 @@ 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.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/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 ca2d129..42fa22a 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java
@@ -32,7 +32,7 @@ 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 ((ResourceResponse)response).
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped response object.
  *

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java
index 237a5bf..894b65f 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/ResourceURLWrapper.java
@@ -26,7 +26,7 @@ import javax.portlet.ResourceURL;
  * <div class="changed_added_3_0">
  * The <code>ResourceURLWrapper</code> provides a convenient 
  * implementation of the <code>ResourceURL</code> interface 
- * that can be subclassed by developers wishing to adapt the request.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped request object.
  * </div>
@@ -37,7 +37,7 @@ import javax.portlet.ResourceURL;
 public class ResourceURLWrapper extends BaseURLWrapper implements ResourceURL {
    
    /**
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ResourceURL is null.
     */
    public ResourceURLWrapper(ResourceURL wrapped) {
@@ -58,7 +58,7 @@ public class ResourceURLWrapper extends BaseURLWrapper implements ResourceURL {
    /**
     * Sets the wrapped object.
     * 
-    * @param the wrapped object to set.
+    * @param wrapped   the wrapped object to set.
     * @throws java.lang.IllegalArgumentException   if the ResourceURL is null.
     */
    public void setWrapped(ResourceURL wrapped) {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java b/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
index 94568d5..174755e 100644
--- a/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
+++ b/portlet-api/src/main/java/javax/portlet/filter/StateAwareResponseWrapper.java
@@ -34,7 +34,7 @@ import javax.xml.namespace.QName;
  * <div class="changed_added_3_0">
  * The <code>StateAwareResponseWrapper</code> provides a convenient 
  * implementation of the <code>StateAwareResponse</code> interface 
- * that can be subclassed by developers wishing to adapt the Response.
+ * that can be subclassed by developers.
  * This class implements the Wrapper or Decorator pattern. 
  * Methods default to calling through to the wrapped Response object.
  * </div>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/javadoc/overview.html b/portlet-api/src/main/javadoc/overview.html
index 25ab44b..661cb10 100644
--- a/portlet-api/src/main/javadoc/overview.html
+++ b/portlet-api/src/main/javadoc/overview.html
@@ -5,7 +5,11 @@
   </HEAD>
   <BODY>
     This document provides the interface descriptions for the JSR 362 Portlet Specification 3.0 Working Document.
-    <P>The interfaces described here are not normative and are subject to change at any time.</P>
+    The interfaces described here are not normative and are subject to change at any time.
+    <p>
+    The portlet hub JavaScript API documentation can be found
+    <a href="../jsdoc/index.html" target="_top">here</a>.
+    </p>
     <p>Color coding for description changes in Version 3.0:
     <span class="changed_modified_3_0">Changed text</span> ::  
     <span class="changed_added_3_0">Added text</span> :: 
@@ -16,6 +20,183 @@
     <!-- change class below to "indexContainer" to activate color changebars in the change history -->
     <div class="indexContainer-not">
     <ul>
+    <li>
+    20160125:
+    Added clarification to 
+    {@link javax.portlet.PortletResponse PortletResponse} addProperty and setProperty 
+    method descriptions.
+    Removed {@link javax.portlet.BaseURL BaseURL} getAuthenticated and setAuthenticated methods.
+    Added wrappers according to 
+    <a href="https://java.net/jira/browse/PORTLETSPEC3-62">PORTLETSPEC3-62</a>,
+    (see {@link javax.portlet.filter filter package}).
+    Update following annotations for consistency with spec & RI:
+    {@link javax.portlet.annotations.DestroyMethod DestroyMethod},
+    {@link javax.portlet.annotations.EventMethod EventMethod},
+    {@link javax.portlet.annotations.HeaderMethod HeaderMethod},
+    {@link javax.portlet.annotations.InitMethod InitMethod},
+    {@link javax.portlet.annotations.PortletSessionScoped PortletSessionScoped}.
+    Added {@link javax.portlet.annotations.PortletRequestScoped PortletRequestScoped} annotation.
+    </li>
+    <li>
+    20151208: 
+    Several changes to portlet annotations to improve consistency with respect to the portlet
+    deployment descriptor. Updated classes:
+    {@link javax.portlet.annotations.InitParameter InitParameter},
+    {@link javax.portlet.annotations.PortletConfiguration PortletConfiguration},
+    {@link javax.portlet.annotations.PortletRequestFilter PortletRequestFilter},
+    {@link javax.portlet.annotations.RuntimeOption RuntimeOption},
+    {@link javax.portlet.annotations.SecurityRoleRef SecurityRoleRef},
+    {@link javax.portlet.annotations.Supports Supports}.
+    </li>
+    <li>
+    20151005: 
+    Added annotations and interfaces for conditional dispatching: 
+    {@link javax.portlet.ConditionalDispatcher ConditionalDispatcher},
+    {@link javax.portlet.MethodToken MethodToken},
+    and 
+    {@link javax.portlet.annotations.ConditionalDispatchMethod ConditionalDispatchMethod}.
+    Updated 
+    {@link javax.portlet.annotations.HeaderMethod HeaderMethod}, 
+    {@link javax.portlet.annotations.RenderMethod RenderMethod}, and 
+    {@link javax.portlet.annotations.ServeResourceMethod ServeResourceMethod}.
+    </li>
+    <li>
+    20150930: 
+    Added 
+    {@link javax.portlet.filter.HeaderFilterChain HeaderFilterChain}
+    and updated 
+    {@link javax.portlet.filter.HeaderFilter HeaderFilter} to use it.
+    </li>
+    <li>
+    20150923: 
+    Added method annotations 
+    {@link javax.portlet.annotations.InitMethod}, and
+    {@link javax.portlet.annotations.DestroyMethod}.
+    Added filter and wrappers for header phase. Added new wrappers
+    for requests and responses not yet wrapped and modified
+    existing wrappers to use them. New classes:
+    {@link javax.portlet.filter.ClientDataRequestWrapper},
+    {@link javax.portlet.filter.HeaderFilter},
+    {@link javax.portlet.filter.HeaderRequestWrapper},
+    {@link javax.portlet.filter.HeaderResponseWrapper},
+    {@link javax.portlet.filter.MimeResponseWrapper}, and
+    {@link javax.portlet.filter.StateAwareResponseWrapper}.
+    Modified classes:
+    {@link javax.portlet.filter.ActionRequestWrapper},
+    {@link javax.portlet.filter.ActionResponseWrapper},
+    {@link javax.portlet.filter.RenderRequestWrapper},
+    {@link javax.portlet.filter.RenderResponseWrapper},
+    {@link javax.portlet.filter.EventRequestWrapper},
+    {@link javax.portlet.filter.EventResponseWrapper},
+    {@link javax.portlet.filter.PortletRequestWrapper},
+    {@link javax.portlet.filter.PortletResponseWrapper},
+    {@link javax.portlet.filter.ResourceRequestWrapper}, and
+    {@link javax.portlet.filter.ResourceResponseWrapper}.
+    </li>
+    <li>
+    20150922: 
+    Added interfaces and annotations for conditional dispatching.
+    Added classes:
+    {@link javax.portlet.MethodToken},
+    {@link javax.portlet.ConditionalDispatcher}, and
+    {@link javax.portlet.annotations.ConditionalDispatchMethod}.
+    </li>
+    <li>
+    20150921: Modified annotation classes to conform to latest spec draft.
+    Added dedicated HeaderRequest and HeaderResponse interfaces to allow portlets
+    to add response headers and generate markup for the overall portal 
+    response document <code>HEAD</code> section.
+    Deprecated {@link javax.portlet.RenderResponse#setTitle RenderResponse#setTitle}
+    since it is more appropriate on the HeaderResponse object.
+    Added classes:
+    {@link javax.portlet.HeaderRequest},
+    {@link javax.portlet.HeaderResponse}, and
+    {@link javax.portlet.HeaderPortlet}.
+    Modified classes:
+    {@link javax.portlet.annotations.RenderMethod},
+    {@link javax.portlet.annotations.HeaderMethod}, and
+    {@link javax.portlet.annotations.ServeResourceMethod}.
+    </li>
+    <li>
+    20150911: Modified and added annotation classes in order to allow complete
+    portlet application configuration and portlet configuration through annotations.
+    Added classes:
+    {@link javax.portlet.annotations.UserAttribute},
+    {@link javax.portlet.annotations.EventDefinition},
+    {@link javax.portlet.annotations.PortletApplication},
+    {@link javax.portlet.annotations.PortletConfigurations},
+    {@link javax.portlet.annotations.PublicRenderParameterDefinition}, and
+    {@link javax.portlet.annotations.SecurityRoleRef}.
+    Modified classes:
+    {@link javax.portlet.annotations.ActionMethod},
+    {@link javax.portlet.annotations.CustomPortletMode},
+    {@link javax.portlet.annotations.CustomWindowState},
+    {@link javax.portlet.annotations.Dependency},
+    {@link javax.portlet.annotations.EventMethod},
+    {@link javax.portlet.annotations.PortletConfiguration},
+    {@link javax.portlet.annotations.PortletQName},
+    {@link javax.portlet.annotations.PortletStateScoped},
+    {@link javax.portlet.annotations.Preference}, and
+    {@link javax.portlet.annotations.Supports}.
+    </li>
+    <li>
+    20150907: Modified classes for configuration through annotations. 
+    Added class {@link javax.portlet.annotations.PortletConfigurations} to allow 
+    for configuration of multiple portlets within a single annotation.
+    </li>
+    <li>20150817: Fixed some inconsistencies associated with the custom CDI scope annotations.  
+    Changed classes:
+    {@link javax.portlet.PortletURL#setBeanParameter PortletURL.setBeanParameter}.
+    Updated annotations:
+    {@link javax.portlet.annotations.PortletSessionScoped} and
+    {@link javax.portlet.annotations.URLFactory}.
+    </li>
+    <li>20150812: Update for 
+    <a href="https://java.net/jira/browse/PORTLETSPEC3-56">PORTLETSPEC3-56</a>,
+    <a href="https://java.net/jira/browse/PORTLETSPEC3-55">PORTLETSPEC3-55</a>, and
+    <a href="https://java.net/jira/browse/PORTLETSPEC3-49">PORTLETSPEC3-49</a>.
+    Changed classes:
+    {@link javax.portlet.MimeResponse.Copy}.
+    Added method:
+    {@link javax.portlet.ActionResponse#getRedirectURL ActionResponse.getRedirectURL()}.
+    Updated annotations:
+    {@link javax.portlet.annotations.HeaderMethod},
+    {@link javax.portlet.annotations.RenderMethod}, and
+    {@link javax.portlet.annotations.ServeResourceMethod}.
+    </li>
+    <li>20150806: Update for 
+    <a href="https://java.net/jira/browse/PORTLETSPEC3-54"> 
+    PORTLETSPEC3-54
+    </a>
+    Add Configuration Annotations for Custom Portlet Mode and Window State.
+    Changed class:
+    {@link javax.portlet.annotations.PortletConfiguration}.
+    Added annotation classes:
+    {@link javax.portlet.annotations.Supports},
+    {@link javax.portlet.annotations.CustomPortletMode},
+    {@link javax.portlet.annotations.CustomWindowState}.
+    </li>
+    <li>20150629: Added API proposal for injectable bean portlet objects. See:
+    {@link javax.portlet.annotations Annotations package info file}.
+    </li>
+    <li>20150618: Added API proposal for an annotation-based configuration interface. See:
+    {@link javax.portlet.annotations Annotations package info file}.
+    </li>
+    <li>20150225: Update for PORTLETSPEC3-50: Updated methods
+    {@link javax.portlet.MimeResponse#createRenderURL MimeResponse.createRenderURL())},
+    {@link javax.portlet.MimeResponse#createActionURL MimeResponse.createActionURL())},
+    {@link javax.portlet.MutablePortletParameters#set MutablePortletParameters.set()},
+    {@link javax.portlet.MutablePortletParameters#add MutablePortletParameters.add()},
+    {@link javax.portlet.PortletURLGenerationListener#filterRenderURL PortletURLGenerationListener.filterRenderURL()},
+    {@link javax.portlet.PortletURLGenerationListener#filterActionURL PortletURLGenerationListener.filterActionURL()}.
+    Added method 
+    {@link javax.portlet.PortletParameters#size PortletParameters.size()}.
+    See 
+    <a href="https://java.net/projects/portletspec3/pages/PortletConfiguration#PORTLETSPEC3-50"> 
+    PORTLETSPEC3-50
+    </a>
+    for discussion.
+    </li>
     <li>20150202: Updated PORTLETSPEC3-18: Updated methods
     {@link javax.portlet.PortletConfig#getPortletModes PortletConfig.getPortletModes(String)} and
     {@link javax.portlet.PortletConfig#getWindowStates PortletConfig.getWindowStates(String)}.
@@ -37,7 +218,7 @@
     <a href="../jsdoc/PortletInit.html#newParameters">newParameters</a>, 
     <a href="../jsdoc/PortletInit.html#newState">newState</a>. 
     <br>
-    Added {@link javax.portlet.ResourceRequest#getPageState ResourceRequest#getPageState()} method
+    Added {@link javax.portlet.ResourceRequest#PAGE_STATE ResourceRequest#PAGE_STATE} constant
     in support of the Portlet Hub partial action processing sequence.
     </li>
     <li>20140603: Resolved PORTLETSPEC3-43: Renamed some methods to reduce redundancy. See:
@@ -95,23 +276,21 @@
     <li>20130829: PORTLETSPEC3-32: Changes in public render parameter handling on action URL. See
     method descriptions 
     {@link javax.portlet.MimeResponse#createActionURL() createActionURL()} and
-    {@link javax.portlet.MimeResponse#createActionURL(ParameterCopyOption) createActionURL(ParameterCopyOption)}.
+    {@link javax.portlet.MimeResponse#createActionURL(Copy) createActionURL(Copy)}.
     See updated spec description
     <a href="https://java.net/projects/portletspec3/pages/PortletURLs#PORTLETSPEC3-32"> 
     portlet URLs
     </a>.
     </li>
     <li>20130829: PORTLETSPEC3-30: Added new URL create methods to MimeResponse:
-    {@link javax.portlet.MimeResponse#createRenderURL(ParameterCopyOption) createRenderURL(ParameterCopyOption)} and
-    {@link javax.portlet.MimeResponse#createActionURL(ParameterCopyOption) createActionURL(ParameterCopyOption)}.
+    {@link javax.portlet.MimeResponse#createRenderURL(Copy) createRenderURL(Copy)} and
+    {@link javax.portlet.MimeResponse#createActionURL(Copy) createActionURL(Copy)}.
     Updated 
     {@link javax.portlet.filter.RenderResponseWrapper RenderResponseWrapper} and
     {@link javax.portlet.filter.ResourceResponseWrapper ResourceResponseWrapper}
     accordingly.
     </li>
     <li>20130828: PORTLETSPEC3-13: Added several methods to BaseURL:
-    {@link javax.portlet.BaseURL#setAuthenticated setAuthenticated},
-    {@link javax.portlet.BaseURL#getAuthenticated getAuthenticated},
     {@link javax.portlet.RenderURL#setFragmentIdentifier setFragmentIdentifier} and 
     {@link javax.portlet.RenderURL#getFragmentIdentifier getFragmentIdentifier}.
     See 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/5fb26a1d/portlet-api/src/main/javadoc/portlet-api.css
----------------------------------------------------------------------
diff --git a/portlet-api/src/main/javadoc/portlet-api.css b/portlet-api/src/main/javadoc/portlet-api.css
index 66a0d30..0861e7e 100644
--- a/portlet-api/src/main/javadoc/portlet-api.css
+++ b/portlet-api/src/main/javadoc/portlet-api.css
@@ -509,10 +509,13 @@ h1.hidden {
 /* the href with the caret makes the links in the overview document work. */
 /* the href with exact file specifier makes the links in the package lists work. */
 
+.indexContainer a[href*="BaseURL.html"],
 .indexContainer a[href*="PortletConfig.html"],
 .indexContainer a[href*="PortletPreferences.html"],
 .indexContainer a[href*="GenericPortlet.html"],
 .indexContainer a[href*="ActionRequest.html"],
+.indexContainer a[href*="ActionResponse.html"],
+.indexContainer a[href*="PortletResponse.html"],
 .indexContainer a[href*="PortletRequest.html"],
 .indexContainer a[href*="PortletURL.html"],
 .indexContainer a[href*="PortletMode.html"],
@@ -521,7 +524,6 @@ h1.hidden {
 .indexContainer a[href*="RenderResponse.html"],
 .indexContainer a[href*="ResourceRequest.html"],
 .indexContainer a[href*="PortletSession.html"],
-.indexContainer a[href*="BaseURL.html"],
 .indexContainer a[href*="StateAwareResponse.html"],
 .indexContainer a[href*="EventResponse.html"],
 .indexContainer a[href*="MimeResponse.html"],
@@ -529,10 +531,15 @@ h1.hidden {
 .indexContainer a[href*="ResourceResponse.html"],
 .indexContainer a[href*="ActionRequestWrapper.html"],
 .indexContainer a[href*="ActionResponseWrapper.html"],
+.indexContainer a[href*="EventRequestWrapper.html"],
 .indexContainer a[href*="EventResponseWrapper.html"],
 .indexContainer a[href*="PortletRequestWrapper.html"],
+.indexContainer a[href*="PortletResponseWrapper.html"],
+.indexContainer a[href*="RenderRequestWrapper.html"],
+.indexContainer a[href*="RenderResponseWrapper.html"],
 .indexContainer a[href*="ResourceRequestWrapper.html"],
 .indexContainer a[href*="ResourceResponseWrapper.html"],
+.indexContainer a[href*="RenderRequestWrapper.html"]
 .indexContainer a[href*="RenderResponseWrapper.html"]
 { 
    cursor: url(resources/changed_modified_3_0_cursor.png), auto;
@@ -544,9 +551,85 @@ h1.hidden {
 
 /* List of added files */
 
+.indexContainer a[href*="ActionMethod.html"],
+.indexContainer a[href*="ActionParam.html"],
+.indexContainer a[href*="BeanPortlet.html"],
+.indexContainer a[href*="ClientDataRequestWrapper.html"],
+.indexContainer a[href*="ConditionalDispatcher.html"],
+.indexContainer a[href*="ConditionalDispatchMethod.html"],
+.indexContainer a[href*="ContentTypeSupport.html"],
+.indexContainer a[href*="ContextPath.html"],
+.indexContainer a[href*="Dependency.html"],
+.indexContainer a[href*="DestroyMethod.html"],
+.indexContainer a[href*="EventMethod.html"],
+.indexContainer a[href*="HeaderFilter.html"],
+.indexContainer a[href*="HeaderFilterChain.html"],
+.indexContainer a[href*="HeaderRequest.html"],
+.indexContainer a[href*="HeaderRequestWrapper.html"],
+.indexContainer a[href*="HeaderResponse.html"],
+.indexContainer a[href*="HeaderResponseWrapper.html"],
+.indexContainer a[href*="HeaderPortlet.html"],
+.indexContainer a[href*="HeaderMethod.html"],
+.indexContainer a[href*="InitMethod.html"],
+.indexContainer a[href*="InitParameter.html"],
+.indexContainer a[href*="RuntimeOption.html"],
+.indexContainer a[href*="LocaleString.html"],
+.indexContainer a[href*="package-info.html"],
+.indexContainer a[href*="MethodToken.html"],
+.indexContainer a[href*="MimeResponseWrapper.html"],
+.indexContainer a[href*="Namespace.html"],
+.indexContainer a[href*="PortletApplication.html"],
+.indexContainer a[href*="PortletConfiguration.html"],
+.indexContainer a[href*="PortletConfigurations.html"],
+.indexContainer a[href*="EventDefinition.html"],
+.indexContainer a[href*="PortletQName.html"],
+.indexContainer a[href*="PortletRequestFilter.html"],
+.indexContainer a[href*="PortletRequestScoped.html"],
+.indexContainer a[href*="PortletResources.html"],
+.indexContainer a[href*="PortletSerializable.html"],
+.indexContainer a[href*="PortletSessionScoped.html"],
+.indexContainer a[href*="PortletStateScoped.html"],
+.indexContainer a[href*="PortletListener.html"],
+.indexContainer a[href*="PortletListener.URLType.html"],
+.indexContainer a[href*="Preference.html"],
+.indexContainer a[href*="PreferencesValidator.html"],
+.indexContainer a[href*="PublicRenderParameterDefinition.html"],
+.indexContainer a[href*="RenderMethod.html"],
+.indexContainer a[href*="RenderParam.html"],
+.indexContainer a[href*="ResourceParam.html"],
+.indexContainer a[href*="ServeResourceMethod.html"],
+.indexContainer a[href*="SecurityRoleRef.html"],
+.indexContainer a[href*="StateAwareResponseWrapper.html"],
+.indexContainer a[href*="URLFactory.html"],
+.indexContainer a[href*="UserAttribute.html"],
+.indexContainer a[href*="WindowId.html"],
+.indexContainer a[href*="CustomPortletMode.html"],
+.indexContainer a[href*="CustomWindowState.html"],
+.indexContainer a[href*="Supports.html"],
+
+.indexContainer a[href*="ActionParametersWrapper.html"],
+.indexContainer a[href*="ActionURLWrapper.html"],
+.indexContainer a[href*="BaseURLWrapper.html"],
+.indexContainer a[href*="MutableActionParametersWrapper.html"],
+.indexContainer a[href*="MutablePortletParametersWrapper.html"],
+.indexContainer a[href*="MutablePortletStateWrapper.html"],
+.indexContainer a[href*="MutableRenderParametersWrapper.html"],
+.indexContainer a[href*="MutableResourceParametersWrapper.html"],
+.indexContainer a[href*="PortletConfigWrapper.html"],
+.indexContainer a[href*="PortletContextWrapper.html"],
+.indexContainer a[href*="PortletParametersWrapper.html"],
+.indexContainer a[href*="PortletRequestDispatcherWrapper.html"],
+.indexContainer a[href*="PortletSessionWrapper.html"],
+.indexContainer a[href*="PortletStateWrapper.html"],
+.indexContainer a[href*="PortletURLWrapper.html"],
+.indexContainer a[href*="RenderParametersWrapper.html"],
+.indexContainer a[href*="RenderURLWrapper.html"],
+.indexContainer a[href*="ResourceParametersWrapper.html"],
+.indexContainer a[href*="ResourceURLWrapper.html"],
+
 .indexContainer a[href*="ActionURL.html"],
 .indexContainer a[href*="RenderURL.html"],
-.indexContainer a[href*="MimeResponse.ParameterCopyOption.html"],
+.indexContainer a[href*="MimeResponse.Copy.html"],
 .indexContainer a[href*="Mutable.html"],
 .indexContainer a[href*="MutablePortletParameters.html"],
 .indexContainer a[href*="PortletParameters.html"],
@@ -565,3 +648,27 @@ h1.hidden {
    border-left-width:thin; border-right:none;
    border-top:none; border-bottom:none; border-color:green 
 }
+
+
+.codebox {
+   font-family: 'Courier New', Courier, monospace; 
+   margin: 0px 4px 8px 4px; 
+   padding: 3px; 
+   border:thin solid blue; 
+   min-height: 10px; 
+   background-color: #CFF;
+   display: inline-block;
+}
+
+table.ovtable {
+    border-collapse: collapse;
+}
+
+table.ovtable th, td {
+    border: 1px solid black;
+    padding: 2px 3px 2px 3px;
+}
+
+ul.nospace {
+   margin: 5px 0px;
+}