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 uk...@apache.org on 2007/07/26 11:05:40 UTC

svn commit: r559761 [2/3] - in /portals/pluto/branches/1.1-286-COMPATIBILITY: ./ pluto-container/src/main/java/org/apache/pluto/core/ pluto-container/src/main/java/org/apache/pluto/internal/impl/ pluto-container/src/main/java/org/apache/pluto/wrappers/...

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletConfig.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletConfig.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletConfig.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletConfig.java Thu Jul 26 02:05:35 2007
@@ -124,13 +124,18 @@
 
   /**
    * Returns the names of the public render parameters supported by the portlet
-   * as an <code>Enumeration</code> of String objects, or an empty <code>Enumeration</code> if the 
-   * portlet has no public render parameters.    
+   * as an <code>Enumeration</code> of <code>String</code> objects, 
+   * or an empty <code>Enumeration</code> if the 
+   * portlet has not defined public render parameters.
+   * <p>
+   * Public render parameters are defined in the portlet deployment descriptor
+   * with the <code>supported-public-render-parameter</code> element.    
    *
    * @return		an <code>Enumeration</code> of <code>String</code> 
    *			objects containing the names of the public 
    *			render parameters, or an empty <code>Enumeration</code> if the 
-   *                    portlet does not define any public render parameters.
+   *                    portlet has not defined support for any public render parameters
+   *                    in the portlet deployment descriptor.
    * @since 2.0 
    */
 
@@ -138,19 +143,78 @@
   
   
   /**
-   * Returns the default event namespace.
+   * Returns the default namespace for events and public render parameters.
    * This namespace is defined in the portlet deployment descriptor
-   * with the <code>default-event-namespace</code> element.
+   * with the <code>default-namespace</code> element.
    * <p>
    * If no default namespace is defined in the portlet deployment
    * descriptor this methods returns the XML default namespace 
    * <code>XMLConstants.NULL_NS_URI</code>.
    * 
-   * @return the default event namespace defined in the portlet deployment
+   * @return the default namespace defined in the portlet deployment
    *         descriptor, or <code>XMLConstants.NULL_NS_URI</code> is non is
    *         defined.
    * @since 2.0
    */
-  public java.lang.String getDefaultEventNamespace();
+  public java.lang.String getDefaultNamespace();
+  
+  
+  /**
+   * Returns the QNames of the publishing events supported by the portlet
+   * as an <code>Enumeration</code> of <code>QName</code> objects, 
+   * or an empty <code>Enumeration</code> if the 
+   * portlet has not defined any publishing events.    
+   * <p>
+   * Publishing events are defined in the portlet deployment descriptor
+   * with the <code>supported-publishing-event</code> element.    
+   * <p>
+   * Note that this call does not return any events published that have not been
+   * declared in the deployment descriptor as supported.
+   * 
+   * @return		an <code>Enumeration</code> of <code>QName</code> 
+   *			objects containing the names of the publishing events, 
+   *			or an empty <code>Enumeration</code> if the 
+   *                    portlet has not defined any support for publishing events in
+   *                    the deployment descriptor.
+   * @since 2.0 
+   */
+  public java.util.Enumeration<javax.xml.namespace.QName> getPublishingEventQNames();
+
+  
+  /**
+   * Returns the QNames of the processing events supported by the portlet
+   * as an <code>Enumeration</code> of <code>QName</code> objects, 
+   * or an empty <code>Enumeration</code> if the 
+   * portlet has not defined any processing events.    
+   * <p>
+   * Processing events are defined in the portlet deployment descriptor
+   * with the <code>supported-processing-event</code> element.    
+   * 
+   * @return		an <code>Enumeration</code> of <code>QName</code> 
+   *			objects containing the names of the processing events, 
+   *			or an empty <code>Enumeration</code> if the 
+   *                    portlet has not defined any support for processing events in
+   *                    the deployment descriptor.
+   * @since 2.0 
+   */
+  public java.util.Enumeration<javax.xml.namespace.QName> getProcessingEventQNames();
+
+  /**
+   * Returns the locales supported by the portlet
+   * as an <code>Enumeration</code> of <code>Locale</code> objects, 
+   * or an empty <code>Enumeration</code> if the 
+   * portlet has not defined any supported locales.    
+   * <p>
+   * Supported locales are defined in the portlet deployment descriptor
+   * with the <code>supported-locale</code> element.    
+   * 
+   * @return		an <code>Enumeration</code> of <code>Locale</code> 
+   *			objects containing the supported locales, 
+   *			or an empty <code>Enumeration</code> if the 
+   *                    portlet has not defined any supported locales in
+   *                    the deployment descriptor.
+   * @since 2.0
+   */
+  public java.util.Enumeration<java.util.Locale> getSupportedLocales();
 }
 

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletContext.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletContext.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletContext.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletContext.java Thu Jul 26 02:05:35 2007
@@ -466,10 +466,15 @@
    * Returns the container container runtime options
    * and values supported by this portlet container.
    * <p>
-   * The portlet can set portlet level container runtime
+   * The portlet can set container runtime
    * options in the <code>portlet.xml</code> via the
    * <code>container-runtime-option</code> element with a name and a
    * value on the application and portlet level.<br>
+   * If a container runtime option is set on the portlet application 
+   * level and on the portlet level with the same name the setting 
+   * on the portlet level takes precedence and overwrites the one 
+   * set on the portal application level.
+   * <p>
    * The map returned from this method will provide the subset the
    * portlet container supports of the options the portlet has specified 
    * in the <code>portlet.xml</code>.

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequest.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequest.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequest.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequest.java Thu Jul 26 02:05:35 2007
@@ -30,6 +30,8 @@
 
 package javax.portlet;
 
+import java.util.Locale;
+
 
 /**
  * The <CODE>PortletRequest</CODE> defines the base interface to provide client
@@ -832,7 +834,7 @@
    *           the portal will accept content for this request
    */
 
-  public java.util.Enumeration getLocales();
+  public java.util.Enumeration<Locale> getLocales();
 
 
   /**
@@ -877,7 +879,7 @@
    * @since 2.0
    * @return  the portlet window ID
    */
-  public String getWindowId();
+  public String getWindowID();
   
   
   /**
@@ -891,6 +893,46 @@
    *          <code>null</code> if no cookies exist.
    * @see PortletResponse#addProperty(Cookie) 
    */
