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. <, >, &, ', " will get converted
* into their corresponding character entity codes (< to &<, > to &>,
* & to &&, ' to &', " to &").
- * 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();
+
}
|