portals-pluto-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cdore...@apache.org
Subject svn commit: r589118 [1/2] - in /portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet: ./ filter/
Date Sat, 27 Oct 2007 14:41:37 GMT
Author: cdoremus
Date: Sat Oct 27 07:41:35 2007
New Revision: 589118

URL: http://svn.apache.org/viewvc?rev=589118&view=rev
Log:
Updates portlet2_api module to JSR-286 spec Rev 26 from updateToRev26_container_fixes102307.patch  in PLUTO-404

Modified:
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ActionResponse.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/BaseURL.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ClientDataRequest.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/EventRequest.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/GenericPortlet.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/MimeResponse.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/Portlet.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletContext.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletException.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletModeException.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletPreferences.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequest.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletResponse.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletSession.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURL.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURLGenerationListener.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/RenderResponse.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceResponse.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceURL.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/StateAwareResponse.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ValidatorException.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/filter/ActionResponseWrapper.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/filter/EventResponseWrapper.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/filter/PortletResponseWrapper.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/filter/RenderResponseWrapper.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/filter/ResourceRequestWrapper.java
    portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/filter/ResourceResponseWrapper.java

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ActionResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ActionResponse.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ActionResponse.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ActionResponse.java Sat Oct 27 07:41:35 2007
@@ -57,10 +57,6 @@
    * the portlet container may encode the given URL before the 
    * redirection is issued to the client.
    * <p>
-   * It is valid to provide a portlet URL as parameter on the redirect URL. The portlet 
-   * container will translate the portlet URL to a valid URL that can be used for
-   * invoking the portlet again.  
-   * <p>
    * The sendRedirect method can not be invoked after any of the 
    * following methods of the ActionResponse interface has been called:
    * <ul>
@@ -82,6 +78,46 @@
    */
 
   public void sendRedirect(String location)