-  javax.servlet.http.Cookie[] getCookies();
+  public javax.servlet.http.Cookie[] getCookies();
+  
+  /**
+   * Returns a <code>Map</code> of the private parameters of this request.
+   * Private parameters are not shared with other portlets or components.  
+   * The returned parameters are "x-www-form-urlencoded" decoded.
+   * <p>
+   * The values in the returned <code>Map</code> are from type
+   * String array (<code>String[]</code>).
+   * <p>
+   * If no private parameters exist this method returns an empty <code>Map</code>.
+   *
+   * @since 2.0
+   * @return     an immutable <code>Map</code> containing private parameter names as 
+   *             keys and private parameter values as map values, or an empty <code>Map</code>
+   *             if no private parameters exist. The keys in the parameter
+   *             map are of type String. The values in the parameter map are of type
+   *             String array (<code>String[]</code>).
+   */
+  public java.util.Map<String, String[]> getPrivateParameterMap();
+  
+  /**
+   * Returns a <code>Map</code> of the public parameters of this request.
+   * Public parameters may be shared with other portlets or components and
+   * defined in the portlet deployment descriptor with the 
+   * <code>supported-public-render-parameter</code> element.  
+   * The returned parameters are "x-www-form-urlencoded" decoded.
+   * <p>
+   * The values in the returned <code>Map</code> are from type
+   * String array (<code>String[]</code>).
+   * <p>
+   * If no public parameters exist this method returns an empty <code>Map</code>.
+   *
+   * @since 2.0
+   * @return     an immutable <code>Map</code> containing public parameter names as 
+   *             keys and public parameter values as map values, or an empty <code>Map</code>
+   *             if no public parameters exist. The keys in the parameter
+   *             map are of type String. The values in the parameter map are of type
+   *             String array (<code>String[]</code>).
+   */
+  public java.util.Map<String, String[]> getPublicParameterMap();
 
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java Thu Jul 26 02:05:35 2007
@@ -50,7 +50,10 @@
      * <p>
      * The included servlet cannot set or change the response status code or set
      * headers; any attempt to make a change is ignored.
