You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2007/10/25 17:36:45 UTC
svn commit: r588256 -
/myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/
Author: matzew
Date: Thu Oct 25 08:36:43 2007
New Revision: 588256
URL: http://svn.apache.org/viewvc?rev=588256&view=rev
Log:
PORTLETBRIDGE-9
added the missing source, to have at least the build working ...
thx (as always!) Scott for his patch
Added:
myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/
myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionRequestDecorator.java
myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionResponseDecorator.java
myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/BridgeRenderRequestWrapper.java
myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletRequestDecorator.java
myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletResponseDecorator.java
myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/RenderRequestDecorator.java
Added: myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionRequestDecorator.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionRequestDecorator.java?rev=588256&view=auto
==============================================================================
--- myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionRequestDecorator.java (added)
+++ myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionRequestDecorator.java Thu Oct 25 08:36:43 2007
@@ -0,0 +1,184 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.myfaces.portlet.faces.bridge.wrapper;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.PortletRequest;
+
+
+public class ActionRequestDecorator
+ extends PortletRequestDecorator
+ implements ActionRequest
+{
+ private PortletRequest mRequest = null;
+
+ public ActionRequestDecorator(ActionRequest request)
+ throws IllegalArgumentException
+ {
+
+ super(request);
+ }
+
+ /**
+ * Retrieves the body of the HTTP request from client to
+ * portal as binary data using
+ * an <CODE>InputStream</CODE>. Either this method or
+ * {@link #getReader} may be called to read the body, but not both.
+ * <p>
+ * For HTTP POST data of type application/x-www-form-urlencoded
+ * this method throws an <code>IllegalStateException</code>
+ * as this data has been already processed by the
+ * portal/portlet-container and is available as request parameters.
+ *
+ * @return an input stream containing the body of the request
+ *
+ * @exception java.lang.IllegalStateException
+ * if getReader was already called, or it is a
+ * HTTP POST data of type application/x-www-form-urlencoded
+ * @exception java.io.IOException
+ * if an input or output exception occurred
+ */
+ public java.io.InputStream getPortletInputStream()
+ throws java.io.IOException
+ {
+ // mRequest is a protected member of PortletRequestDecorator
+ return ((ActionRequest) mRequest).getPortletInputStream();
+ }
+
+
+ /**
+ * Overrides the name of the character encoding used in the body of this
+ * request. This method must be called prior to reading input
+ * using {@link #getReader} or {@link #getPortletInputStream}.
+ * <p>
+ * This method only sets the character set for the Reader that the
+ * {@link #getReader} method returns.
+ *
+ * @param enc a <code>String</code> containing the name of
+ * the chararacter encoding.
+ *
+ * @exception java.io.UnsupportedEncodingException if this is not a valid encoding
+ * @exception java.lang.IllegalStateException if this method is called after
+ * reading request parameters or reading input using
+ * <code>getReader()</code>
+ */
+ public
+
+ void setCharacterEncoding(String enc)
+ throws java.io.UnsupportedEncodingException
+ {
+ // mRequest is a protected member of PortletRequestDecorator
+ ((ActionRequest) mRequest).setCharacterEncoding(enc);
+ }
+
+
+ /**
+ * Retrieves the body of the HTTP request from the client to the portal
+ * as character data using
+ * a <code>BufferedReader</code>. The reader translates the character
+ * data according to the character encoding used on the body.
+ * Either this method or {@link #getPortletInputStream} may be called to read the
+ * body, not both.
+ * <p>
+ * For HTTP POST data of type application/x-www-form-urlencoded
+ * this method throws an <code>IllegalStateException</code>
+ * as this data has been already processed by the
+ * portal/portlet-container and is available as request parameters.
+ *
+ * @return a <code>BufferedReader</code>
+ * containing the body of the request
+ *
+ * @exception java.io.UnsupportedEncodingException
+ * if the character set encoding used is
+ * not supported and the text cannot be decoded
+ * @exception java.lang.IllegalStateException
+ * if {@link #getPortletInputStream} method
+ * has been called on this request, it is a
+ * HTTP POST data of type application/x-www-form-urlencoded.
+ * @exception java.io.IOException
+ * if an input or output exception occurred
+ *
+ * @see #getPortletInputStream
+ */
+ public
+
+ java.io.BufferedReader getReader()
+ throws java.io.UnsupportedEncodingException, java.io.IOException
+ {
+ // mRequest is a protected member of PortletRequestDecorator
+ return ((ActionRequest) mRequest).getReader();
+ }
+
+
+ /**
+ * Returns the name of the character encoding used in the body of this request.
+ * This method returns <code>null</code> if the request
+ * does not specify a character encoding.
+ *
+ * @return a <code>String</code> containing the name of
+ * the chararacter encoding, or <code>null</code>
+ * if the request does not specify a character encoding.
+ */
+ public
+
+ java.lang.String getCharacterEncoding()
+ {
+ // mRequest is a protected member of PortletRequestDecorator
+ return ((ActionRequest) mRequest).getCharacterEncoding();
+ }
+
+
+ /**
+ * Returns the MIME type of the body of the request,
+ * or null if the type is not known.
+ *
+ * @return a <code>String</code> containing the name
+ * of the MIME type of the request, or null
+ * if the type is not known.
+ */
+ public
+
+ java.lang.String getContentType()
+ {
+ // mRequest is a protected member of PortletRequestDecorator
+ return ((ActionRequest) mRequest).getContentType();
+ }
+
+
+ /**
+ * Returns the length, in bytes, of the request body
+ * which is made available by the input stream, or -1 if the
+ * length is not known.
+ *
+ *
+ * @return an integer containing the length of the
+ * request body or -1 if the length is not known
+ *
+ */
+ public
+
+ int getContentLength()
+ {
+ // mRequest is a protected member of PortletRequestDecorator
+ return ((ActionRequest) mRequest).getContentLength();
+ }
+
+
+}
Added: myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionResponseDecorator.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionResponseDecorator.java?rev=588256&view=auto
==============================================================================
--- myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionResponseDecorator.java (added)
+++ myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/ActionResponseDecorator.java Thu Oct 25 08:36:43 2007
@@ -0,0 +1,262 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.myfaces.portlet.faces.bridge.wrapper;
+
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletModeException;
+import javax.portlet.WindowState;
+import javax.portlet.WindowStateException;
+
+
+public class ActionResponseDecorator
+ extends PortletResponseDecorator
+ implements ActionResponse
+{
+
+ public ActionResponseDecorator(ActionResponse response)
+ throws IllegalArgumentException
+ {
+
+ super(response);
+ }
+
+ public ActionResponse getParent()
+ {
+ return (ActionResponse) super.getParent();
+ }
+
+ public ActionResponse getRoot()
+ {
+ return (ActionResponse) super.getRoot();
+ }
+
+ /**
+ * Sets the window state of a portlet to the given window state.
+ * <p>
+ * Possible values are the standard window states and any custom
+ * window states supported by the portal and the portlet.
+ * Standard window states are:
+ * <ul>
+ * <li>MINIMIZED
+ * <li>NORMAL
+ * <li>MAXIMIZED
+ * </ul>
+ *
+ * @param windowState
+ * the new portlet window state
+ *
+ * @exception WindowStateException
+ * if the portlet cannot switch to the specified window state.
+ * To avoid this exception the portlet can check the allowed
+ * window states with <code>Request.isWindowStateAllowed()</code>.
+ * @exception java.lang.IllegalStateException
+ * if the method is invoked after <code>sendRedirect</code> has been called.
+ *
+ * @see WindowState
+ */
+ public
+
+ void setWindowState(WindowState windowState)
+ throws WindowStateException
+ {
+ // mResponse is a protected memeber of PortletResponseDecorator
+ ((ActionResponse) mResponse).setWindowState(windowState);
+ }
+
+
+ /**
+ * Sets the portlet mode of a portlet to the given portlet mode.
+ * <p>
+ * Possible values are the standard portlet modes and any custom
+ * portlet modes supported by the portal and the portlet. Portlets
+ * must declare in the deployment descriptor the portlet modes they
+ * support for each markup type.
+ * Standard portlet modes are:
+ * <ul>
+ * <li>EDIT
+ * <li>HELP
+ * <li>VIEW
+ * </ul>
+ * <p>
+ * Note: The portlet may still be called in a different window
+ * state in the next render call, depending on the portlet container / portal.
+ *
+ * @param portletMode
+ * the new portlet mode
+ *
+ * @exception PortletModeException
+ * if the portlet cannot switch to this portlet mode,
+ * because the portlet or portal does not support it for this markup,
+ * or the current user is not allowed to switch to this portlet mode.
+ * To avoid this exception the portlet can check the allowed
+ * portlet modes with <code>Request.isPortletModeAllowed()</code>.
+ * @exception java.lang.IllegalStateException
+ * if the method is invoked after <code>sendRedirect</code> has been called.
+ */
+ public
+
+ void setPortletMode(PortletMode portletMode)
+ throws PortletModeException
+ {
+ // mResponse is a protected memeber of PortletResponseDecorator
+ ((ActionResponse) mResponse).setPortletMode(portletMode);
+ }
+
+
+ /**
+ * Instructs the portlet container to send a redirect response
+ * to the client using the specified redirect location URL.
+ * <p>
+ * This method only accepts an absolute URL (e.g.
+ * <code>http://my.co/myportal/mywebap/myfolder/myresource.gif</code>)
+ * or a full path URI (e.g. <code>/myportal/mywebap/myfolder/myresource.gif</code>).
+ * If required,
+ * the portlet container may encode the given URL before the
+ * redirection is issued to the client.
+ * <p>
+ * The sendRedirect method can not be invoked after any of the
+ * following methods of the ActionResponse interface has been called:
+ * <ul>
+ * <li>setPortletMode
+ * <li>setWindowState
+ * <li>setRenderParameter
+ * <li>setRenderParameters
+ * </ul>
+ *
+ * @param location the redirect location URL
+ *
+ * @exception java.io.IOException
+ * if an input or output exception occurs.
+ * @exception java.lang.IllegalArgumentException
+ * if a relative path URL is given
+ * @exception java.lang.IllegalStateException
+ * if the method is invoked after any of above mentioned methods of
+ * the ActionResponse interface has been called.
+ */
+ public
+
+ void sendRedirect(String location)
+ throws java.io.IOException
+ {
+ // mResponse is a protected memeber of PortletResponseDecorator
+ ((ActionResponse) mResponse).sendRedirect(location);
+ }
+
+
+ /**
+ * Sets a parameter map for the render request.
+ * <p>
+ * All previously set render parameters are cleared.
+ * <p>
+ * These parameters will be accessible in all
+ * sub-sequent render calls via the
+ * <code>PortletRequest.getParameter</code> call until
+ * a new request is targeted to the portlet.
+ * <p>
+ * The given parameters do not need to be encoded
+ * prior to calling this method.
+ *
+ * @param parameters Map containing parameter names for
+ * the render phase as
+ * keys and parameter values as map
+ * values. The keys in the parameter
+ * map must be of type String. The values
+ * in the parameter map must be of type
+ * String array (<code>String[]</code>).
+ *
+ * @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 the keys is not a String, or if any of
+ * the values is not a String array.
+ * @exception java.lang.IllegalStateException
+ * if the method is invoked after <code>sendRedirect</code> has been called.
+ */
+ public
+
+ void setRenderParameters(java.util.Map parameters)
+ {
+ // mResponse is a protected memeber of PortletResponseDecorator
+ ((ActionResponse) mResponse).setRenderParameters(parameters);
+ }
+
+
+ /**
+ * Sets a String parameter for the render request.
+ * <p>
+ * These parameters will be accessible in all
+ * sub-sequent render calls via the
+ * <code>PortletRequest.getParameter</code> call until
+ * a request is targeted to the portlet.
+ * <p>
+ * This method replaces all parameters with the given key.
+ * <p>
+ * The given parameter do not need to be encoded
+ * prior to calling this method.
+ *
+ * @param key key of the render parameter
+ * @param value value of the render parameter
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if key or value are <code>null</code>.
+ * @exception java.lang.IllegalStateException
+ * if the method is invoked after <code>sendRedirect</code> has been called.
+ */
+ public
+
+ void setRenderParameter(String key, String value)
+ {
+ // mResponse is a protected memeber of PortletResponseDecorator
+ ((ActionResponse) mResponse).setRenderParameter(key, value);
+ }
+
+
+ /**
+ * Sets a String array parameter for the render request.
+ * <p>
+ * These parameters will be accessible in all
+ * sub-sequent render calls via the
+ * <code>PortletRequest.getParameter</code> call until
+ * a request is targeted to the portlet.
+ * <p>
+ * This method replaces all parameters with the given key.
+ * <p>
+ * The given parameter do not need to be encoded
+ * prior to calling this method.
+ *
+ * @param key key of the render parameter
+ * @param values values of the render parameter
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if key or value are <code>null</code>.
+ * @exception java.lang.IllegalStateException
+ * if the method is invoked after <code>sendRedirect</code> has been called.
+ */
+ public
+
+ void setRenderParameter(String key, String[] values)
+ {
+ // mResponse is a protected memeber of PortletResponseDecorator
+ ((ActionResponse) mResponse).setRenderParameter(key, values);
+ }
+
+
+}
Added: myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/BridgeRenderRequestWrapper.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/BridgeRenderRequestWrapper.java?rev=588256&view=auto
==============================================================================
--- myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/BridgeRenderRequestWrapper.java (added)
+++ myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/BridgeRenderRequestWrapper.java Thu Oct 25 08:36:43 2007
@@ -0,0 +1,210 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.myfaces.portlet.faces.bridge.wrapper;
+
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.myfaces.portlet.faces.bridge.wrapper.RenderRequestDecorator;
+
+import javax.portlet.RenderRequest;
+
+
+public class BridgeRenderRequestWrapper
+ extends RenderRequestDecorator
+{
+ private Map mActionParams = null;
+ private Map mCombinedParamMap = null;
+
+ public BridgeRenderRequestWrapper(RenderRequest request, Map actionParams)
+ throws IllegalArgumentException
+ {
+ super(request);
+
+ mActionParams = actionParams;
+ }
+
+ /**
+ * Returns the value of a request parameter as a <code>String</code>,
+ * or <code>null</code> if the parameter does not exist. Request parameters
+ * are extra information sent with the request. The returned parameter
+ * are "x-www-form-urlencoded" decoded.
+ * <p>
+ * Only parameters targeted to the current portlet are accessible.
+ * <p>
+ * This method should only be used if the
+ * parameter has only one value. If the parameter might have
+ * more than one value, use {@link #getParameterValues}.
+ * <p>
+ * If this method is used with a multivalued
+ * parameter, the value returned is equal to the first value
+ * in the array returned by <code>getParameterValues</code>.
+ *
+ *
+ *
+ * @param name a <code>String</code> specifying the
+ * name of the parameter
+ *
+ * @return a <code>String</code> representing the
+ * single value of the parameter
+ *
+ * @see #getParameterValues
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ *
+ */
+ public String getParameter(String name)
+ {
+ String[] params = getParameterValues(name);
+ if (params != null && params.length > 0)
+ return params[0];
+ else
+ return null;
+ }
+
+
+ /**
+ *
+ * Returns an <code>Enumeration</code> of <code>String</code>
+ * objects containing the names of the parameters contained
+ * in this request. If the request has
+ * no parameters, the method returns an
+ * empty <code>Enumeration</code>.
+ * <p>
+ * Only parameters targeted to the current portlet are returned.
+ *
+ *
+ * @return an <code>Enumeration</code> of <code>String</code>
+ * objects, each <code>String</code> containing
+ * the name of a request parameter; or an
+ * empty <code>Enumeration</code> if the
+ * request has no parameters.
+ */
+ public Enumeration getParameterNames()
+ {
+ final Enumeration e = Collections.enumeration(getParameterMap().entrySet());
+ Enumeration en = new Enumeration()
+ {
+ public boolean hasMoreElements()
+ {
+ return e.hasMoreElements();
+ }
+
+ public Object nextElement()
+ {
+ Map.Entry entry = (Map.Entry) e.nextElement();
+ return entry.getKey();
+ }
+ };
+
+ return en;
+ }
+
+
+ /**
+ * Returns an array of <code>String</code> objects containing
+ * all of the values the given request parameter has, or
+ * <code>null</code> if the parameter does not exist.
+ * The returned parameters are "x-www-form-urlencoded" decoded.
+ * <p>
+ * If the parameter has a single value, the array has a length
+ * of 1.
+ *
+ *
+ * @param name a <code>String</code> containing the name of
+ * the parameter the value of which is requested
+ *
+ * @return an array of <code>String</code> objects
+ * containing the parameter values.
+ *
+ * @see #getParameter
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ *
+ */
+ public String[] getParameterValues(String name)
+ {
+ if (name == null)
+ throw new IllegalArgumentException();
+
+ return (String[]) getParameterMap().get(name);
+
+ }
+
+
+ /**
+ * Returns a <code>Map</code> of the parameters of this request.
+ * Request parameters are extra information sent with the request.
+ * 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 parameters exist this method returns an empty <code>Map</code>.
+ *
+ * @return an immutable <code>Map</code> containing parameter names as
+ * keys and parameter values as map values, or an empty <code>Map</code>
+ * if no 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 getParameterMap()
+ {
+ if (mActionParams != null && !mActionParams.isEmpty())
+ {
+ if (mCombinedParamMap == null)
+ {
+ mCombinedParamMap = new LinkedHashMap(this.getParent().getParameterMap());
+
+ // now walk through the actionParams adding those that aren't
+ // already in the ParameterMap
+ Set s = mActionParams.entrySet();
+ if (s != null)
+ {
+ Iterator entries = s.iterator();
+ while (entries != null && entries.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) entries.next();
+ String key = (String) entry.getKey();
+ if (!mCombinedParamMap.containsKey(key))
+ {
+ mCombinedParamMap.put(key, entry.getValue());
+ }
+ }
+ // now make this an immutable Map
+ mCombinedParamMap = Collections.unmodifiableMap(mCombinedParamMap);
+ }
+ }
+ return mCombinedParamMap;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+}
Added: myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletRequestDecorator.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletRequestDecorator.java?rev=588256&view=auto
==============================================================================
--- myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletRequestDecorator.java (added)
+++ myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletRequestDecorator.java Thu Oct 25 08:36:43 2007
@@ -0,0 +1,718 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.myfaces.portlet.faces.bridge.wrapper;
+
+import java.util.Enumeration;
+
+import javax.portlet.PortalContext;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletSession;
+import javax.portlet.WindowState;
+
+
+public class PortletRequestDecorator
+ implements PortletRequest
+{
+ protected PortletRequest mRequest = null;
+
+ public PortletRequestDecorator(PortletRequest request)
+ throws IllegalArgumentException
+ {
+ if (request == null)
+ throw new IllegalArgumentException();
+ mRequest = request;
+ }
+
+ public PortletRequest getParent()
+ {
+ return mRequest;
+ }
+
+ public PortletRequest getRoot()
+ {
+ PortletRequest root = mRequest;
+ while (root instanceof PortletRequestDecorator)
+ {
+ root = ((PortletRequestDecorator) root).getParent();
+ }
+ return root;
+ }
+
+ /**
+ * Returns true, if the given window state is valid
+ * to be set for this portlet in the context
+ * of the current request.
+ *
+ * @param state window state to checked
+ *
+ * @return true, if it is valid for this portlet
+ * in this request to change to the
+ * given window state
+ *
+ */
+ public boolean isWindowStateAllowed(WindowState state)
+ {
+ return mRequest.isWindowStateAllowed(state);
+ }
+
+
+ /**
+ * Returns true, if the given portlet mode is a valid
+ * one to set for this portlet in the context
+ * of the current request.
+ *
+ * @param mode portlet mode to check
+ *
+ * @return true, if it is valid for this portlet
+ * in this request to change to the
+ * given portlet mode
+ *
+ */
+ public boolean isPortletModeAllowed(PortletMode mode)
+ {
+ return mRequest.isPortletModeAllowed(mode);
+ }
+
+
+ /**
+ * Returns the current portlet mode of the portlet.
+ *
+ * @return the portlet mode
+ */
+ public PortletMode getPortletMode()
+ {
+ return mRequest.getPortletMode();
+ }
+
+
+ /**
+ * Returns the current window state of the portlet.
+ *
+ * @return the window state
+ */
+ public WindowState getWindowState()
+ {
+ return mRequest.getWindowState();
+ }
+
+
+ /**
+ * Returns the preferences object associated with the portlet.
+ *
+ * @return the portlet preferences
+ */
+ public PortletPreferences getPreferences()
+ {
+ return mRequest.getPreferences();
+ }
+
+
+ /**
+ * Returns the current portlet session or, if there is no current session,
+ * creates one and returns the new session.
+ * <p>
+ * Creating a new portlet session will result in creating
+ * a new <code>HttpSession</code> on which the portlet session is based on.
+ *
+ * @return the portlet session
+ */
+ public PortletSession getPortletSession()
+ {
+ return mRequest.getPortletSession();
+ }
+
+
+ /**
+ * Returns the current portlet session or, if there is no current session
+ * and the given flag is <CODE>true</CODE>, creates one and returns
+ * the new session.
+ * <P>
+ * If the given flag is <CODE>false</CODE> and there is no current
+ * portlet session, this method returns <CODE>null</CODE>.
+ * <p>
+ * Creating a new portlet session will result in creating
+ * a new <code>HttpSession</code> on which the portlet session is based on.
+ *
+ * @param create
+ * <CODE>true</CODE> to create a new session, <BR>
+ * <CODE>false</CODE> to return <CODE>null</CODE> if there
+ * is no current session
+ * @return the portlet session
+ */
+ public PortletSession getPortletSession(boolean create)
+ {
+ return mRequest.getPortletSession(create);
+ }
+
+
+ /**
+ * Returns the value of the specified request property
+ * as a <code>String</code>. If the request did not include a property
+ * of the specified name, this method returns <code>null</code>.
+ * <p>
+ * A portlet can access portal/portlet-container specific properties
+ * through this method and, if available, the
+ * headers of the HTTP client request.
+ * <p>
+ * This method should only be used if the
+ * property has only one value. If the property might have
+ * more than one value, use {@link #getProperties}.
+ * <p>
+ * If this method is used with a multivalued
+ * parameter, the value returned is equal to the first value
+ * in the Enumeration returned by <code>getProperties</code>.
+ *
+ * @param name a <code>String</code> specifying the
+ * property name
+ *
+ * @return a <code>String</code> containing the
+ * value of the requested
+ * property, or <code>null</code>
+ * if the request does not
+ * have a property of that name.
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+ public String getProperty(String name)
+ {
+ return mRequest.getProperty(name);
+ }
+
+
+ /**
+ * Returns all the values of the specified request property
+ * as a <code>Enumeration</code> of <code>String</code> objects.
+ * <p>
+ * If the request did not include any propertys
+ * of the specified name, this method returns an empty
+ * <code>Enumeration</code>.
+ * The property name is case insensitive. You can use
+ * this method with any request property.
+ *
+ * @param name a <code>String</code> specifying the
+ * property name
+ *
+ * @return a <code>Enumeration</code> containing
+ * the values of the requested property. If
+ * the request does not have any properties of
+ * that name return an empty <code>Enumeration</code>.
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+ public java.util.Enumeration getProperties(String name)
+ {
+ return mRequest.getProperties(name);
+ }
+
+
+ /**
+ *
+ * Returns a <code>Enumeration</code> of all the property names
+ * this request contains. If the request has no
+ * properties, this method returns an empty <code>Enumeration</code>.
+ *
+ *
+ * @return an <code>Enumeration</code> of all the
+ * property names sent with this
+ * request; if the request has
+ * no properties, an empty <code>Enumeration</code>.
+ */
+ public java.util.Enumeration getPropertyNames()
+ {
+ return mRequest.getPropertyNames();
+ }
+
+
+ /**
+ * Returns the context of the calling portal.
+ *
+ * @return the context of the calling portal
+ */
+ public PortalContext getPortalContext()
+ {
+ return mRequest.getPortalContext();
+ }
+
+
+ /**
+ * Returns the name of the authentication scheme used for the
+ * connection between client and portal,
+ * for example, <code>BASIC_AUTH</code>, <code>CLIENT_CERT_AUTH</code>,
+ * a custom one or <code>null</code> if there was no authentication.
+ *
+ * @return one of the static members <code>BASIC_AUTH</code>,
+ * <code>FORM_AUTH</code>, <code>CLIENT_CERT_AUTH</code>,
+ * <code>DIGEST_AUTH</code> (suitable for == comparison)
+ * indicating the authentication scheme,
+ * a custom one, or
+ * <code>null</code> if the request was
+ * not authenticated.
+ */
+ public java.lang.String getAuthType()
+ {
+ return mRequest.getAuthType();
+ }
+
+
+ /**
+ * Returns the context path which is the path prefix associated with the deployed
+ * portlet application. If the portlet application is rooted at the
+ * base of the web server URL namespace (also known as "default" context),
+ * this path must be an empty string. Otherwise, it must be the path the
+ * portlet application is rooted to, the path must start with a '/' and
+ * it must not end with a '/' character.
+ * <p>
+ * To encode a URL the {@link PortletResponse#encodeURL} method must be used.
+ *
+ * @return a <code>String</code> specifying the
+ * portion of the request URL that indicates the context
+ * of the request
+ *
+ * @see PortletResponse#encodeURL
+ */
+ public String getContextPath()
+ {
+ return mRequest.getContextPath();
+ }
+
+
+ /**
+ * Returns the login of the user making this request, if the user
+ * has been authenticated, or null if the user has not been authenticated.
+ *
+ * @return a <code>String</code> specifying the login
+ * of the user making this request, or <code>null</code>
+ * if the user login is not known.
+ *
+ */
+ public java.lang.String getRemoteUser()
+ {
+ return mRequest.getRemoteUser();
+ }
+
+
+ /**
+ * Returns a java.security.Principal object containing the name of the
+ * current authenticated user.
+ *
+ * @return a <code>java.security.Principal</code> containing
+ * the name of the user making this request, or
+ * <code>null</code> if the user has not been
+ * authenticated.
+ */
+ public java.security.Principal getUserPrincipal()
+ {
+ return mRequest.getUserPrincipal();
+ }
+
+
+ /**
+ * Returns a boolean indicating whether the authenticated user is
+ * included in the specified logical "role". Roles and role membership can be
+ * defined using deployment descriptors. If the user has not been
+ * authenticated, the method returns <code>false</code>.
+ *
+ * @param role a <code>String</code> specifying the name
+ * of the role
+ *
+ * @return a <code>boolean</code> indicating whether
+ * the user making this request belongs to a given role;
+ * <code>false</code> if the user has not been
+ * authenticated.
+ */
+ public boolean isUserInRole(java.lang.String role)
+ {
+ return mRequest.isUserInRole(role);
+ }
+
+
+ /**
+ *
+ * Returns the value of the named attribute as an <code>Object</code>,
+ * or <code>null</code> if no attribute of the given name exists.
+ * <p>
+ * Attribute names should follow the same conventions as package
+ * names. This specification reserves names matching <code>java.*</code>,
+ * and <code>javax.*</code>.
+ * <p>
+ * In a distributed portlet web application the <code>Object</code>
+ * needs to be serializable.
+ *
+ * @param name a <code>String</code> specifying the name of
+ * the attribute
+ *
+ * @return an <code>Object</code> containing the value
+ * of the attribute, or <code>null</code> if
+ * the attribute does not exist.
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ *
+ */
+ public Object getAttribute(String name)
+ {
+ return mRequest.getAttribute(name);
+ }
+
+
+ /**
+ * Returns an <code>Enumeration</code> containing the
+ * names of the attributes available to this request.
+ * This method returns an empty <code>Enumeration</code>
+ * if the request has no attributes available to it.
+ *
+ *
+ * @return an <code>Enumeration</code> of strings
+ * containing the names
+ * of the request attributes, or an empty
+ * <code>Enumeration</code> if the request
+ * has no attributes available to it.
+ */
+ public java.util.Enumeration getAttributeNames()
+ {
+ return mRequest.getAttributeNames();
+ }
+
+
+ /**
+ * Returns the value of a request parameter as a <code>String</code>,
+ * or <code>null</code> if the parameter does not exist. Request parameters
+ * are extra information sent with the request. The returned parameter
+ * are "x-www-form-urlencoded" decoded.
+ * <p>
+ * Only parameters targeted to the current portlet are accessible.
+ * <p>
+ * This method should only be used if the
+ * parameter has only one value. If the parameter might have
+ * more than one value, use {@link #getParameterValues}.
+ * <p>
+ * If this method is used with a multivalued
+ * parameter, the value returned is equal to the first value
+ * in the array returned by <code>getParameterValues</code>.
+ *
+ *
+ *
+ * @param name a <code>String</code> specifying the
+ * name of the parameter
+ *
+ * @return a <code>String</code> representing the
+ * single value of the parameter
+ *
+ * @see #getParameterValues
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ *
+ */
+ public String getParameter(String name)
+ {
+ return mRequest.getParameter(name);
+ }
+
+
+ /**
+ *
+ * Returns an <code>Enumeration</code> of <code>String</code>
+ * objects containing the names of the parameters contained
+ * in this request. If the request has
+ * no parameters, the method returns an
+ * empty <code>Enumeration</code>.
+ * <p>
+ * Only parameters targeted to the current portlet are returned.
+ *
+ *
+ * @return an <code>Enumeration</code> of <code>String</code>
+ * objects, each <code>String</code> containing
+ * the name of a request parameter; or an
+ * empty <code>Enumeration</code> if the
+ * request has no parameters.
+ */
+ public Enumeration getParameterNames()
+ {
+ return mRequest.getParameterNames();
+ }
+
+
+ /**
+ * Returns an array of <code>String</code> objects containing
+ * all of the values the given request parameter has, or
+ * <code>null</code> if the parameter does not exist.
+ * The returned parameters are "x-www-form-urlencoded" decoded.
+ * <p>
+ * If the parameter has a single value, the array has a length
+ * of 1.
+ *
+ *
+ * @param name a <code>String</code> containing the name of
+ * the parameter the value of which is requested
+ *
+ * @return an array of <code>String</code> objects
+ * containing the parameter values.
+ *
+ * @see #getParameter
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ *
+ */
+ public String[] getParameterValues(String name)
+ {
+ return mRequest.getParameterValues(name);
+
+ }
+
+
+ /**
+ * Returns a <code>Map</code> of the parameters of this request.
+ * Request parameters are extra information sent with the request.
+ * 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 parameters exist this method returns an empty <code>Map</code>.
+ *
+ * @return an immutable <code>Map</code> containing parameter names as
+ * keys and parameter values as map values, or an empty <code>Map</code>
+ * if no 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 getParameterMap()
+ {
+ return mRequest.getParameterMap();
+ }
+
+
+ /**
+ * Returns a boolean indicating whether this request was made
+ * using a secure channel between client and the portal, such as HTTPS.
+ *
+ * @return true, if the request was made using a secure channel.
+ */
+ public boolean isSecure()
+ {
+ return mRequest.isSecure();
+ }
+
+
+ /**
+ * Stores an attribute in this request.
+ *
+ * <p>Attribute names should follow the same conventions as
+ * package names. Names beginning with <code>java.*</code>,
+ * <code>javax.*</code>, and <code>com.sun.*</code> are
+ * reserved for use by Sun Microsystems.
+ *<br> If the value passed into this method is <code>null</code>,
+ * the effect is the same as calling {@link #removeAttribute}.
+ *
+ *
+ * @param name a <code>String</code> specifying
+ * the name of the attribute
+ *
+ * @param o the <code>Object</code> to be stored
+ *
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+ public void setAttribute(String name, Object o)
+ {
+ mRequest.setAttribute(name, o);
+ }
+
+
+ /**
+ *
+ * Removes an attribute from this request. This method is not
+ * generally needed, as attributes only persist as long as the request
+ * is being handled.
+ *
+ * <p>Attribute names should follow the same conventions as
+ * package names. Names beginning with <code>java.*</code>,
+ * <code>javax.*</code>, and <code>com.sun.*</code> are
+ * reserved for use by Sun Microsystems.
+ *
+ * @param name a <code>String</code> specifying
+ * the name of the attribute to be removed
+ *
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+ public void removeAttribute(String name)
+ {
+ mRequest.removeAttribute(name);
+ }
+
+
+ /**
+ *
+ * Returns the session ID indicated in the client request.
+ * This session ID may not be a valid one, it may be an old
+ * one that has expired or has been invalidated.
+ * If the client request
+ * did not specify a session ID, this method returns
+ * <code>null</code>.
+ *
+ * @return a <code>String</code> specifying the session
+ * ID, or <code>null</code> if the request did
+ * not specify a session ID
+ *
+ * @see #isRequestedSessionIdValid
+ *
+ */
+ public String getRequestedSessionId()
+ {
+ return mRequest.getRequestedSessionId();
+ }
+
+
+ /**
+ *
+ * Checks whether the requested session ID is still valid.
+ *
+ * @return <code>true</code> if this
+ * request has an id for a valid session
+ * in the current session context;
+ * <code>false</code> otherwise
+ *
+ * @see #getRequestedSessionId
+ * @see #getPortletSession
+ */
+ public boolean isRequestedSessionIdValid()
+ {
+ return mRequest.isRequestedSessionIdValid();
+ }
+
+
+ /**
+ * Returns the portal preferred content type for the response.
+ * <p>
+ * The content type only includes the MIME type, not the
+ * character set.
+ * <p>
+ * Only content types that the portlet has defined in its
+ * deployment descriptor are valid return values for
+ * this method call. If the portlet has defined
+ * <code>'*'</code> or <code>'* / *'</code> as supported content
+ * types, these may also be valid return values.
+ *
+ * @return preferred MIME type of the response
+ */
+ public String getResponseContentType()
+ {
+ return mRequest.getResponseContentType();
+ }
+
+
+ /**
+ * Gets a list of content types which the portal accepts for the response.
+ * This list is ordered with the most preferable types listed first.
+ * <p>
+ * The content type only includes the MIME type, not the
+ * character set.
+ * <p>
+ * Only content types that the portlet has defined in its
+ * deployment descriptor are valid return values for
+ * this method call. If the portlet has defined
+ * <code>'*'</code> or <code>'* / *'</code> as supported content
+ * types, these may also be valid return values.
+ *
+ * @return ordered list of MIME types for the response
+ */
+ public java.util.Enumeration getResponseContentTypes()
+ {
+ return mRequest.getResponseContentTypes();
+ }
+
+
+ /**
+ * Returns the preferred Locale in which the portal will accept content.
+ * The Locale may be based on the Accept-Language header of the client.
+ *
+ * @return the prefered Locale in which the portal will accept content.
+ */
+ public
+
+ java.util.Locale getLocale()
+ {
+ return mRequest.getLocale();
+ }
+
+
+ /**
+ * Returns an Enumeration of Locale objects indicating, in decreasing
+ * order starting with the preferred locale in which the portal will
+ * accept content for this request.
+ * The Locales may be based on the Accept-Language header of the client.
+ *
+ * @return an Enumeration of Locales, in decreasing order, in which
+ * the portal will accept content for this request
+ */
+ public java.util.Enumeration getLocales()
+ {
+ return mRequest.getLocales();
+ }
+
+
+ /**
+ * Returns the name of the scheme used to make this request.
+ * For example, <code>http</code>, <code>https</code>, or <code>ftp</code>.
+ * Different schemes have different rules for constructing URLs,
+ * as noted in RFC 1738.
+ *
+ * @return a <code>String</code> containing the name
+ * of the scheme used to make this request
+ */
+ public String getScheme()
+ {
+ return mRequest.getScheme();
+ }
+
+
+ /**
+ * Returns the host name of the server that received the request.
+ *
+ * @return a <code>String</code> containing the name
+ * of the server to which the request was sent
+ */
+ public String getServerName()
+ {
+ return mRequest.getServerName();
+ }
+
+
+ /**
+ * Returns the port number on which this request was received.
+ *
+ * @return an integer specifying the port number
+ */
+ public int getServerPort()
+ {
+ return mRequest.getServerPort();
+ }
+
+
+}
Added: myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletResponseDecorator.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletResponseDecorator.java?rev=588256&view=auto
==============================================================================
--- myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletResponseDecorator.java (added)
+++ myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/PortletResponseDecorator.java Thu Oct 25 08:36:43 2007
@@ -0,0 +1,129 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.myfaces.portlet.faces.bridge.wrapper;
+
+import javax.portlet.PortletResponse;
+
+public class PortletResponseDecorator
+ implements PortletResponse
+{
+ protected PortletResponse mResponse = null;
+
+
+ public PortletResponseDecorator(PortletResponse response)
+ throws IllegalArgumentException
+ {
+ if (response == null)
+ throw new IllegalArgumentException();
+ mResponse = response;
+ }
+
+ public PortletResponse getParent()
+ {
+ return mResponse;
+ }
+
+ public PortletResponse getRoot()
+ {
+ PortletResponse root = mResponse;
+ while (root instanceof PortletResponseDecorator)
+ {
+ root = ((PortletResponseDecorator) root).getParent();
+ }
+ return root;
+ }
+
+ /**
+ * Adds a String property to an existing key to be returned to the portal.
+ * <p>
+ * This method allows response properties to have multiple values.
+ * <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 value the value of the property to be returned to the portal
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if key is <code>null</code>.
+ */
+ public
+
+ void addProperty(String key, String value)
+ {
+ mResponse.addProperty(key, value);
+ }
+
+
+ /**
+ * Sets a String property to be returned to the portal.
+ * <p>
+ * Properties can be used by portlets to provide vendor specific
+ * information to the portal.
+ * <p>
+ * This method resets all properties previously added with the same key.
+ *
+ * @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
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if key is <code>null</code>.
+ */
+ public
+
+ void setProperty(String key, String value)
+ {
+ mResponse.setProperty(key, value);
+ }
+
+
+ /**
+ * Returns the encoded URL of the resource, like servlets,
+ * JSPs, images and other static files, at the given path.
+ * <p>
+ * Some portal/portlet-container implementation may require
+ * those URLs to contain implementation specific data encoded
+ * in it. Because of that, portlets should use this method to
+ * create such URLs.
+ * <p>
+ * The <code>encodeURL</code> method may include the session ID
+ * and other portal/portlet-container specific information into the URL.
+ * If encoding is not needed, it returns the URL unchanged.
+ *
+ * @param path
+ * the URI path to the resource. This must be either
+ * an absolute URL (e.g.
+ * <code>http://my.co/myportal/mywebap/myfolder/myresource.gif</code>)
+ * or a full path URI (e.g. <code>/myportal/mywebap/myfolder/myresource.gif</code>).
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if path doesn't have a leading slash or is not an absolute URL
+ *
+ * @return the encoded resource URL as string
+ */
+ public
+
+ String encodeURL(String path)
+ {
+ return mResponse.encodeURL(path);
+ }
+
+
+}
Added: myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/RenderRequestDecorator.java
URL: http://svn.apache.org/viewvc/myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/RenderRequestDecorator.java?rev=588256&view=auto
==============================================================================
--- myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/RenderRequestDecorator.java (added)
+++ myfaces/portlet-bridge/trunk/impl/src/main/java/org/apache/myfaces/portlet/faces/bridge/wrapper/RenderRequestDecorator.java Thu Oct 25 08:36:43 2007
@@ -0,0 +1,41 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.myfaces.portlet.faces.bridge.wrapper;
+
+
+import javax.portlet.RenderRequest;
+
+import org.apache.myfaces.portlet.faces.bridge.wrapper.PortletRequestDecorator;
+
+public class RenderRequestDecorator
+ extends PortletRequestDecorator
+ implements RenderRequest
+{
+
+
+ public RenderRequestDecorator(RenderRequest request)
+ throws IllegalArgumentException
+ {
+
+ super(request);
+ }
+
+
+}