+    throws java.io.IOException; 
+
+  /**
+   * Instructs the portlet container to send a redirect response 
+   * to the client using the specified redirect location URL and
+   * encode a render URL as parameter on the redirect 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 portlet container will attach a render URL with the currently set portlet mode, window state
+   * and render parameters on the <code>ActionResponse</code> and the current public render parameters. 
+   * The attached URL will be available as query parameter value under the key provided with the 
+   * <code>renderUrlParamName</code> parameter.
+   * <p>
+   * New values for
+   * <ul>
+   * <li>setPortletMode
+   * <li>setWindowState
+   * <li>setRenderParameter
+   * <li>setRenderParameters
+   * </ul>
+   * are only used for creating the render URL and not remembered after the redirect
+   * is issued. 
+   *
+   * @param		location	the redirect location URL
+   * @param     renderUrlParamName	name of the query parameter under which the portlet container should
+   *                                store a render URL to this portlet
+   *                                
+   * @exception	java.io.IOException	
+   *                    if an input or output exception occurs.
+   * @exception	java.lang.IllegalArgumentException	
+   *                    if a relative path URL is given
+   */
+
+  public void sendRedirect(String location, String renderUrlParamName)
     throws java.io.IOException; 
 }
 

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/BaseURL.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/BaseURL.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/BaseURL.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/BaseURL.java Sat Oct 27 07:41:35 2007
@@ -197,7 +197,7 @@
      * valid XML characters, i.e. &lt, &gt, &amp, &#039, &#034 will get converted
      * into their corresponding character entity codes (&lt to &&lt, &gt to &&gt, 
      * &amp to &&amp, &#039 to &&#039, &#034 to &&#034).
-     * If escapeXML is set to flase no escaping will be done.
+     * If escapeXML is set to false no escaping will be done.
      * <p>
      * Note that the URL written to the output stream may not be a valid URL, as it may
      * be rewritten by the portal/portlet-container before returning the 
@@ -206,7 +206,7 @@
      * @param out       the writer to write the portlet URL to
      * @param escapeXML denotes if the URL should be XML escaped before written to the output
      *                  stream or not
-     * @throws java.io.IOException  if an I/O error occured while writing the URL
+     * @throws java.io.IOException  if an I/O error occurred while writing the URL
      *
      * @since 2.0
      */

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ClientDataRequest.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ClientDataRequest.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ClientDataRequest.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ClientDataRequest.java Sat Oct 27 07:41:35 2007
@@ -71,7 +71,7 @@
      * {@link #getReader} method returns.
      *
      * @param   enc a <code>String</code> containing the name of 
-     *          the chararacter encoding.
+     *          the character encoding.
      *
      * @exception       java.io.UnsupportedEncodingException if this is not a valid encoding
      * @exception       java.lang.IllegalStateException      if this method is called after 
@@ -122,7 +122,7 @@
      * does not specify a character encoding.
      *
      * @return      a <code>String</code> containing the name of 
-     *          the chararacter encoding, or <code>null</code>
+     *          the character encoding, or <code>null</code>
      *          if the request does not specify a character encoding.
      */
     

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/EventRequest.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/EventRequest.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/EventRequest.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/EventRequest.java Sat Oct 27 07:41:35 2007
@@ -44,7 +44,7 @@
 public interface EventRequest extends PortletRequest {
 
     /**
-     * Returns the event that trigged the call to the processEvent method.
+     * Returns the event that triggered the call to the processEvent method.
      * 
      * @return      the event that triggered the current processEvent call. 
      */
@@ -52,7 +52,7 @@
     public Event getEvent();
     
     /**
-     * Returns the name of the HTTP method with which the orginal action request was made, 
+     * Returns the name of the HTTP method with which the original action request was made, 
      * for example, POST, or PUT.
      * 
      * @since 2.0

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/GenericPortlet.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/GenericPortlet.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/GenericPortlet.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/GenericPortlet.java Sat Oct 27 07:41:35 2007
@@ -69,10 +69,7 @@
  * or class variables and external objects such as files, database connections,
  * and network connections.
  */
-public abstract class GenericPortlet implements Portlet, PortletConfig,
-		EventPortlet, ResourceServingPortlet {
-
-
+public abstract class GenericPortlet implements Portlet, PortletConfig, EventPortlet, ResourceServingPortlet {
 
 	private transient PortletConfig config;
 
@@ -81,109 +78,109 @@
 	private transient Map<String, Method> renderModeHandlingMethodsMap = new HashMap<String, Method>();
 
 	/**
-     * Does nothing.
-     */
+	 * Does nothing.
+	 */
 
 	public GenericPortlet() {
 	}
 
 	/**
-     * Called by the portlet container to indicate to a portlet that the portlet
-     * is being placed into service.
-     * <p>
-     * The default implementation stores the <code>PortletConfig</code>
-     * object and checks for annotated methods with the annotations
-     * </ul>
-     * <li>ProcessActiony/li>
-     * <li>ProcessEvent</li>
-     * <li>RenderMode</li>
-     * </ul>
-     * and stores these in a hashmap for later dispatching.
-     * <p>
-     * The portlet container calls the <code>init</code> method exactly once
-     * after instantiating the portlet. The <code>init</code> method must
-     * complete successfully before the portlet can receive any requests.
-     * 
-     * <p>
-     * The portlet container cannot place the portlet into service if the
-     * <code>init</code> method does one of the following:
-     * <ol>
-     * <li>it throws a <code>PortletException</code>
-     * <li>it does not return within a time period defined by the Web server
-     * </ol>
-     * 
-     * 
-     * @param config
-     *            a <code>PortletConfig</code> object containing the portlet
-     *            configuration and initialization parameters
-     * 
-     * @exception PortletException
-     *                if an exception has occurred that interferes with the
-     *                portlet normal operation.
-     * @exception UnavailableException
-     *                if the portlet cannot perform the initialization at this
-     *                time.
-     */
+	 * Called by the portlet container to indicate to a portlet that the portlet
+	 * is being placed into service.
+	 * <p>
+	 * The default implementation stores the <code>PortletConfig</code> object
+	 * and checks for annotated methods with the annotations
+	 * </ul>
+	 * <li>ProcessAction</li>
+	 * <li>ProcessEvent</li>
+	 * <li>RenderMode</li>
+	 * </ul>
+	 * and stores these in a hashmap for later dispatching.
+	 * <p>
+	 * The portlet container calls the <code>init</code> method exactly once
+	 * after instantiating the portlet. The <code>init</code> method must
+	 * complete successfully before the portlet can receive any requests.
+	 * 
+	 * <p>
+	 * The portlet container cannot place the portlet into service if the
+	 * <code>init</code> method does one of the following:
+	 * <ol>
+	 * <li>it throws a <code>PortletException</code>
+	 * <li>it does not return within a time period defined by the Web server
+	 * </ol>
+	 * 
+	 * 
+	 * @param config
+	 *            a <code>PortletConfig</code> object containing the portlet
+	 *            configuration and initialization parameters
+	 * 
+	 * @exception PortletException
+	 *                if an exception has occurred that interferes with the
+	 *                portlet normal operation.
+	 * @exception UnavailableException
+	 *                if the portlet cannot perform the initialization at this
+	 *                time.
+	 */
 	public void init(PortletConfig config) throws PortletException {
 		this.config = config;
-		cacheAnnotations();
-		
+		cacheAnnotatedMethods();
 		this.init();
 	}
 
 	/**
-     * 
-     * A convenience method which can be overridden so that there's no need to
-     * call <code>super.init(config)</code>.
-     * 
-     * <p>
-     * Instead of overriding {@link #init(PortletConfig)}, simply override this
-     * method and it will be called by
-     * <code>GenericPortlet.init(PortletConfig config)</code>. The
-     * <code>PortletConfig</code> object can still be retrieved via {@link
-     * #getPortletConfig}.
-     * 
-     * @exception PortletException
-     *                if an exception has occurred that interferes with the
-     *                portlet normal operation.
-     * @exception UnavailableException
-     *                if the portlet is unavailable to perform init
-     */
+	 * 
+	 * A convenience method which can be overridden so that there's no need to
+	 * call <code>super.init(config)</code>.
+	 * 
+	 * <p>
+	 * Instead of overriding {@link #init(PortletConfig)}, simply override this
+	 * method and it will be called by
+	 * <code>GenericPortlet.init(PortletConfig config)</code>. The
+	 * <code>PortletConfig</code> object can still be retrieved via {@link
+	 * #getPortletConfig}.
+	 * 
+	 * @exception PortletException
+	 *                if an exception has occurred that interferes with the
+	 *                portlet normal operation.
+	 * @exception UnavailableException
+	 *                if the portlet is unavailable to perform init
+	 */
 	public void init() throws PortletException {
 	}
 
 	/**
-     * Called by the portlet container to allow the portlet to process an action
-     * request. This method is called if the client request was originated by a
-     * URL created (by the portlet) with the
-     * <code>RenderResponse.createActionURL()</code> method.
-     * <p>
-     * The default implementation throws an exception.
-     * 
-     * @param request
-     *            the action request
-     * @param response
-     *            the action response
-     * @exception PortletException
-     *                if the portlet cannot fulfilling the request
-     * @exception UnavailableException
-     *                if the portlet is unavailable to process the action at
-     *                this time
-     * @exception PortletSecurityException
-     *                if the portlet cannot fullfill this request because of
-     *                security reasons
-     * @exception java.io.IOException
-     *                if the streaming causes an I/O problem
-     */
-	public void processAction(ActionRequest request, ActionResponse response)
-			throws PortletException, java.io.IOException {		
+	 * Called by the portlet container to allow the portlet to process an action
+	 * request. This method is called if the client request was originated by a
+	 * URL created (by the portlet) with the
+	 * <code>RenderResponse.createActionURL()</code> method.
+	 * <p>
+	 * The default implementation throws an exception.
+	 * 
+	 * @param request
+	 *            the action request
+	 * @param response
+	 *            the action response
+	 * @exception PortletException
+	 *                if the portlet cannot fulfilling the request
+	 * @exception UnavailableException
+	 *                if the portlet is unavailable to process the action at
+	 *                this time
+	 * @exception PortletSecurityException
+	 *                if the portlet cannot fullfill this request because of
+	 *                security reasons
+	 * @exception java.io.IOException
+	 *                if the streaming causes an I/O problem
+	 */
+	public void processAction(ActionRequest request, ActionResponse response) throws PortletException,
+			java.io.IOException {
 		String action = request.getParameter(ActionRequest.ACTION_NAME);
 
 		try {
 			// check if action is cached
-			if ( processActionHandlingMethodsMap.containsKey(action) ) {
-				processActionHandlingMethodsMap.get(action).invoke(this, request, response);
-				return;				
+			Method actionMethod = processActionHandlingMethodsMap.get(action);
+			if (actionMethod != null) {
+				actionMethod.invoke(this, request, response);
+				return;
 			}
 		} catch (Exception e) {
 			throw new PortletException(e);
@@ -193,147 +190,151 @@
 		throw new PortletException("processAction method not implemented");
 	}
 
-	
 	/**
-     * The default implementation of this method sets the headers using the
-     * <code>doHeaders</code> method, sets the title using the 
-     * <code>getTitle</code> method and invokes the <code>doDispatch</code>
-     * method.
-     * <p>
-     * It also evaluates the <code>RENDER_PART</code> request attribute and if set calls
-     * the <code>doHeaders, getNextPossiblePortletModes</code> and <code>getTitle</code> methods for the
-     * <code>RENDER_HEADERS</code> part and the <code>doDispatch</code>
-     * method for the <code>RENDER_MARKUP</code> part.<br>
-     * If the <code>RENDER_PART</code> request attribute is not set all
-     * of the above methods will be called.
-     * 
-     * @param request
-     *            the render request
-     * @param response
-     *            the render response
-     * 
-     * @exception PortletException
-     *                if the portlet cannot fulfilling the request
-     * @exception UnavailableException
-     *                if the portlet is unavailable to perform render at this
-     *                time
-     * @exception PortletSecurityException
-     *                if the portlet cannot fullfill this request because of
-     *                security reasons
-     * @exception java.io.IOException
-     *                if the streaming causes an I/O problem
-     * 
-     */
-	public void render (RenderRequest request, RenderResponse response)
-    		throws PortletException, java.io.IOException {
-		if (request.getAttribute(RenderRequest.RENDER_PART) != null) {  // streaming portal calling
-			if (request.getAttribute(RenderRequest.RENDER_PART).equals(RenderRequest.RENDER_HEADERS) ) {
-			    doHeaders(request, response);
-			    Collection<PortletMode> nextModes = getNextPossiblePortletModes(request);
-			    if (nextModes != null)
-			    	response.setNextPossiblePortletModes(nextModes);
-			    response.setTitle(getTitle(request));				
-			} else if (request.getAttribute(RenderRequest.RENDER_PART).equals(RenderRequest.RENDER_MARKUP) ) {
-			    doDispatch(request, response);				
+	 * The default implementation of this method sets the headers using the
+	 * <code>doHeaders</code> method, sets the title using the
+	 * <code>getTitle</code> method and invokes the <code>doDispatch</code>
+	 * method.
+	 * <p>
+	 * It also evaluates the <code>RENDER_PART</code> request attribute and if
+	 * set calls the <code>doHeaders, getNextPossiblePortletModes</code> and
+	 * <code>getTitle</code> methods for the <code>RENDER_HEADERS</code>
+	 * part and the <code>doDispatch</code> method for the
+	 * <code>RENDER_MARKUP</code> part.<br>
+	 * If the <code>RENDER_PART</code> request attribute is not set all of the
+	 * above methods will be called.
+	 * 
+	 * @param request
+	 *            the render request
+	 * @param response
+	 *            the render response
+	 * 
+	 * @exception PortletException
+	 *                if the portlet cannot fulfilling the request
+	 * @exception UnavailableException
+	 *                if the portlet is unavailable to perform render at this
+	 *                time
+	 * @exception PortletSecurityException
+	 *                if the portlet cannot fullfill this request because of
+	 *                security reasons
+	 * @exception java.io.IOException
+	 *                if the streaming causes an I/O problem
+	 * 
+	 */
+	public void render(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
+		Object renderPartAttrValue = request.getAttribute(RenderRequest.RENDER_PART);
+		if (renderPartAttrValue != null) {
+			// streaming portal calling
+			if (renderPartAttrValue.equals(RenderRequest.RENDER_HEADERS)) {
+				doHeaders(request, response);
+				Collection<PortletMode> nextModes = getNextPossiblePortletModes(request);
+				if (nextModes != null)
+					response.setNextPossiblePortletModes(nextModes);
+				response.setTitle(getTitle(request));
+			} else if (renderPartAttrValue.equals(RenderRequest.RENDER_MARKUP)) {
+				doDispatch(request, response);
+			} else {
+				throw new PortletException("Unknown value of the 'javax.portlet.render_part' request attribute");
 			}
-		} else {	// buffered portal calling
+		} else {
+			// buffered portal calling
 			doHeaders(request, response);
-		    Collection<PortletMode> nextModes = getNextPossiblePortletModes(request);
-		    if (nextModes != null)
-		    	response.setNextPossiblePortletModes(nextModes);
+			Collection<PortletMode> nextModes = getNextPossiblePortletModes(request);
+			if (nextModes != null)
+				response.setNextPossiblePortletModes(nextModes);
 			response.setTitle(getTitle(request));
 			doDispatch(request, response);
 		}
 	}
 
 	/**
-     * Used by the render method to get the title.
-     * <p>
-     * The default implementation gets the title from the ResourceBundle of the
-     * PortletConfig of the portlet. The title is retrieved using the
-     * 'javax.portlet.title' resource name.
-     * <p>
-     * Portlets can overwrite this method to provide dynamic titles (e.g. based
-     * on locale, client, and session information). Examples are:
-     * <UL>
-     * <LI>language-dependant titles for multi-lingual portals
-     * <LI>shorter titles for WAP phones
-     * <LI>the number of messages in a mailbox portlet
-     * </UL>
-     * 
-     * @return the portlet title for this window
-     * @throws java.lang.IllegalStateException
-     *             if no portlet config object is available
-     */
+	 * Used by the render method to get the title.
+	 * <p>
+	 * The default implementation gets the title from the ResourceBundle of the
+	 * PortletConfig of the portlet. The title is retrieved using the
+	 * 'javax.portlet.title' resource name.
+	 * <p>
+	 * Portlets can overwrite this method to provide dynamic titles (e.g. based
+	 * on locale, client, and session information). Examples are:
+	 * <UL>
+	 * <LI>language-dependant titles for multi-lingual portals</li>
+	 * <LI>shorter titles for WAP phones</li>
+	 * <LI>the number of messages in a mailbox portlet</li>
+	 * </UL>
+	 * 
+	 * @return the portlet title for this window
+	 * @throws java.lang.IllegalStateException
+	 *             if no portlet config object is available
+	 */
 	protected java.lang.String getTitle(RenderRequest request) {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
 					"Config is null, please ensure that your init(config) method calls super.init(config)");
 
-		return config.getResourceBundle(request.getLocale()).getString(
-				"javax.portlet.title");
+		return config.getResourceBundle(request.getLocale()).getString("javax.portlet.title");
 	}
 
 	/**
-     * The default implementation of this method routes the render request to:
-     * <ol>
-     *   <li>method annotated with <code>@RenderMode</name> and the name of the
-     *       portlet mode</li>
-     *   <li>a set of helper methods depending on the current portlet mode the portlet
-     * 		 is currently in. These methods are:
-     * 		<ul>
-     * 			<li><code>doView</code> for handling <code>view</code> requests
-     * 			<li><code>doEdit</code> for handling <code>edit</code> requests
-     * 			<li><code>doHelp</code> for handling <code>help</code> requests
-     * 		</ul>
-     *	</li>
-     * </ul> 
-     * <P>
-     * If the window state of this portlet is <code>minimized</code>, this
-     * method does not invoke any of the portlet mode rendering methods.
-     * <p>
-     * For handling custom portlet modes the portlet should either use the
-     * <code>@RenderMode</name> annotation or override this
-     * method.
-     * 
-     * @param request
-     *            the render request
-     * @param response
-     *            the render response
-     * 
-     * @exception PortletException
-     *                if the portlet cannot fulfilling the request
-     * @exception UnavailableException
-     *                if the portlet is unavailable to perform render at this
-     *                time
-     * @exception PortletSecurityException
-     *                if the portlet cannot fullfill this request because of
-     *                security reasons
-     * @exception java.io.IOException
-     *                if the streaming causes an I/O problem
-     * 
-     * @see #doView(RenderRequest, RenderResponse)
-     * @see #doEdit(RenderRequest, RenderResponse)
-     * @see #doHelp(RenderRequest, RenderResponse)
-     */
-	protected void doDispatch(RenderRequest request, RenderResponse response)
-			throws PortletException, java.io.IOException {
+	 * The default implementation of this method routes the render request to:
+	 * <ol>
+	 * <li>method annotated with <code>@RenderMode</name> and the name of the
+	 *       portlet mode</li>
+	 *   <li>a set of helper methods depending on the current portlet mode the portlet
+	 * 		 is currently in. These methods are:
+	 * 		<ul>
+	 * 			<li><code>doView</code> for handling <code>view</code> requests</li>
+	 * 			<li><code>doEdit</code> for handling <code>edit</code> requests</li>
+	 * 			<li><code>doHelp</code> for handling <code>help</code> requests</li>
+	 * 		</ul>
+	 *	</li>
+	 * </ul> 
+	 * <P>
+	 * If the window state of this portlet is <code>minimized</code>, this
+	 * method does not invoke any of the portlet mode rendering methods.
+	 * <p>
+	 * For handling custom portlet modes the portlet should either use the
+	 * <code>@RenderMode</name> annotation or override this
+	 * method.
+	 * 
+	 * @param request
+	 *            the render request
+	 * @param response
+	 *            the render response
+	 * 
+	 * @exception PortletException
+	 *                if the portlet cannot fulfilling the request
+	 * @exception UnavailableException
+	 *                if the portlet is unavailable to perform render at this
+	 *                time
+	 * @exception PortletSecurityException
+	 *                if the portlet cannot fullfill this request because of
+	 *                security reasons
+	 * @exception java.io.IOException
+	 *                if the streaming causes an I/O problem
+	 * 
+	 * @see #doView(RenderRequest, RenderResponse)
+	 * @see #doEdit(RenderRequest, RenderResponse)
+	 * @see #doHelp(RenderRequest, RenderResponse)
+	 */
+	protected void doDispatch(RenderRequest request, RenderResponse response) throws PortletException,
+			java.io.IOException {
 		WindowState state = request.getWindowState();
-		
+
 		if (!state.equals(WindowState.MINIMIZED)) {
 			PortletMode mode = request.getPortletMode();
 			// first look if there are methods annotated for
 			// handling the rendering of this mode
 			try {
 				// check if mode is cached
-				if ( renderModeHandlingMethodsMap.containsKey(mode) ) {
-					renderModeHandlingMethodsMap.get(mode).invoke(this, request, response);
+				Method renderMethod = renderModeHandlingMethodsMap.get(mode.toString());
+				if (renderMethod != null) {
+					renderMethod.invoke(this, request, response);
 					return;
 				}
 			} catch (Exception e) {
 				throw new PortletException(e);
 			}
-			
+
 			// if not, try the default doXYZ methods
 			if (mode.equals(PortletMode.VIEW)) {
 				doView(request, response);
@@ -345,105 +346,101 @@
 				throw new PortletException("unknown portlet mode: " + mode);
 			}
 		}
-
 	}
 
 	/**
-     * Helper method to serve up the mandatory <code>view</code> mode.
-     * <p>
-     * The default implementation throws an exception.
-     * 
-     * @param request
-     *            the portlet request
-     * @param response
-     *            the render response
-     * 
-     * @exception PortletException
-     *                if the portlet cannot fulfilling the request
-     * @exception UnavailableException
-     *                if the portlet is unavailable to perform render at this
-     *                time
-     * @exception PortletSecurityException
-     *                if the portlet cannot fullfill this request because of
-     *                security reasons
-     * @exception java.io.IOException
-     *                if the streaming causes an I/O problem
-     * 
-     */
-	protected void doView(RenderRequest request, RenderResponse response)
-			throws PortletException, java.io.IOException {
+	 * Helper method to serve up the mandatory <code>view</code> mode.
+	 * <p>
+	 * The default implementation throws an exception.
+	 * 
+	 * @param request
+	 *            the portlet request
+	 * @param response
+	 *            the render response
+	 * 
+	 * @exception PortletException
+	 *                if the portlet cannot fulfilling the request
+	 * @exception UnavailableException
+	 *                if the portlet is unavailable to perform render at this
+	 *                time
+	 * @exception PortletSecurityException
+	 *                if the portlet cannot fullfill this request because of
+	 *                security reasons
+	 * @exception java.io.IOException
+	 *                if the streaming causes an I/O problem
+	 * 
+	 */
+	protected void doView(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
 		throw new PortletException("doView method not implemented");
 	}
 
 	/**
-     * Helper method to serve up the <code>edit</code> mode.
-     * <p>
-     * The default implementation throws an exception.
-     * 
-     * @param request
-     *            the portlet request
-     * @param response
-     *            the render response
-     * 
-     * @exception PortletException
-     *                if the portlet cannot fulfilling the request
-     * @exception UnavailableException
-     *                if the portlet is unavailable to perform render at this
-     *                time
-     * @exception PortletSecurityException
-     *                if the portlet cannot fullfill this request because of
-     *                security reasons
-     * @exception java.io.IOException
-     *                if the streaming causes an I/O problem
-     * 
-     */
-	protected void doEdit(RenderRequest request, RenderResponse response)
-			throws PortletException, java.io.IOException {
+	 * Helper method to serve up the <code>edit</code> mode.
+	 * <p>
+	 * The default implementation throws an exception.
+	 * 
+	 * @param request
+	 *            the portlet request
+	 * @param response
+	 *            the render response
+	 * 
+	 * @exception PortletException
+	 *                if the portlet cannot fulfilling the request
+	 * @exception UnavailableException
+	 *                if the portlet is unavailable to perform render at this
+	 *                time
+	 * @exception PortletSecurityException
+	 *                if the portlet cannot fullfill this request because of
+	 *                security reasons
+	 * @exception java.io.IOException
+	 *                if the streaming causes an I/O problem
+	 * 
+	 */
+	protected void doEdit(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
 		throw new PortletException("doEdit method not implemented");
 	}
 
 	/**
-     * Helper method to serve up the <code>help</code> mode.
-     * <p>
-     * The default implementation throws an exception.
-     * 
-     * @param request
-     *            the portlet request
-     * @param response
-     *            the render response
-     * 
-     * @exception PortletException
-     *                if the portlet cannot fulfilling the request
-     * @exception UnavailableException
-     *                if the portlet is unavailable to perform render at this
-     *                time
-     * @exception PortletSecurityException
-     *                if the portlet cannot fullfill this request because of
-     *                security reasons
-     * @exception java.io.IOException
-     *                if the streaming causes an I/O problem
-     */
-	protected void doHelp(RenderRequest request, RenderResponse response)
-			throws PortletException, java.io.IOException {
+	 * Helper method to serve up the <code>help</code> mode.
+	 * <p>
+	 * The default implementation throws an exception.
+	 * 
+	 * @param request
+	 *            the portlet request
+	 * @param response
+	 *            the render response
+	 * 
+	 * @exception PortletException
+	 *                if the portlet cannot fulfilling the request
+	 * @exception UnavailableException
+	 *                if the portlet is unavailable to perform render at this
+	 *                time
+	 * @exception PortletSecurityException
+	 *                if the portlet cannot fullfill this request because of
+	 *                security reasons
+	 * @exception java.io.IOException
+	 *                if the streaming causes an I/O problem
+	 */
+	protected void doHelp(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
 		throw new PortletException("doHelp method not implemented");
 	}
 
 	/**
-     * Returns the PortletConfig object of this portlet.
-     * 
-     * @return the PortletConfig object of this portlet
-     */
+	 * Returns the PortletConfig object of this portlet.
+	 * 
+	 * @return the PortletConfig object of this portlet
+	 */
 	public PortletConfig getPortletConfig() {
 		return config;
 	}
 
 	/**
-     * Called by the portlet container to indicate to a portlet that the portlet
-     * is being taken out of service.
-     * <p>
-     * The default implementation does nothing.
-     * 
-     */
+	 * Called by the portlet container to indicate to a portlet that the portlet
+	 * is being taken out of service.
+	 * <p>
+	 * The default implementation does nothing.
+	 * 
+	 */
 	public void destroy() {
 		// do nothing
 	}
@@ -453,12 +450,12 @@
 	// -------------------------------------------------------------------------
 
 	/**
-     * Returns the name of this portlet.
-     * 
-     * @return the portlet name
-     * 
-     * @see PortletConfig#getPortletName()
-     */
+	 * Returns the name of this portlet.
+	 * 
+	 * @return the portlet name
+	 * 
+	 * @see PortletConfig#getPortletName()
+	 */
 	public String getPortletName() {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
@@ -468,11 +465,11 @@
 	}
 
 	/**
-     * Returns the <code>PortletContext</code> of the portlet application the
-     * portlet is in.
-     * 
-     * @return the portlet application context
-     */
+	 * Returns the <code>PortletContext</code> of the portlet application the
+	 * portlet is in.
+	 * 
+	 * @return the portlet application context
+	 */
 	public PortletContext getPortletContext() {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
@@ -482,13 +479,13 @@
 	}
 
 	/**
-     * Gets the resource bundle for the given locale based on the resource
-     * bundle defined in the deployment descriptor with
-     * <code>resource-bundle</code> tag or the inlined resources defined in
-     * the deployment descriptor.
-     * 
-     * @return the resource bundle for the given locale
-     */
+	 * Gets the resource bundle for the given locale based on the resource
+	 * bundle defined in the deployment descriptor with
+	 * <code>resource-bundle</code> tag or the inlined resources defined in
+	 * the deployment descriptor.
+	 * 
+	 * @return the resource bundle for the given locale
+	 */
 	public java.util.ResourceBundle getResourceBundle(java.util.Locale locale) {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
@@ -498,19 +495,19 @@
 	}
 
 	/**
-     * Returns a String containing the value of the named initialization
-     * parameter, or null if the parameter does not exist.
-     * 
-     * @param name
-     *            a <code>String</code> specifying the name of the
-     *            initialization parameter
-     * 
-     * @return a <code>String</code> containing the value of the
-     *         initialization parameter
-     * 
-     * @exception java.lang.IllegalArgumentException
-     *                if name is <code>null</code>.
-     */
+	 * Returns a String containing the value of the named initialization
+	 * parameter, or null if the parameter does not exist.
+	 * 
+	 * @param name
+	 *            a <code>String</code> specifying the name of the
+	 *            initialization parameter
+	 * 
+	 * @return a <code>String</code> containing the value of the
+	 *         initialization parameter
+	 * 
+	 * @exception java.lang.IllegalArgumentException
+	 *                if name is <code>null</code>.
+	 */
 	public String getInitParameter(java.lang.String name) {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
@@ -520,15 +517,15 @@
 	}
 
 	/**
-     * Returns the names of the portlet initialization parameters as an
-     * Enumeration of String objects, or an empty Enumeration if the portlet has
-     * no initialization parameters.
-     * 
-     * @return an <code>Enumeration</code> of <code>String</code> objects
-     *         containing the names of the portlet initialization parameters, or
-     *         an empty Enumeration if the portlet has no initialization
-     *         parameters.
-     */
+	 * Returns the names of the portlet initialization parameters as an
+	 * Enumeration of String objects, or an empty Enumeration if the portlet has
+	 * no initialization parameters.
+	 * 
+	 * @return an <code>Enumeration</code> of <code>String</code> objects
+	 *         containing the names of the portlet initialization parameters, or
+	 *         an empty Enumeration if the portlet has no initialization
+	 *         parameters.
+	 */
 	public java.util.Enumeration<String> getInitParameterNames() {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
@@ -537,7 +534,9 @@
 		return config.getInitParameterNames();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see javax.portlet.PortletConfig#getProcessingEventQNames()
 	 */
 	public Enumeration<QName> getProcessingEventQNames() {
@@ -548,7 +547,9 @@
 		return config.getProcessingEventQNames();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see javax.portlet.PortletConfig#getPublishingEventQNames()
 	 */
 	public Enumeration<QName> getPublishingEventQNames() {
@@ -559,7 +560,9 @@
 		return config.getPublishingEventQNames();
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see javax.portlet.PortletConfig#getSupportedLocales()
 	 */
 	public Enumeration<Locale> getSupportedLocales() {
@@ -570,121 +573,118 @@
 		return config.getSupportedLocales();
 	}
 
-
 	// -------------------------------------------------------------------------
 	// V 2.0 additions
 	// -------------------------------------------------------------------------
 
 	/**
-     * Default resource serving.
-     * <p>
-     * The default implemention of this method is to call a
-     * RequestDispatcher.foward with the ResourceID of the ResourceRequest.
-     * <p>
-     * If no ResourceID is set on the resource URL the default implementation
-     * does nothing. 
-     * 
-     * @since 2.0
-     */
-	public void serveResource(ResourceRequest request, ResourceResponse response)
-			throws PortletException, IOException {
-		if ( request.getResourceID() != null ) {
-			PortletRequestDispatcher rd = getPortletConfig().getPortletContext()
-										.getRequestDispatcher(request.getResourceID());
-			if ( rd != null )
+	 * Default resource serving.
+	 * <p>
+	 * The default implemention of this method is to call a
+	 * RequestDispatcher.foward with the ResourceID of the ResourceRequest.
+	 * <p>
+	 * If no ResourceID is set on the resource URL the default implementation
+	 * does nothing.
+	 * 
+	 * @since 2.0
+	 */
+	public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {
+		if (request.getResourceID() != null) {
+			PortletRequestDispatcher rd = getPortletConfig().getPortletContext().getRequestDispatcher(
+					request.getResourceID());
+			if (rd != null)
 				rd.forward(request, response);
 		}
 	}
 
 	/**
-     * Default event processing. Tries to dispatch to an event method with
-     * annotation<BR>
-     * <code>@ProcessEvent(name=<event name>)</code>
-     * and the signature<br>
-     *                     <code>public void <methodname> (EventRequest, EventResponse) throws PortletException, java.io.IOException</code>.
-     * 
-     * @see javax.portlet.EventPortlet#processEvent(javax.portlet.EventRequest,
-     *      javax.portlet.EventResponse)
-     * @since 2.0
-     */
-	public void processEvent(EventRequest request, EventResponse response)
-			throws PortletException, IOException {
+	 * Default event processing. Tries to dispatch to an event method with
+	 * annotation<BR>
+	 * <code>@ProcessEvent(name=<event name>)</code> and the signature<br>
+	 *                     <code>public void <methodname> (EventRequest, EventResponse) throws PortletException, java.io.IOException</code>.
+	 * 
+	 * @see javax.portlet.EventPortlet#processEvent(javax.portlet.EventRequest,
+	 *      javax.portlet.EventResponse)
+	 * @since 2.0
+	 */
+	public void processEvent(EventRequest request, EventResponse response) throws PortletException, IOException {
 		String eventName = request.getEvent().getQName().toString();
-					
+
 		try {
 			// check for exact match
-			if ( processEventHandlingMethodsMap.containsKey(eventName) ) {
-				processEventHandlingMethodsMap.get(eventName).invoke(this, request, response);
+			Method eventMethod = processEventHandlingMethodsMap.get(eventName);
+			if (eventMethod != null) {
+				eventMethod.invoke(this, request, response);
 				return;
 			} else {
- 		 		 // Search for the longest possible matching wildcard annotation
-                int endPos = eventName.indexOf('}');
-                int dotPos = eventName.lastIndexOf('.');
-                while(dotPos > endPos)
-                {
-                    String wildcardLookup = eventName.substring(0, dotPos + 1);
-                    if(processEventHandlingMethodsMap.containsKey(wildcardLookup)) {
-                        processEventHandlingMethodsMap.get(wildcardLookup).invoke(this, request, response);
-                        return;
-                    }
-                    if(dotPos == 0) {
-                        break;
-                    }
-                    dotPos = eventName.lastIndexOf('.', dotPos - 1);
-                }
+				// Search for the longest possible matching wildcard annotation
+				int endPos = eventName.indexOf('}');
+				int dotPos = eventName.lastIndexOf('.');
+				while (dotPos > endPos) {
+					String wildcardLookup = eventName.substring(0, dotPos + 1);
+					eventMethod = processEventHandlingMethodsMap.get(wildcardLookup);
+					if (eventMethod != null) {
+						eventMethod.invoke(this, request, response);
+						return;
+					}
+					if (dotPos == 0) {
+						break;
+					}
+					dotPos = eventName.lastIndexOf('.', dotPos - 1);
+				}
 			}
 		} catch (Exception e) {
 			throw new PortletException(e);
 		}
-		
+
 		// if no event processing method was found just keep render params
 		response.setRenderParameters(request);
 	}
 
 	/**
-     * Used by the render method to set the response properties and headers.
-     * <p>
-     * The portlet should override this method and set its response header using
-     * this method in order to ensure that they are set before anything is
-     * written to the output stream.
-     * <p>
-     * The default implemention of this method is emtpy.
-     * 
-     * @since 2.0
-     */
+	 * Used by the render method to set the response properties and headers.
+	 * <p>
+	 * The portlet should override this method and set its response header using
+	 * this method in order to ensure that they are set before anything is
+	 * written to the output stream.
+	 * <p>
+	 * The default implemention of this method is emtpy.
+	 * 
+	 * @since 2.0
+	 */
 	protected void doHeaders(RenderRequest request, RenderResponse response) {
 		return;
 	}
-	
+
 	/**
-     * Used by the render method to set the next possible portlet modes.
-     * <p>
-     * The portlet should override this method and set the next possible portlet modes
-     * using this method in order to ensure that they are set before anything is
-     * written to the output stream.
-     * <p>
-     * The default implemention of this method returns <code>null</code>.
-     * 
-     * @since 2.0
-     */
+	 * Used by the render method to set the next possible portlet modes.
+	 * <p>
+	 * The portlet should override this method and set the next possible portlet
+	 * modes using this method in order to ensure that they are set before
+	 * anything is written to the output stream.
+	 * <p>
+	 * The default implemention of this method returns <code>null</code>.
+	 * 
+	 * @since 2.0
+	 */
 	protected java.util.Collection<PortletMode> getNextPossiblePortletModes(RenderRequest request) {
 		return null;
 	}
 
-	
 	/**
-	 * 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.    
-	 *
-	 * @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.
-     * 
+	 * 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.
+	 * 
+	 * @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.
+	 * 
 	 * @see javax.portlet.PortletConfig#getPublicRenderParameterNames()
 	 */
-	public Enumeration<String> getPublicRenderParameterNames() {	
+	public Enumeration<String> getPublicRenderParameterNames() {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
 					"Config is null, please ensure that your init(config) method calls super.init(config)");
@@ -692,21 +692,21 @@
 		return config.getPublicRenderParameterNames();
 	}
 
-	 /**
-	   * Returns the default namespace for events and public parameters.
-	   * This namespace is defined in the portlet deployment descriptor
-	   * 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 namespace defined in the portlet deployment
-	   *         descriptor, or <code>XMLConstants.NULL_NS_URI</code> is non is
-	   *         defined.
-	   *         
-	   * @see javax.portlet.PortletConfig#getDefaultNamespace()
-	   */
+	/**
+	 * Returns the default namespace for events and public parameters. This
+	 * namespace is defined in the portlet deployment descriptor 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 namespace defined in the portlet deployment
+	 *         descriptor, or <code>XMLConstants.NULL_NS_URI</code> is non is
+	 *         defined.
+	 * 
+	 * @see javax.portlet.PortletConfig#getDefaultNamespace()
+	 */
 	public String getDefaultNamespace() {
 		if (config == null)
 			throw new java.lang.IllegalStateException(
@@ -715,30 +715,36 @@
 		return config.getDefaultNamespace();
 	}
 
-	
-	
-	
-	private void cacheAnnotations() {
-		// cache annotated methods
-		Method[] methods = this.getClass().getMethods();
-		for (Method method : methods) {			
+	private void cacheAnnotatedMethods() {
+		// cache all annotated and visible public methods
+		for (Method method : this.getClass().getMethods()) {
 			Annotation[] annotations = method.getAnnotations();
-			for (Annotation annotation : annotations) {
-				if (annotation.annotationType().equals(ProcessAction.class)) {
-					processActionHandlingMethodsMap.put(((ProcessAction)annotation).name(), method);					
-				} else if (annotation.annotationType().equals(ProcessEvent.class)) {
-					if ( ! ((ProcessEvent)annotation).qname().equals("") )
-						processEventHandlingMethodsMap.put(((ProcessEvent)annotation).qname(), method);
-					else {
-						if (config == null)
-							throw new java.lang.IllegalStateException(
-									"Config is null, please ensure that your init(config) method calls super.init(config)");
-
-						QName qn = new QName(config.getDefaultNamespace(), ((ProcessEvent)annotation).name());
-						processEventHandlingMethodsMap.put(qn.toString(), method);
-					}									
-				} else if (annotation.annotationType().equals(RenderMode.class)) {
-					renderModeHandlingMethodsMap.put(((RenderMode)annotation).name().toLowerCase(), method);
+			if (annotations != null) {
+				for (Annotation annotation : annotations) {
+					Class<? extends Annotation> annotationType = annotation.annotationType();
+					if (ProcessAction.class.equals(annotationType)) {
+						String name = ((ProcessAction) annotation).name();
+						if (name != null && name.length() > 0)
+							processActionHandlingMethodsMap.put(name, method);
+					} else if (ProcessEvent.class.equals(annotationType)) {
+						String qname = ((ProcessEvent) annotation).qname();
+						if (qname == null || qname.length() <= 0) {
+							if (config == null)
+								throw new java.lang.IllegalStateException(
+										"Config is null, please ensure that your init(config) method calls super.init(config)");
+
+							String name = ((ProcessEvent) annotation).name();
+							if (name != null && name.length() > 0) {
+								qname = new QName(config.getDefaultNamespace(), name).toString();
+								processEventHandlingMethodsMap.put(qname, method);
+							}
+						} else
+							processEventHandlingMethodsMap.put(qname, method);
+					} else if (RenderMode.class.equals(annotationType)) {
+						String name = ((RenderMode) annotation).name();
+						if (name != null && name.length() > 0)
+							renderModeHandlingMethodsMap.put(name.toLowerCase(), method);
+					}
 				}
 			}
 		}

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/MimeResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/MimeResponse.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/MimeResponse.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/MimeResponse.java Sat Oct 27 07:41:35 2007
@@ -32,7 +32,7 @@
 
 /**
  * The <CODE>MimeResponse</CODE> defines the base interface to assist a
- * portlet in returing MIME content. 
+ * portlet in returning MIME content. 
  *
  * @since 2.0
  */
@@ -168,7 +168,7 @@
      * response.
      * <p>
      * If no content type was set previously using the {@link #setContentType}
-     * method this method retuns <code>null</code>.
+     * method this method returns <code>null</code>.
      * 
      * @see #setContentType
      * 
@@ -286,7 +286,7 @@
      * this method automatically commits the response.
      * 
      * @exception java.io.IOException
-     *                if an error occured when writing the output
+     *                if an error occurred when writing the output
      * 
      * @see #setBufferSize
      * @see #getBufferSize
@@ -301,7 +301,7 @@
      * throws an <code>IllegalStateException</code>.
      * 
      * @exception IllegalStateException
-     *                if this method is called after response is comitted
+     *                if this method is called after response is committed
      * 
      * @see #setBufferSize
      * @see #getBufferSize
@@ -365,7 +365,59 @@
     public java.io.OutputStream getPortletOutputStream()
             throws java.io.IOException;
 
-    
+	/**
+     * Creates a portlet URL targeting the portlet. If no portlet mode, window
+     * state or security modifier is set in the PortletURL the current values
+     * are preserved. If a request is triggered by the PortletURL, it results in
+     * a render request.
+     * <p>
+     * The returned URL can be further extended by adding portlet-specific
+     * parameters and portlet modes and window states.
+     * <p>
+     * The created URL will per default not contain any parameters of the
+     * current render request.
+     * 
+     * @return a portlet render URL
+     */
+	public PortletURL createRenderURL();
+
+	/**
+     * Creates a portlet URL targeting the portlet. If no portlet mode, window
+     * state or security modifier is set in the PortletURL the current values
+     * are preserved. If a request is triggered by the PortletURL, it results in
+     * an action request.
+     * <p>
+     * The returned URL can be further extended by adding portlet-specific
+     * parameters and portlet modes and window states.
+     * <p>
+     * The created URL will per default not contain any parameters of the
+     * current render request.
+     * 
+     * @return a portlet action URL
+     */
+	public PortletURL createActionURL();
+
+	/**
+     * Creates a portlet URL targeting the portlet. If no security modifier is
+     * set in the PortletURL the current values are preserved. The current
+     * render parameters, portlet mode and window state are preserved.
+     * <p>
+     * If a request is triggered by the PortletURL, it results in a serve
+     * resource request of the <code>ResourceServingPortlet</code> interface.
+     * <p>
+     * The returned URL can be further extended by adding portlet-specific
+     * parameters .
+     * <p>
+     * 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
+     */
+	public ResourceURL createResourceURL();
+
+
     
     /**
      * Returns the cache control object allowing to set
@@ -377,6 +429,25 @@
      * @since 2.0
      */
     public CacheControl getCacheControl();
+
     
+    /**
+     * Adds a HTTP Cookie property to the response.<br>
+     * The portlet should note that the cookie may not make
+     * it to the client, but may be stored at the portal.
+     * <p>
+     * This method allows response properties to have multiple cookies.
+     * <p>
+     *
+     * @param  cookie the cookie to be added to the response
+     * 
+     * @exception  java.lang.IllegalArgumentException 
+     *                            if cookie is <code>null</code>.
+     * @since 2.0
+     */
+
+    public void addProperty(javax.servlet.http.Cookie cookie);
+
+
 
 }

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/Portlet.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/Portlet.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/Portlet.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/Portlet.java Sat Oct 27 07:41:35 2007
@@ -48,7 +48,7 @@
  * with other fragments into a complete document. The content of a portlet is normally
  * aggregated with the content of other portlets into the portal page. 
  * <P>
- * The portlet container instanciates portlets, manages their lifecycle 
+ * The portlet container instantiates portlets, manages their lifecycle 
  * and invoking them to process requests. The lifecycle consists of:
  * <ul>
  * <li>initializing the portlet using using the <code>init</code> method
@@ -189,3 +189,4 @@
   
   public void destroy();
 }
+

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletContext.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletContext.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletContext.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletContext.java Sat Oct 27 07:41:35 2007
@@ -50,7 +50,7 @@
  * The portlet context leverages most of its functionality from the
  * servlet context of the portlet application.
  * <p>
- * Attibutes stored in the context are global for <I>all</I> users and <I>all</I>
+ * Attributes stored in the context are global for <I>all</I> users and <I>all</I>
  * components in the portlet application.
  * <p>
  * In the case of a web
@@ -325,7 +325,7 @@
 
   /**
    * Returns an <code>Enumeration</code> containing the attribute names 
-   * available within this portlet context, or an emtpy
+   * available within this portlet context, or an empty
    * <code>Enumeration</code> if no attributes are available. Use the
    * {@link #getAttribute} method with an attribute name
    * to get the value of an attribute.

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletException.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletException.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletException.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletException.java Sat Oct 27 07:41:35 2007
@@ -41,8 +41,6 @@
 public class PortletException extends java.lang.Exception
 {
 
-  private Throwable _cause;
-
   private static final long serialVersionUID = 1L;
 
   /**
@@ -84,9 +82,7 @@
   
   public PortletException (String text, Throwable cause)
   {
-    super(text);
-    _cause = cause;
-    // change this when going to jdk1.4:    super (text, cause);
+    super(text, cause);
   }
 
   /**
@@ -100,68 +96,8 @@
 
   public PortletException (Throwable cause)
   {
-    _cause = cause;
-    // change this when going to jdk1.4:        super (cause);
-  }
-
-  /**
-   * Prints the stack trace of this exception to the standard error stream.
-   */
-  public void printStackTrace()
-  {
-    this.printStackTrace(System.err);
-  }
-  
-  /**
-   * Prints the stack trace of this exception to the specified print stream.
-   *
-   * @param out the <code>PrintStream</code> to be used for output
-   */
-  public void printStackTrace(java.io.PrintStream out) 
-  {
-    this.printStackTrace(new java.io.PrintWriter(out, true));
+    super(cause);
   }
 
-  /**
-   * Prints the stack trace of this exception to the specified print writer.
-   * 
-   * @param out the <code>PrintWriter</code> to be used for output
-   */
-  public void printStackTrace(java.io.PrintWriter out)
-  {
-    super.printStackTrace(out);
-
-    if( getCause () != null ) {
-      out.println();
-      out.print("Nested Exception is ");
-      getCause ().printStackTrace(out);
-    }
-    // change this when going tojdk1.4:
-      /*
-        super.printStackTrace(out);
-
-        if( getRootCause () != null )
-        {
-            out.println();
-            out.print("Nested Exception is ");
-            getRootCause ().printStackTrace(out);
-        }
-        */
-  }
-
-  /**
-   * Returns the cause of this throwable or <code>null</code> if the
-   * cause is nonexistent or unknown.  (The cause is the throwable that
-   * caused this throwable to get thrown.)
-   *
-   * <p>This implementation returns the cause that was supplied via one of
-   * the constructors requiring a <tt>Throwable</tt>.
-   *
-   * @return  the cause of this throwable or <code>null</code> if the
-   *          cause is nonexistent or unknown.
-   */
-  public Throwable getCause() {
-    return (_cause!=null ? _cause : null);
-  }
 
 }

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletModeException.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletModeException.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletModeException.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletModeException.java Sat Oct 27 07:41:35 2007
@@ -64,7 +64,7 @@
    * Constructs a new portlet mode exception when the portlet needs to do
    * the following:
    * <ul>
-   * <il>throw an exception 
+   * <li>throw an exception 
    * <li>include a message about the "root cause" that interfered
    *     with its normal operation
    * <li>include a description message

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletPreferences.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletPreferences.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletPreferences.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletPreferences.java Sat Oct 27 07:41:35 2007
@@ -97,7 +97,7 @@
    * If there are no preference values associated with the given key, or the 
    * backing preference database is unavailable, it returns the given 
    * default value.
-   * A <code>null</code> value is treated as a non-existant value.
+   * A <code>null</code> value is treated as a non-existent value.
    *
    * @param key key for which the associated value is to be returned
    * @param def the value to be returned in the event that there is no 
@@ -121,7 +121,7 @@
    *
    * <p>Returns the specified default if there is no value
    * associated with the key, or if the backing store is inaccessible.
-   * A <code>null</code> value is treated as a non-existant value.
+   * A <code>null</code> value is treated as a non-existent value.
    *
    * <p>If the implementation supports <i>stored defaults</i> and such a
    * default exists and is accessible, it is used in favor of the
@@ -253,7 +253,7 @@
    * Commits all changes made to the preferences via the 
    * <code>set</code> methods in the persistent store.
    * <P>
-   * If this call returns succesfull, all changes are made
+   * If this call returns successful, all changes are made
    * persistent. If this call fails, no changes are made
    * in the persistent store. This call is an atomic operation 
    * regardless of how many preference attributes have been modified.
@@ -264,8 +264,8 @@
    * <P>
    * If a validator is defined for this preferences in the
    * deployment descriptor, this validator is called before
-   * the actual store is performed to check wether the given
-   * preferences are vaild. If this check fails a 
+   * the actual store is performed to check whether the given
+   * preferences are valid. If this check fails a 
    * <code>ValidatorException</code> is thrown.
    *
    * @exception  java.io.IOException    

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequest.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequest.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequest.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequest.java Sat Oct 27 07:41:35 2007
@@ -67,7 +67,7 @@
   public static final String USER_INFO = "javax.portlet.userinfo";
 
   /**
-   * Used to retieve an instance of the <code>javax.ccpp.Profile</code>
+   * Used to retrieve an instance of the <code>javax.ccpp.Profile</code>
    * with the <code>getAttribute</code> call. The returned profile is based
    * on the current portlet request and may contain additional CC/PP 
    * information set by the portal / portlet container.   
@@ -281,10 +281,11 @@
    * for storing the current action scope as render parameter
    * if the <code>javax.portlet.actionScopedRequestAttributes</code>
    * container runtime option is used by the portlet.
-   * 
+   * <p>
+   * The value is <code>javax.portlet.as</code>.
    * @since 2.0
    */
-  public static final String ACTION_SCOPE_ID = "Xas";
+  public static final String ACTION_SCOPE_ID = "javax.portlet.as";
   
   
   /**
@@ -416,7 +417,7 @@
    * 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
+   * If the request did not include any properties
    * of the specified name, this method returns an empty
    * <code>Enumeration</code>.
    * The property name is case insensitive. You can use
@@ -829,7 +830,7 @@
    * 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.
+   * @return  the preferred Locale in which the portal will accept content.
    */
 
   public java.util.Locale getLocale();

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletRequestDispatcher.java Sat Oct 27 07:41:35 2007
@@ -51,7 +51,7 @@
      * 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
+     * This method is kept in order to provide backward compatibility with
      * version 1.0. Please use {@link #include(PortletRequest, PortletResponse)} instead
      * of this method.
      * 

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletResponse.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletResponse.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletResponse.java Sat Oct 27 07:41:35 2007
@@ -67,74 +67,6 @@
 
 	public void addProperty(String key, String value);
 
-	/**
-     * Creates a portlet URL targeting the portlet. If no portlet mode, window
-     * state or security modifier is set in the PortletURL the current values
-     * are preserved. If a request is triggered by the PortletURL, it results in
-     * a render request.
-     * <p>
-     * The returned URL can be further extended by adding portlet-specific
-     * parameters and portlet modes and window states.
-     * <p>
-     * The created URL will per default not contain any parameters of the
-     * current render request.
-     * 
-     * @return a portlet render URL
-     * @throws java.lang.IllegalStateException
-     *             if the cacheability level of the resource URL
-     *             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;
-
-	/**
-     * Creates a portlet URL targeting the portlet. If no portlet mode, window
-     * state or security modifier is set in the PortletURL the current values
-     * are preserved. If a request is triggered by the PortletURL, it results in
-     * an action request.
-     * <p>
-     * The returned URL can be further extended by adding portlet-specific
-     * parameters and portlet modes and window states.
-     * <p>
-     * The created URL will per default not contain any parameters of the
-     * current render request.
-     * 
-     * @return a portlet action URL
-     * @throws java.lang.IllegalStateException
-     *             if the cacheability level of the resource URL
-     *             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;
-
-	/**
-     * Creates a portlet URL targeting the portlet. If no security modifier is
-     * set in the PortletURL the current values are preserved. The current
-     * render parameters, portlet mode and window state are preserved.
-     * <p>
-     * If a request is triggered by the PortletURL, it results in a serve
-     * resource request of the <code>ResourceServingPortlet</code> interface.
-     * <p>
-     * The returned URL can be further extended by adding portlet-specific
-     * parameters .
-     * <p>
-     * 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
-     * @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.
-     */
-	public ResourceURL createResourceURL()
-			throws java.lang.IllegalStateException;
-
 
 	/**
      * Sets a String property to be returned to the portal.
@@ -202,23 +134,6 @@
 
 	
     /**
-     * Adds a HTTP Cookie property to the response.<br>
-     * The portlet should note that the cookie may not make
-     * it to the client, but may be stored at the portal.
-     * <p>
-     * This method allows response properties to have multiple cookies.
-     * <p>
-     *
-     * @param  cookie the cookie to be added to the response
-     * 
-     * @exception  java.lang.IllegalArgumentException 
-     *                            if cookie is <code>null</code>.
-     * @since 2.0
-     */
-
-    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
@@ -241,4 +156,19 @@
      * @since 2.0
      */
    void addProperty(String key, org.w3c.dom.Element element);
+   
+   /**
+    * Creates an element of the type specified to be used in the 
+    * {@link addProperty} method. 
+    * 
+    * @param tagName	name of the element type to instantiate
+    * @return  A new Element object with the nodeName attribute set to tagName, 
+    *          and localName, prefix, and namespaceURI set to null.
+    * @throws org.w3c.dom.DOMException
+    *     INVALID_CHARACTER_ERR: Raised if the specified name 
+    *     contains an illegal character.
+    */
+   org.w3c.dom.Element createElement(String tagName) throws org.w3c.dom.DOMException;
+
+
 }

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletSession.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletSession.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletSession.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletSession.java Sat Oct 27 07:41:35 2007
@@ -117,7 +117,7 @@
    * @return			the object with the specified name
    *
    * @exception java.lang.IllegalStateException	if this method is called on an
-   *					invalidated session, or the scope is unkown to the container.
+   *					invalidated session, or the scope is unknown to the container.
    * @exception  java.lang.IllegalArgumentException 
    *                            if name is <code>null</code>.
    */
@@ -385,7 +385,7 @@
    * the portlet session scope.
    * <p>
    * The keys are of type <code>String</code> and the values in the 
-   * eturned <code>Map</code> are from type <code>Object</code>.
+   * returned <code>Map</code> are from type <code>Object</code>.
    * <p>
    * If no session attributes exist this method returns an empty <code>Map</code>.
    *
@@ -396,14 +396,14 @@
    *             Object.
    *  @since 2.0
    */
-  public Map<String, Object> getMap();  
+  public Map<String, Object> getAttributeMap();  
 
   /** 
    * Returns a <code>Map</code> of the session attributes in
    * the given session scope.
    * <p>
    * The keys are of type <code>String</code> and the values in the 
-   * eturned <code>Map</code> are from type <code>Object</code>.
+   * returned <code>Map</code> are from type <code>Object</code>.
    * <p>
    * If no session attributes exist this method returns an empty <code>Map</code>.
    *
@@ -416,7 +416,7 @@
    *             Object.
    *  @since 2.0
    */
-  public Map<String, Object> getMap(int scope);  
+  public Map<String, Object> getAttributeMap(int scope);  
 
 }
 

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURL.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURL.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURL.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURL.java Sat Oct 27 07:41:35 2007
@@ -50,7 +50,7 @@
  *     trigger a render request.
  * </ul>
  * <p>
- * The string reprensentation of a PortletURL does not need to be a valid 
+ * The string representation of a PortletURL does not need to be a valid 
  * URL at the time the portlet is generating its content. It may contain  
  * special tokens that will be converted to a valid URL, by the portal, 
  * before the content is returned to the client.
@@ -129,5 +129,19 @@
 
   public WindowState getWindowState ();
 
- 
+  /**
+	* Removes the specified public render parameter.
+	* The name must reference a public render parameter defined
+	* in the portlet deployment descriptor under the
+	* <code>public-render-parameter</code> element with the
+	* <code>identifier</code> mapping to the parameter name.
+	* 
+	* @param name			a <code>String</code> specifying 
+	*					the name of the public render parameter to be removed
+	*
+	* @exception  java.lang.IllegalArgumentException 
+	*                            if name is <code>null</code>.
+	* @since 2.0
+	*/
+  public void removePublicRenderParameter(String name); 
 }

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURLGenerationListener.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURLGenerationListener.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURLGenerationListener.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/PortletURLGenerationListener.java Sat Oct 27 07:41:35 2007
@@ -31,12 +31,12 @@
 package javax.portlet;
 
 /**
- * Portlets can register portlet URL listeners in order to filter URLs 
+ * Portlet applications can register portlet URL listeners in order to filter URLs 
  * before they get generated.
  * In order to receive a callback from the portlet container before a 
- * portlet URL is generated the portlet needs to implement this 
+ * portlet URL is generated the portlet application needs to implement this 
  * interface and register it in the deployment descriptor with the
- * <code>url-generation-listener</code> element.
+ * <code>listener</code> element.
  *
  * @since 2.0
  */

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/RenderResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/RenderResponse.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/RenderResponse.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/RenderResponse.java Sat Oct 27 07:41:35 2007
@@ -52,9 +52,7 @@
      *            portlet title as text String or resource URI
      */
     public void setTitle(String title);
-
-
-    
+   
     
 	/**
      * This method allows the portlet to tell the portal the next possible

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceRequest.java Sat Oct 27 07:41:35 2007
@@ -44,8 +44,8 @@
  * <code>PortletResourceRequest</code> with <code>getPortletMode</code> and, 
  * <code>getWindowState</code>, or one of the <code>getParameter</code> methods.   
  * ResourceURLs cannot change the current portlet mode, window state or 
- * render parameters . Parameters set on a resource URL are not render parameters 
- * but parameters for renderserving this resource and will last olnyonly for only 
+ * render parameters. Parameters set on a resource URL are not render parameters 
+ * but parameters for serving this resource and will last only for only 
  * this the current serveResource request.<br>
  * If a parameter is set that has the same name as a render parameter that this 
  * resource URL contains, the render parameter must be the last entry in the 
@@ -88,5 +88,26 @@
      *          if no resource ID was set on the URL. 
      */
     public String getResourceID();
-    
+ 
+    /**
+     * Returns a <code>Map</code> of the private render 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 parameters returned do not include the resource parameters that
+     * the portlet may have set on the resource URL triggering this
+     * <code>serveResource</code> call.
+     * <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>.
+     *
+     * @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[]> getPrivateRenderParameterMap();
 }

Modified: portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceResponse.java?rev=589118&r1=589117&r2=589118&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceResponse.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/portlet2-api/src/main/java/javax/portlet/ResourceResponse.java Sat Oct 27 07:41:35 2007
@@ -95,4 +95,45 @@
      * @param len an integer specifying the length of the content being returned
      */
     public void setContentLength(int len);
+    
+    
+	/**
+     * @throws java.lang.IllegalStateException
+     *             if the cacheability level of the resource URL
+     *             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;
+
+	/**
+     * @throws java.lang.IllegalStateException
+     *             if the cacheability level of the resource URL
+     *             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;
+
+	/**
+     * @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.
+     */
+	public ResourceURL createResourceURL()
+			throws java.lang.IllegalStateException;
+
+	/**
+	 * Returns the cache level of this resource request.
+	 * <p>
+	 * Possible return values are: 
+	 * <code>ResourceURL.FULL, ResourceURL.PORTLET</code> 
+	 * or <code>ResourceURL.PAGE</code>.
+	 * 
+     * @return  the cache level of this resource request.
+     */
+	public String getCacheability();
+
 }



Mime
View raw message