-     * 
+     * <p>
+     * This method is kept in order to provide backward compatability with
+     * version 1.0. Please use {@link #include(PortletRequest, PortletResponse)} instead
+     * of this method.
      * 
      * @param request
      *            a {@link RenderRequest} object that contains the client
@@ -71,7 +74,7 @@
      * @exception java.io.IOException
      *                if the included resource throws this exception
      * 
-     * @deprecated since 2.0, use {@link #include(PortletRequest, PortletResponse)} instead 
+     *  
      */
 
     public void include(RenderRequest request, RenderResponse response)

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletResponse.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletResponse.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletResponse.java Thu Jul 26 02:05:35 2007
@@ -48,6 +48,8 @@
 
 	/**
      * Adds a String property to an existing key to be returned to the portal.
+     * If there are no property values already associated with the key, 
+     * a new key is created.
      * <p>
      * This method allows response properties to have multiple values.
      * <p>
@@ -80,9 +82,9 @@
      * @return a portlet render URL
      * @throws java.lang.IllegalStateException
      *             if the cacheability level of the resource URL
-     *             triggering this <code>serveResource</code> call,
-     *             or one of the parent calls, have defined a stricter
-     *             cachability level.
+     *             triggering this <code>serveResource</code> call
+     *             is not <code>PAGE<code> and thus does not allow
+     *             for creating render URLs.
      */
 	public PortletURL createRenderURL() throws java.lang.IllegalStateException;
 
@@ -101,9 +103,9 @@
      * @return a portlet action URL
      * @throws java.lang.IllegalStateException
      *             if the cacheability level of the resource URL
-     *             triggering this <code>serveResource</code> call,
-     *             or one of the parent calls, have defined a stricter
-     *             cachability level.
+     *             triggering this <code>serveResource</code> call
+     *             is not <code>PAGE<code> and thus does not allow
+     *             for creating action URLs.
      */
 	public PortletURL createActionURL() throws java.lang.IllegalStateException;
 
@@ -118,11 +120,9 @@
      * The returned URL can be further extended by adding portlet-specific
      * parameters .
      * <p>
-     * The created URL will per default contain the current render request
-     * and supports markup that contain unrestricted <code>ResourceURLs</code>,
-     * <code>PortletURLs</code>, and <code>FragmentURLs</code>. This URL
-     * is equivalent to a resource URL created with 
-     * <code>createResourceURL(PAGE)</code>.
+     * The created URL will per default contain the current 
+     * cacheability setting of the parent resource. 
+     * If no parent resource is available, <code>PAGE</code> is the default.
      * 
      * @since 2.0
      * @return a portlet resource URL
@@ -214,4 +214,27 @@
 
     public void addProperty(javax.servlet.http.Cookie cookie);
 
+    /**
+     * Adds an XML DOM element property to the response.
+     * <p>
+     * If a DOM element with the provided key already exists
+     * the provided element will be stored in addition to the
+     * existing element under the same key.
+     * <p>
+     * If the element is <code>null</code> the key is removed from
+     * the response.
+     * <p>
+     * Properties can be used by portlets to provide vendor specific information
+     * to the portal.
+     *
+     * @param key
+     *            the key of the property to be returned to the portal
+     * @param  element
+     *            the XML DOM element to be added to the response
+     *
+     * @exception  java.lang.IllegalArgumentException
+     *                            if key is <code>null</code>.
+     * @since 2.0
+     */
+   void addProperty(String key, org.w3c.dom.Element element);
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletSession.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletSession.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletSession.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/PortletSession.java Thu Jul 26 02:05:35 2007
@@ -384,8 +384,8 @@
    * Returns a <code>Map</code> of the session attributes in
    * the portlet session scope.
    * <p>
-   * The values in the returned <code>Map</code> are from type
-   * String array (<code>String[]</code>).
+   * The keys are of type <code>String</code> and the values in the 
+   * eturned <code>Map</code> are from type <code>Object</code>.
    * <p>
    * If no session attributes exist this method returns an empty <code>Map</code>.
    *
@@ -393,17 +393,17 @@
    *             portlet session scope as keys and attribute values as map values, or an empty <code>Map</code>
    *             if no session attributes exist. The keys in the
    *             map are of type String, the values of type
-   *             String array (<code>String[]</code>).
+   *             Object.
    *  @since 2.0
    */
-  public Map<String, String[]> getMap();  
+  public Map<String, Object> getMap();  
 
   /** 
    * Returns a <code>Map</code> of the session attributes in
    * the given session scope.
    * <p>
-   * The values in the returned <code>Map</code> are from type
-   * String array (<code>String[]</code>).
+   * The keys are of type <code>String</code> and the values in the 
+   * eturned <code>Map</code> are from type <code>Object</code>.
    * <p>
    * If no session attributes exist this method returns an empty <code>Map</code>.
    *
@@ -413,10 +413,10 @@
    *             given scope as keys and attribute values as map values, or an empty <code>Map</code>
    *             if no session attributes exist. The keys in the
    *             map are of type String, the values of type
-   *             String array (<code>String[]</code>).
+   *             Object.
    *  @since 2.0
    */
-  public Map<String, String[]> getMap(int scope);  
+  public Map<String, Object> getMap(int scope);  
 
 }
 

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ProcessEvent.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ProcessEvent.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ProcessEvent.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ProcessEvent.java Thu Jul 26 02:05:35 2007
@@ -55,7 +55,7 @@
      * 
      * @return event QName.
      */
-    String qname();
+    String qname() default "";
     
     /**
      * Local part of the event name.
@@ -65,6 +65,6 @@
      * 
      * @return local part of the event name.
      */
-    String name();
+    String name() default "";
 
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/RenderResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/RenderResponse.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/RenderResponse.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/RenderResponse.java Thu Jul 26 02:05:35 2007
@@ -75,6 +75,6 @@
      *            empty enumeration.
      * @since 2.0
      */
-	public void setNextPossiblePortletModes(java.util.Enumeration<PortletMode> portletModes);
+	public void setNextPossiblePortletModes(java.util.Collection<PortletMode> portletModes);
 
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java Thu Jul 26 02:05:35 2007
@@ -87,6 +87,6 @@
      * @return  the resource ID set on the ResourceURL,or <code>null</code>
      *          if no resource ID was set on the URL. 
      */
-    String getResourceID();
+    public String getResourceID();
     
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/StateAwareResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/StateAwareResponse.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/StateAwareResponse.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/StateAwareResponse.java Thu Jul 26 02:05:35 2007
@@ -114,6 +114,9 @@
      * <p>
      * The given parameters do not need to be encoded prior to calling this
      * method.
+     * <p>
+     * The portlet should not modify the map any further after calling
+     * this method.
      * 
      * @param parameters
      *            Map containing parameter names for the render phase as keys
@@ -123,7 +126,7 @@
      * 
      * @exception java.lang.IllegalArgumentException
      *                if parameters is <code>null</code>, if any of the
-     *                key/values in the Map are <code>null</code>, if any of
+     *                keys in the Map are <code>null</code>, if any of
      *                the keys is not a String, or if any of the values is not a
      *                String array.
      * @exception java.lang.IllegalStateException
@@ -151,7 +154,7 @@
      *            value of the render parameter
      * 
      * @exception java.lang.IllegalArgumentException
-     *                if key or value are <code>null</code>.
+     *                if key is <code>null</code>.
      * @exception java.lang.IllegalStateException
      *                if the method is invoked after <code>sendRedirect</code>
      *                has been called.
@@ -201,12 +204,12 @@
      * 
      * @exception java.lang.IllegalArgumentException
      *                if name is <code>null</code>, the value is not
-     *                serializable, the value has not a valid JAXB binding, the
+     *                serializable, the value does not have a valid JAXB binding, the
      *                object type of the value is not the same as specified in
      *                the portlet deployment descriptor for this event name.
      * @since 2.0
      */
-	public void setEvent(javax.xml.namespace.QName name, Object value);
+	public void setEvent(javax.xml.namespace.QName name, java.io.Serializable value);
 
 	/**
      * Publishes an Event with the given payload in the default namespace.
@@ -229,75 +232,13 @@
      * 
      * @exception java.lang.IllegalArgumentException
      *                if name is <code>null</code>, the value is not
-     *                serializable, the value has not a valid JAXB binding, the
+     *                serializable, the value does not have a valid JAXB binding, the
      *                object type of the value is not the same as specified in
      *                the portlet deployment descriptor for this event name.
      * @since 2.0
      */
-	public void setEvent(String name, Object value);
-
-	/**
-     * Publishes an array of Events.
-     * <p>
-     * The events map must contain
-     * <code>javax.xml.namespace.QName, Object</code> value pairs. The
-     * <code>javax.xml.namespace.QName</code> value represents the event name
-     * and the <code>Object</code> value represents the event payload. The
-     * object types of the payload values must be compliant with the specified
-     * event types for the event types in the portlet deployment descriptor.
-     * <p>
-     * The values must have a valid JAXB binding and be serializable.
-     * <p>
-     * The order of the events in the map does not imply the order of the
-     * delivery of the events.
-     * 
-     * @param events
-     *            the events to publish, must not be <code>null</code>
-     * 
-     * @exception java.lang.IllegalArgumentException
-     *                if events is <code>null</code>, a name in
-     *                events is <code>null</code>, a payload in events is not
-     *                serializable, a payload in events has not a valid JAXB
-     *                binding, the object type of a payload is not the same as
-     *                specified in the portlet deployment descriptor for this
-     *                event name.
-     * @see #setEvent(javax.xml.namespace.QName, Object)
-     * @since 2.0
-     */
-	public void setEvents(java.util.Map<javax.xml.namespace.QName, Object> events);
+	public void setEvent(String name, java.io.Serializable value);
 
-	/**
-     * Publishes an array of Events in the default namespace.
-     * <p>
-     * The events map must contain
-     * <code>String, Object</code> value pairs. The
-     * <code>String</code> value represents the local part of the event name
-     * and the <code>Object</code> value represents the event payload. The namespace
-     * for the events is either taken from the <code>default-event-namespace</code> element
-     * in the portlet deployment descriptor, or if this element is not provided
-     * the XML default namespace XMLConstants.NULL_NS_URI is used. The
-     * object types of the payload values must be compliant with the specified
-     * event types for the event types in the portlet deployment descriptor.
-     * <p>
-     * The values must have a valid JAXB binding and be serializable.
-     * <p>
-     * The order of the events in the map does not imply the order of the
-     * delivery of the events.
-     * 
-     * @param events
-     *            the events to publish, must not be <code>null</code>
-     * 
-     * @exception java.lang.IllegalArgumentException
-     *                if events is <code>null</code>, a name in
-     *                events is <code>null</code>, a payload in events is not
-     *                serializable, a payload in events has not a valid JAXB
-     *                binding, the object type of a payload is not the same as
-     *                specified in the portlet deployment descriptor for this
-     *                event name.
-     * @see #setEvent(String, Object)
-     * @since 2.0
-     */
-	public void setDefaultNamspacedEvents(java.util.Map<String, Object> events);
 
 	/**
      * Returns a <code>Map</code> of the render parameters currently set on

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/WindowState.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/WindowState.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/WindowState.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/WindowState.java Thu Jul 26 02:05:35 2007
@@ -30,6 +30,8 @@
 
 package javax.portlet;
 
+import java.util.Locale;
+
 
 /**
  * The <CODE>WindowState</CODE> class represents
@@ -86,13 +88,13 @@
    * Upper case letters in the name are converted to
    * lower case letters.
    *
-   * @param name The name of the portlet mode
+   * @param name The name of the window state
    */
   public WindowState(String name) {
     if (name==null) {
       throw new IllegalArgumentException("WindowState name can not be NULL");
     }
-    _name = name.toLowerCase();
+    _name = name.toLowerCase(Locale.ENGLISH);
   }
 
   /**

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionFilter.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionFilter.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionFilter.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionFilter.java Thu Jul 26 02:05:35 2007
@@ -51,26 +51,8 @@
  * 
  * @since 2.0
  */
-public interface ActionFilter {
+public interface ActionFilter extends PortletFilter {
 
-    /**
-     * Called by the portlet container to indicate to a filter
-     * that it is being placed into service. The portlet container 
-     * calls the init method exactly once after instantiating the filter. 
-     * The init method must complete successfully before the filter 
-     * is asked to do any filtering work.
-     * <p>
-     * The portlet container cannot place the filter into service if the init method either
-     * <ul>
-     *   <li>throws a PortletException</li>
-     *   <li>does not return within a time period defined by the portlet container</li>
-     * </ul>
-     * 
-     * @param filterConfig    the filter configuration data defined 
-     *                        in the portlet deployment descriptor
-     * @throws PortletException  if an error occurs in the filter intialization
-     */
-    public void init(FilterConfig filterConfig) throws PortletException;
     
     /**
      * The <code>doFilter</code> method of the Filter is called by the 
@@ -133,20 +115,5 @@
                          FilterChain chain)
      throws IOException, PortletException;
     
-    /**
-     * Called by the portlet container to indicate to a filter that it is 
-     * being taken out of service. This method is only called once all threads 
-     * within the filter's <code>doFilter</code> method have exited or 
-     * after a timeout period has passed. 
-     * <p>
-     * After the portlet container calls this method, it will not call the 
-     * <code>doFilter</code> method again on this instance of the filter.
-     * <p>
-     * This method gives the filter an opportunity to clean up any resources 
-     * that are being held (for example, memory, file handles, threads) and 
-     * make sure that any persistent state is synchronized with the 
-     * filter's current state in memory.
-     */
-    public void destroy();
     
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionRequestWrapper.java Thu Jul 26 02:05:35 2007
@@ -34,18 +34,8 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
-import java.security.Principal;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.Map;
 
 import javax.portlet.ActionRequest;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletPreferences;
-import javax.portlet.PortletSession;
-import javax.portlet.WindowState;
-import javax.servlet.http.Cookie;
 
 /**
  * The <code>ActionRequestWrapper</code> provides a convenient 
@@ -57,18 +47,10 @@
  * @since 2.0
  * @see ActionRequest
  */
-public class ActionRequestWrapper implements ActionRequest {
+public class ActionRequestWrapper extends PortletRequestWrapper implements ActionRequest {
 
     ActionRequest request;
     
-    /** 
-     * Require having a request for constructing
-     * the wrapper.
-     *
-     */
-    private ActionRequestWrapper() {
-    }
-    
     /**
      * Creates an <code>ActionRequest</code> adaptor 
      * wrapping the given request object.
@@ -77,6 +59,7 @@
      * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
      */
     public ActionRequestWrapper(ActionRequest request) {
+        super(request);
         this.request = request;
     }
 
@@ -131,285 +114,6 @@
        request.setCharacterEncoding(enc);
     }
 
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAttribute(String name)</code> on the wrapped request object.
-     */
-    public Object getAttribute(String name) {
-        return request.getAttribute(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAttributeNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getAttributeNames() {
-        return request.getAttributeNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAuthType()</code> on the wrapped request object.
-     */
-    public String getAuthType() {
-        return request.getAuthType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getContextPath()</code> on the wrapped request object.
-     */
-    public String getContextPath() {
-        return request.getContextPath();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocale()</code> on the wrapped request object.
-     */
-    public Locale getLocale() {
-        return request.getLocale();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocales()</code> on the wrapped request object.
-     */
-    public Enumeration getLocales() {
-        return request.getLocales();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameter(String name)</code> on the wrapped request object.
-     */
-    public String getParameter(String name) {
-        return request.getParameter(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterMap()</code> on the wrapped request object.
-     */
-    public Map<String, String[]> getParameterMap() {
-        return request.getParameterMap();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getParameterNames() {
-        return request.getParameterNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterValues(name)</code> on the wrapped request object.
-     */
-    public String[] getParameterValues(String name) {
-        return request.getParameterValues(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortalContext()</code> on the wrapped request object.
-     */
-    public PortalContext getPortalContext() {
-        return request.getPortalContext();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletMode()</code> on the wrapped request object.
-     */
-    public PortletMode getPortletMode() {
-        return request.getPortletMode();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletSession()</code> on the wrapped request object.
-     */
-    public PortletSession getPortletSession() {
-        return request.getPortletSession();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletSession(create)</code> on the wrapped request object.
-     */
-    public PortletSession getPortletSession(boolean create) {
-        return request.getPortletSession(create);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPreferences()</code> on the wrapped request object.
-     */
-    public PortletPreferences getPreferences() {
-        return request.getPreferences();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getProperteis(name)</code> on the wrapped request object.
-     */
-    public Enumeration<String> getProperties(String name) {
-        return request.getProperties(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getProperty(name)</code> on the wrapped request object.
-     */
-    public String getProperty(String name) {
-        return request.getProperty(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPropertyNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getPropertyNames() {
-        return request.getPropertyNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getRemoteUser()</code> on the wrapped request object.
-     */
-    public String getRemoteUser() {
-        return request.getRemoteUser();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getRequestedSessionId()</code> on the wrapped request object.
-     */
-    public String getRequestedSessionId() {
-        return request.getRequestedSessionId();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getResponseContentType()</code> on the wrapped request object.
-     */
-    public String getResponseContentType() {
-        return request.getResponseContentType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getResponseContentTypes()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getResponseContentTypes() {
-        return request.getResponseContentTypes();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getScheme()</code> on the wrapped request object.
-     */
-    public String getScheme() {
-        return request.getScheme();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getServerName()</code> on the wrapped request object.
-     */
-    public String getServerName() {
-        return request.getServerName();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getServerPort()</code> on the wrapped request object.
-     */
-    public int getServerPort() {
-        return request.getServerPort();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getUserPrincipal()</code> on the wrapped request object.
-     */
-    public Principal getUserPrincipal() {
-        return request.getUserPrincipal();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWindowId()</code> on the wrapped request object.
-     */
-    public String getWindowId() {
-        return request.getWindowId();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWindowState()</code> on the wrapped request object.
-     */
-    public WindowState getWindowState() {
-        return request.getWindowState();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isPortletModeAllowed(mode)</code> on the wrapped request object.
-     */
-    public boolean isPortletModeAllowed(PortletMode mode) {
-        return request.isPortletModeAllowed(mode);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isRequestedSessionIdValid()</code> on the wrapped request object.
-     */
-    public boolean isRequestedSessionIdValid() {
-        return request.isRequestedSessionIdValid();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isSecure()</code> on the wrapped request object.
-     */
-    public boolean isSecure() {
-        return request.isSecure();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isUserInRole(role)</code> on the wrapped request object.
-     */
-    public boolean isUserInRole(String role) {
-        return request.isUserInRole(role);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isWindowStateAllowed(state)</code> on the wrapped request object.
-     */
-    public boolean isWindowStateAllowed(WindowState state) {
-        return request.isWindowStateAllowed(state);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>removeAttribute(name)</code> on the wrapped request object.
-     */
-    public void removeAttribute(String name) {
-        request.removeAttribute(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setAttribute(name, o)</code> on the wrapped request object.
-     */
-    public void setAttribute(String name, Object o) {
-        request.setAttribute(name, o);
-    }
 
     /**
      * Return the wrapped request object.
@@ -427,6 +131,9 @@
      * @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");
+
         this.request = request;
     }
 
@@ -438,11 +145,4 @@
         return request.getMethod();
     }
 
-    /**
-     *  The default behavior of this method is to call 
-     * <code>getCookies()</code> on the wrapped request object.
-     */
-    public Cookie[] getCookies() {
-    	return request.getCookies();
-    }
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java Thu Jul 26 02:05:35 2007
@@ -36,11 +36,8 @@
 import javax.portlet.ActionResponse;
 import javax.portlet.PortletMode;
 import javax.portlet.PortletModeException;
-import javax.portlet.PortletURL;
-import javax.portlet.ResourceURL;
 import javax.portlet.WindowState;
 import javax.portlet.WindowStateException;
-import javax.servlet.http.Cookie;
 import javax.xml.namespace.QName;
 
 /**
@@ -53,18 +50,10 @@
  * @since 2.0
  * @see ActionResponse
  */
-public class ActionResponseWrapper implements ActionResponse {
+public class ActionResponseWrapper extends PortletResponseWrapper implements ActionResponse {
 
    ActionResponse response;
     
-    /** 
-     * Require having a response for constructing
-     * the wrapper.
-     *
-     */
-    private ActionResponseWrapper() {
-    }
-    
     /**
      * Creates an <code>ActionResponse</code> adaptor 
      * wrapping the given response object.
@@ -73,7 +62,8 @@
      * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
      */
     public ActionResponseWrapper(ActionResponse response) {
-        this.response = response;
+    	super(response);
+    	this.response = response;
     }
 
     /**
@@ -88,20 +78,12 @@
      * The default behavior of this method is to call 
      * <code>setEvent(name, value)</code> on the wrapped response object.
      */
-    public void setEvent(QName name, Object value) {
+    public void setEvent(QName name, java.io.Serializable value) {
         response.setEvent(name, value);
     }
 
     /**
      * The default behavior of this method is to call 
-     * <code>setEvents(events)</code> on the wrapped response object.
-     */
-    public void setEvents(Map<javax.xml.namespace.QName, Object> events) {
-        response.setEvents(events);
-    }
-
-    /**
-     * The default behavior of this method is to call 
      * <code>setPortletMode(portletMode)</code> on the wrapped response object.
      */
     public void setPortletMode(PortletMode portletMode)
@@ -142,63 +124,7 @@
         response.setWindowState(windowState);
     }
 
-    /**
-     * The default behavior of this method is to call 
-     * <code>addProperty(key, value)</code> on the wrapped response object.
-     */
-    public void addProperty(String key, String value) {
-        response.addProperty(key, value);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>createActionURL()</code> on the wrapped response object.
-     */
-    public PortletURL createActionURL() {
-        return response.createActionURL();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>createRenderURL()</code> on the wrapped response object.
-     */
-    public PortletURL createRenderURL() {
-        return response.createRenderURL();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>createResourceURL</code> on the wrapped response object.
-     */
-    public ResourceURL createResourceURL() {
-        return response.createResourceURL();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>encodeURL(path)</code> on the wrapped response object.
-     */
-    public String encodeURL(String path) {
-        return response.encodeURL(path);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getNamespace()</code> on the wrapped response object.
-     */
-    public String getNamespace() {
-        return response.getNamespace();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setProperty(key, value)</code> on the wrapped response object.
-     */
-    public void setProperty(String key, String value) {
-        response.setProperty(key, value);
-    }
-
-    /**
+     /**
      * Return the wrapped response object.
      * 
      * @return the wrapped response
@@ -214,7 +140,10 @@
      * @throws java.lang.IllegalArgumentException   if the response is null.
      */
     public void setResponse(ActionResponse response) {
-        this.response = response;
+    	if ( response == null)
+    		throw new java.lang.IllegalArgumentException("Response is null");
+
+    	this.response = response;
     }
 
     /**
@@ -243,25 +172,9 @@
 
     /**
      *  The default behavior of this method is to call 
-     * <code>addProperty()</code> on the wrapped response object.
-     */
-    public void addProperty(Cookie cookie) {
-        response.addProperty(cookie);
-    }
-
-    /**
-     *  The default behavior of this method is to call 
-     * <code>setDefaultNamspacedEvents()</code> on the wrapped response object.
-     */
-	public void setDefaultNamspacedEvents(Map<String, Object> events) {
-		response.setDefaultNamspacedEvents(events);
-	}
-
-    /**
-     *  The default behavior of this method is to call 
      * <code>setEvent()</code> on the wrapped response object.
      */
-	public void setEvent(String name, Object value) {
+	public void setEvent(String name, java.io.Serializable value) {
 		response.setEvent(name, value);
 	}
 

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventFilter.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventFilter.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventFilter.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventFilter.java Thu Jul 26 02:05:35 2007
@@ -51,26 +51,8 @@
  * 
  * @since 2.0
  */
-public interface EventFilter {
+public interface EventFilter extends PortletFilter {
 
-    /**
-     * Called by the portlet container to indicate to a filter
-     * that it is being placed into service. The portlet container 
-     * calls the init method exactly once after instantiating the filter. 
-     * The init method must complete successfully before the filter 
-     * is asked to do any filtering work.
-     * <p>
-     * The portlet container cannot place the filter into service if the init method either
-     * <ul>
-     *   <li>throws a PortletException</li>
-     *   <li>does not return within a time period defined by the portlet container</li>
-     * </ul>
-     * 
-     * @param filterConfig    the filter configuration data defined 
-     *                        in the portlet deployment descriptor
-     * @throws PortletException  if an error occurs in the filter intialization
-     */
-    public void init(FilterConfig filterConfig) throws PortletException;
     
     /**
      * The <code>doFilter</code> method of the Filter is called by the 
@@ -132,21 +114,5 @@
     public void doFilter(EventRequest request, EventResponse response,
                          FilterChain chain)
      throws IOException, PortletException;
-    
-    /**
-     * Called by the portlet container to indicate to a filter that it is 
-     * being taken out of service. This method is only called once all threads 
-     * within the filter's <code>doFilter</code> method have exited or 
-     * after a timeout period has passed. 
-     * <p>
-     * After the portlet container calls this method, it will not call the 
-     * <code>doFilter</code> method again on this instance of the filter.
-     * <p>
-     * This method gives the filter an opportunity to clean up any resources 
-     * that are being held (for example, memory, file handles, threads) and 
-     * make sure that any persistent state is synchronized with the 
-     * filter's current state in memory.
-     */
-    public void destroy();
     
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventRequestWrapper.java Thu Jul 26 02:05:35 2007
@@ -30,19 +30,8 @@
  */
 package javax.portlet.filter;
 
-import java.security.Principal;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.Map;
-
 import javax.portlet.Event;
 import javax.portlet.EventRequest;
-import javax.portlet.PortalContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletPreferences;
-import javax.portlet.PortletSession;
-import javax.portlet.WindowState;
-import javax.servlet.http.Cookie;
 
 /**
  * The <code>EventRequestWrapper</code> provides a convenient 
@@ -54,17 +43,10 @@
  * @since 2.0
  * @see EventRequest
  */
-public class EventRequestWrapper implements EventRequest {
+public class EventRequestWrapper extends PortletRequestWrapper implements EventRequest {
 
     EventRequest request;
     
-    /** 
-     * Require having a request for constructing
-     * the wrapper.
-     *
-     */
-    private EventRequestWrapper() {
-    }
     
     /**
      * Creates an <code>EventRequest</code> adaptor 
@@ -74,287 +56,8 @@
      * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
      */
     public EventRequestWrapper(EventRequest request) {
-        this.request = request;
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAttribute(String name)</code> on the wrapped request object.
-     */
-    public Object getAttribute(String name) {
-        return request.getAttribute(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAttributeNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getAttributeNames() {
-        return request.getAttributeNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getAuthType()</code> on the wrapped request object.
-     */
-    public String getAuthType() {
-        return request.getAuthType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getContextPath()</code> on the wrapped request object.
-     */
-    public String getContextPath() {
-        return request.getContextPath();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocale()</code> on the wrapped request object.
-     */
-    public Locale getLocale() {
-        return request.getLocale();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getLocales()</code> on the wrapped request object.
-     */
-    public Enumeration getLocales() {
-        return request.getLocales();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameter(String name)</code> on the wrapped request object.
-     */
-    public String getParameter(String name) {
-        return request.getParameter(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterMap()</code> on the wrapped request object.
-     */
-    public Map<String, String[]> getParameterMap() {
-        return request.getParameterMap();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getParameterNames() {
-        return request.getParameterNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getParameterValues(name)</code> on the wrapped request object.
-     */
-    public String[] getParameterValues(String name) {
-        return request.getParameterValues(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortalContext()</code> on the wrapped request object.
-     */
-    public PortalContext getPortalContext() {
-        return request.getPortalContext();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletMode()</code> on the wrapped request object.
-     */
-    public PortletMode getPortletMode() {
-        return request.getPortletMode();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletSession()</code> on the wrapped request object.
-     */
-    public PortletSession getPortletSession() {
-        return request.getPortletSession();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPortletSession(create)</code> on the wrapped request object.
-     */
-    public PortletSession getPortletSession(boolean create) {
-        return request.getPortletSession(create);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPreferences()</code> on the wrapped request object.
-     */
-    public PortletPreferences getPreferences() {
-        return request.getPreferences();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getProperteis(name)</code> on the wrapped request object.
-     */
-    public Enumeration<String> getProperties(String name) {
-        return request.getProperties(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getProperty(name)</code> on the wrapped request object.
-     */
-    public String getProperty(String name) {
-        return request.getProperty(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getPropertyNames()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getPropertyNames() {
-        return request.getPropertyNames();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getRemoteUser()</code> on the wrapped request object.
-     */
-    public String getRemoteUser() {
-        return request.getRemoteUser();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getRequestedSessionId()</code> on the wrapped request object.
-     */
-    public String getRequestedSessionId() {
-        return request.getRequestedSessionId();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getResponseContentType()</code> on the wrapped request object.
-     */
-    public String getResponseContentType() {
-        return request.getResponseContentType();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getResponseContentTypes()</code> on the wrapped request object.
-     */
-    public Enumeration<String> getResponseContentTypes() {
-        return request.getResponseContentTypes();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getScheme()</code> on the wrapped request object.
-     */
-    public String getScheme() {
-        return request.getScheme();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getServerName()</code> on the wrapped request object.
-     */
-    public String getServerName() {
-        return request.getServerName();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getServerPort()</code> on the wrapped request object.
-     */
-    public int getServerPort() {
-        return request.getServerPort();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getUserPrincipal()</code> on the wrapped request object.
-     */
-    public Principal getUserPrincipal() {
-        return request.getUserPrincipal();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWindowId()</code> on the wrapped request object.
-     */
-    public String getWindowId() {
-        return request.getWindowId();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>getWindowState()</code> on the wrapped request object.
-     */
-    public WindowState getWindowState() {
-        return request.getWindowState();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isPortletModeAllowed(mode)</code> on the wrapped request object.
-     */
-    public boolean isPortletModeAllowed(PortletMode mode) {
-        return request.isPortletModeAllowed(mode);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isRequestedSessionIdValid()</code> on the wrapped request object.
-     */
-    public boolean isRequestedSessionIdValid() {
-        return request.isRequestedSessionIdValid();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isSecure()</code> on the wrapped request object.
-     */
-    public boolean isSecure() {
-        return request.isSecure();
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isUserInRole(role)</code> on the wrapped request object.
-     */
-    public boolean isUserInRole(String role) {
-        return request.isUserInRole(role);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>isWindowStateAllowed(state)</code> on the wrapped request object.
-     */
-    public boolean isWindowStateAllowed(WindowState state) {
-        return request.isWindowStateAllowed(state);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>removeAttribute(name)</code> on the wrapped request object.
-     */
-    public void removeAttribute(String name) {
-        request.removeAttribute(name);
-    }
-
-    /**
-     * The default behavior of this method is to call 
-     * <code>setAttribute(name, o)</code> on the wrapped request object.
-     */
-    public void setAttribute(String name, Object o) {
-        request.setAttribute(name, o);
+    	super(request);
+    	this.request = request;
     }
 
     /**
@@ -373,6 +76,9 @@
      * @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");
+
         this.request = request;
     }
 
@@ -392,12 +98,5 @@
         return request.getMethod();
     }
 
-    /**
-     *  The default behavior of this method is to call 
-     * <code>getCookies()</code> on the wrapped request object.
-     */
-    public Cookie[] getCookies() {
-    	return request.getCookies();
-    }
 
 }

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java Thu Jul 26 02:05:35 2007
@@ -36,11 +36,8 @@
 import javax.portlet.EventResponse;
 import javax.portlet.PortletMode;
 import javax.portlet.PortletModeException;
-import javax.portlet.PortletURL;
-import javax.portlet.ResourceURL;
 import javax.portlet.WindowState;
 import javax.portlet.WindowStateException;
-import javax.servlet.http.Cookie;
 import javax.xml.namespace.QName;
 
 /**
@@ -54,18 +51,10 @@
  * @see EventResponse
  */
 
-public class EventResponseWrapper implements EventResponse {
+public class EventResponseWrapper extends PortletResponseWrapper implements EventResponse {
 
     EventResponse response;
      
-     /** 
-      * Require having a response for constructing
-      * the wrapper.
-      *
-      */
-     private EventResponseWrapper() {
-     }
-     
      /**
       * Creates an <code>EventResponse</code> adaptor 
       * wrapping the given response object.
@@ -74,6 +63,7 @@
       * @throws java.lang.IllegalArgumentException if the response is <code>null</code>
       */
      public EventResponseWrapper(EventResponse response) {
+    	 super(response);
          this.response = response;
      }
 
@@ -81,20 +71,12 @@
       * The default behavior of this method is to call 
       * <code>setEvent(name, value)</code> on the wrapped response object.
       */
-     public void setEvent(QName name, Object value) {
+     public void setEvent(QName name, java.io.Serializable value) {
          response.setEvent(name, value);
      }
 
      /**
       * The default behavior of this method is to call 
-      * <code>setEvents(events)</code> on the wrapped response object.
-      */
-     public void setEvents(Map<javax.xml.namespace.QName, Object> events) {
-         response.setEvents(events);
-     }
-
-     /**
-      * The default behavior of this method is to call 
       * <code>setPortletMode(portletMode)</code> on the wrapped response object.
       */
      public void setPortletMode(PortletMode portletMode)
@@ -136,62 +118,6 @@
      }
 
      /**
-      * The default behavior of this method is to call 
-      * <code>addProperty(key, value)</code> on the wrapped response object.
-      */
-     public void addProperty(String key, String value) {
-         response.addProperty(key, value);
-     }
-
-    /**
-      * The default behavior of this method is to call 
-      * <code>createActionURL()</code> on the wrapped response object.
-      */
-     public PortletURL createActionURL() {
-         return response.createActionURL();
-     }
-
-     /**
-      * The default behavior of this method is to call 
-      * <code>createRenderURL()</code> on the wrapped response object.
-      */
-     public PortletURL createRenderURL() {
-         return response.createRenderURL();
-     }
-
-     /**
-      * The default behavior of this method is to call 
-      * <code>createResourceURL</code> on the wrapped response object.
-      */
-     public ResourceURL createResourceURL() {
-         return response.createResourceURL();
-     }
-
-     /**
-      * The default behavior of this method is to call 
-      * <code>encodeURL(path)</code> on the wrapped response object.
-      */
-     public String encodeURL(String path) {
-         return response.encodeURL(path);
-     }
-
-     /**
-      * The default behavior of this method is to call 
-      * <code>getNamespace()</code> on the wrapped response object.
-      */
-     public String getNamespace() {
-         return response.getNamespace();
-     }
-
-     /**
-      * The default behavior of this method is to call 
-      * <code>setProperty(key, value)</code> on the wrapped response object.
-      */
-     public void setProperty(String key, String value) {
-         response.setProperty(key, value);
-     }
-
-     /**
       * Return the wrapped response object.
       * 
       * @return the wrapped response
@@ -207,7 +133,10 @@
       * @throws java.lang.IllegalArgumentException   if the response is null.
       */
      public void setResponse(EventResponse response) {
-         this.response = response;
+	    	if ( response == null)
+	    		throw new java.lang.IllegalArgumentException("Response is null");
+
+	    	this.response = response;
      }
 
      /**
@@ -244,25 +173,9 @@
 
      /**
       *  The default behavior of this method is to call 
-      * <code>addProperty()</code> on the wrapped response object.
-      */
-     public void addProperty(Cookie cookie) {
-         response.addProperty(cookie);
-     }
-     
-     /**
-      *  The default behavior of this method is to call 
-      * <code>setDefaultNamspacedEvents()</code> on the wrapped response object.
-      */
- 	public void setDefaultNamspacedEvents(Map<String, Object> events) {
- 		response.setDefaultNamspacedEvents(events);
- 	}
-
-     /**
-      *  The default behavior of this method is to call 
       * <code>setEvent()</code> on the wrapped response object.
       */
- 	public void setEvent(String name, Object value) {
+ 	public void setEvent(String name, java.io.Serializable value) {
  		response.setEvent(name, value);
  	}
 

Modified: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/FilterConfig.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/FilterConfig.java?view=diff&rev=559761&r1=559760&r2=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/FilterConfig.java (original)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/FilterConfig.java Thu Jul 26 02:05:35 2007
@@ -24,9 +24,10 @@
  * Community Process. In order to remain compliant with the specification
  * DO NOT add / change / or delete method signatures!
  */
-/**
-  * Copyright 2006 IBM Corporation.
-  */
+/*
+ * Copyright 2006 IBM Corporation.
+ *
+ */
 package javax.portlet.filter;
 
 

Added: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletFilter.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletFilter.java?view=auto&rev=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletFilter.java (added)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletFilter.java Thu Jul 26 02:05:35 2007
@@ -0,0 +1,80 @@
+/*  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.
+ */
+/*
+ * NOTE: this source code is based on an early draft version of JSR 286 and not intended for product
+ * implementations. This file may change or vanish in the final version of the JSR 286 specification.
+ */
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+/*
+ * Copyright 2006 IBM Corporation.
+ *
+ */
+package javax.portlet.filter;
+
+import javax.portlet.PortletException;
+
+/**
+ * The <code>PortletFilter</code> is the base interface for all portlet filters.
+ * It provides the lifecycle methods <code>init</code> and <code>destroy</code>
+ * for putting a portlet filter into and out of service.
+ *
+ * @since 2.0
+ */
+public interface PortletFilter {
+
+    /**
+     * Called by the portlet container to indicate to a filter
+     * that it is being placed into service. The portlet container 
+     * calls the init method exactly once after instantiating the filter. 
+     * The init method must complete successfully before the filter 
+     * is asked to do any filtering work.
+     * <p>
+     * The portlet container cannot place the filter into service if the init method either
+     * <ul>
+     *   <li>throws a PortletException</li>
+     *   <li>does not return within a time period defined by the portlet container</li>
+     * </ul>
+     * 
+     * @param filterConfig    the filter configuration data defined 
+     *                        in the portlet deployment descriptor
+     * @throws PortletException  if an error occurs in the filter intialization
+     */
+    public void init(FilterConfig filterConfig) throws PortletException;
+
+    
+    /**
+     * Called by the portlet container to indicate to a filter that it is 
+     * being taken out of service. This method is only called once all threads 
+     * within the filter's <code>doFilter</code> method have exited or 
+     * after a timeout period has passed. 
+     * <p>
+     * After the portlet container calls this method, it will not call the 
+     * <code>doFilter</code> method again on this instance of the filter.
+     * <p>
+     * This method gives the filter an opportunity to clean up any resources 
+     * that are being held (for example, memory, file handles, threads) and 
+     * make sure that any persistent state is synchronized with the 
+     * filter's current state in memory.
+     */
+    public void destroy();
+
+}

Added: portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java?view=auto&rev=559761
==============================================================================
--- portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java (added)
+++ portals/pluto/branches/1.1-286-COMPATIBILITY/portlet2-api/src/main/java/javax/portlet/filter/PortletRequestWrapper.java Thu Jul 26 02:05:35 2007
@@ -0,0 +1,407 @@
+/*  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.
+ */
+/*
+ * NOTE: this source code is based on an early draft version of JSR 286 and not intended for product
+ * implementations. This file may change or vanish in the final version of the JSR 286 specification.
+ */
+/*
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+/*
+ * Copyright 2006 IBM Corporation.
+ *
+ */
+package javax.portlet.filter;
+
+import java.security.Principal;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.portlet.PortalContext;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletSession;
+import javax.portlet.WindowState;
+import javax.servlet.http.Cookie;
+
+/**
+ * The <code>PortletRequestWrapper</code> provides a convenient 
+ * implementation of the <code>PortletRequest</code> interface 
+ * and is extended by other request wrappers.
+ * This class implements the Wrapper or Decorator pattern. 
+ * Methods default to calling through to the wrapped request object.
+ *
+ * @since 2.0
+ * @see PortletRequest
+ */
+public class PortletRequestWrapper implements PortletRequest {
+
+    PortletRequest request;
+    
+    /** 
+     * Require having a request for constructing
+     * the wrapper.
+     *
+     */
+    private PortletRequestWrapper() {
+    }
+    
+    /**
+     * Creates an <code>PortletRequest</code> adaptor 
+     * wrapping the given request object.
+     * 
+     * @param request  the portlet request to wrap
+     * @throws java.lang.IllegalArgumentException if the request is <code>null</code>
+     */
+    public PortletRequestWrapper(PortletRequest request) {
+    	if ( request == null)
+    		throw new java.lang.IllegalArgumentException("Request is null");
+
+        this.request = request;
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getAttribute(String name)</code> on the wrapped request object.
+     */
+    public Object getAttribute(String name) {
+        return request.getAttribute(name);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getAttributeNames()</code> on the wrapped request object.
+     */
+    public Enumeration<String> getAttributeNames() {
+        return request.getAttributeNames();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getAuthType()</code> on the wrapped request object.
+     */
+    public String getAuthType() {
+        return request.getAuthType();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getContextPath()</code> on the wrapped request object.
+     */
+    public String getContextPath() {
+        return request.getContextPath();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getLocale()</code> on the wrapped request object.
+     */
+    public Locale getLocale() {
+        return request.getLocale();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getLocales()</code> on the wrapped request object.
+     */
+    public Enumeration<Locale> getLocales() {
+        return request.getLocales();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getParameter(String name)</code> on the wrapped request object.
+     */
+    public String getParameter(String name) {
+        return request.getParameter(name);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getParameterMap()</code> on the wrapped request object.
+     */
+    public Map<String, String[]> getParameterMap() {
+        return request.getParameterMap();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getParameterNames()</code> on the wrapped request object.
+     */
+    public Enumeration<String> getParameterNames() {
+        return request.getParameterNames();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getParameterValues(name)</code> on the wrapped request object.
+     */
+    public String[] getParameterValues(String name) {
+        return request.getParameterValues(name);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getPortalContext()</code> on the wrapped request object.
+     */
+    public PortalContext getPortalContext() {
+        return request.getPortalContext();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getPortletMode()</code> on the wrapped request object.
+     */
+    public PortletMode getPortletMode() {
+        return request.getPortletMode();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getPortletSession()</code> on the wrapped request object.
+     */
+    public PortletSession getPortletSession() {
+        return request.getPortletSession();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getPortletSession(create)</code> on the wrapped request object.
+     */
+    public PortletSession getPortletSession(boolean create) {
+        return request.getPortletSession(create);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getPreferences()</code> on the wrapped request object.
+     */
+    public PortletPreferences getPreferences() {
+        return request.getPreferences();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getProperteis(name)</code> on the wrapped request object.
+     */
+    public Enumeration<String> getProperties(String name) {
+        return request.getProperties(name);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getProperty(name)</code> on the wrapped request object.
+     */
+    public String getProperty(String name) {
+        return request.getProperty(name);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getPropertyNames()</code> on the wrapped request object.
+     */
+    public Enumeration<String> getPropertyNames() {
+        return request.getPropertyNames();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getRemoteUser()</code> on the wrapped request object.
+     */
+    public String getRemoteUser() {
+        return request.getRemoteUser();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getRequestedSessionId()</code> on the wrapped request object.
+     */
+    public String getRequestedSessionId() {
+        return request.getRequestedSessionId();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getResponseContentType()</code> on the wrapped request object.
+     */
+    public String getResponseContentType() {
+        return request.getResponseContentType();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getResponseContentTypes()</code> on the wrapped request object.
+     */
+    public Enumeration<String> getResponseContentTypes() {
+        return request.getResponseContentTypes();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getScheme()</code> on the wrapped request object.
+     */
+    public String getScheme() {
+        return request.getScheme();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getServerName()</code> on the wrapped request object.
+     */
+    public String getServerName() {
+        return request.getServerName();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getServerPort()</code> on the wrapped request object.
+     */
+    public int getServerPort() {
+        return request.getServerPort();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getUserPrincipal()</code> on the wrapped request object.
+     */
+    public Principal getUserPrincipal() {
+        return request.getUserPrincipal();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getWindowId()</code> on the wrapped request object.
+     */
+    public String getWindowID() {
+        return request.getWindowID();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>getWindowState()</code> on the wrapped request object.
+     */
+    public WindowState getWindowState() {
+        return request.getWindowState();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>isPortletModeAllowed(mode)</code> on the wrapped request object.
+     */
+    public boolean isPortletModeAllowed(PortletMode mode) {
+        return request.isPortletModeAllowed(mode);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>isRequestedSessionIdValid()</code> on the wrapped request object.
+     */
+    public boolean isRequestedSessionIdValid() {
+        return request.isRequestedSessionIdValid();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>isSecure()</code> on the wrapped request object.
+     */
+    public boolean isSecure() {
+        return request.isSecure();
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>isUserInRole(role)</code> on the wrapped request object.
+     */
+    public boolean isUserInRole(String role) {
+        return request.isUserInRole(role);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>isWindowStateAllowed(state)</code> on the wrapped request object.
+     */
+    public boolean isWindowStateAllowed(WindowState state) {
+        return request.isWindowStateAllowed(state);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>removeAttribute(name)</code> on the wrapped request object.
+     */
+    public void removeAttribute(String name) {
+        request.removeAttribute(name);
+    }
+
+    /**
+     * The default behavior of this method is to call 
+     * <code>setAttribute(name, o)</code> on the wrapped request object.
+     */
+    public void setAttribute(String name, Object o) {
+        request.setAttribute(name, o);
+    }
+
+    /**
+     * Return the wrapped request object.
+     * 
+     * @return the wrapped request
+     */
+    public PortletRequest getRequest() {
+        return request;
+    }
+
+    /**
+     * Sets the request object being wrapped.
+     * 
+     * @param request the request to set
+     * @throws java.lang.IllegalArgumentException   if the request is null.
+     */
+    public void setRequest(PortletRequest request) {
+    	if ( request == null)
+    		throw new java.lang.IllegalArgumentException("Request is null");
+
+    	this.request = request;
+    }
+
+    /**
+     *  The default behavior of this method is to call 
+     * <code>getCookies()</code> on the wrapped request object.
+     */
+    public Cookie[] getCookies() {
+    	return request.getCookies();
+    }
+
+    /**
+     *  The default behavior of this method is to call 
+     * <code>getPrivateParameterMap()</code> on the wrapped request object.
+     */
+	public Map<String, String[]> getPrivateParameterMap() {
+		return request.getPrivateParameterMap();
+	}
+
+    /**
+     *  The default behavior of this method is to call 
+     * <code>getPublicParameterMap()</code> on the wrapped request object.
+     */
+	public Map<String, String[]> getPublicParameterMap() {
+		return request.getPublicParameterMap();
+	}
+}