This document provides the interface descriptions for the JSR 362 Portlet Specification 3.0 Working Document. The interfaces described here are not normative and are subject to change at any time.

The portlet hub JavaScript API documentation can be found here.

Color coding for description changes in Version 3.0: Changed text :: Added text :: Deleted text as compared to Version 2.0.

Change History:

- 20160909: Added the annotations {@link javax.portlet.annotations.InitMethod InitMethod} and {@link javax.portlet.annotations.DestroyMethod DestroyMethod}. Changed the default content type to '*/*' in the annotations {@link javax.portlet.annotations.HeaderMethod HeaderMethod}, {@link javax.portlet.annotations.RenderMethod RenderMethod}, and {@link javax.portlet.annotations.ServeResourceMethod ServeResourceMethod}.
- 20160907: Updated the package description for the annotations to refresh stale descriptions, see: {@link javax.portlet.annotations package-info}. Changed portlet hub JavaScript documentation to move the parameter manipulation methods from the PortletParameters object to the RenderState object. Added optional resource ID string parameter to the portlet hub createResourceUrl function.
- 20160824: Deleted the annotations `{@literal @}RenderParam`, `{@literal @}ActionParam`, and `{@literal @}ResourceParam` since they can't be made to be request scoped beans, so that their use could be error-prone. Also, since the corresponding parameter objects are injectable, these annotations provide little additional value.
- 20160804: Modified descriptions for {@link javax.portlet.PortletRequest#getResponseContentType() PortletRequest#getResponseContentType()} and {@link javax.portlet.PortletRequest#getResponseContentTypes() PortletRequest#getResponseContentTypes()} to remove redundant clause on the content types being declared in the portlet configuration, since the portlet won't be invoked for a content type that hasn't been configured.
- 20160530: Added {@link javax.portlet.filter.PortletAsyncContextWrapper PortletAsyncContextWrapper}. Modified descriptions for {@link javax.portlet.BaseURL#write(Writer, boolean) BaseURL#write(String, boolean)} and {@link javax.portlet.BaseURL#append(Appendable, boolean) BaseURL#append(String, boolean)} to update documentation on escape XML flag handling.
- 20160524: Deleted the `URLFactory` interface, as a `MimeResponse` object can be injected instead with no loss of functionality. Added the {@link javax.portlet.annotations.PortletName} qualifier annotation for injection of the portlet name. Deleted the `@BeanPortlet` qualifier annotation as it is no longer needed for disambiguation. Deleted the `@InitMethod` and `@DestroyMethod` annotations, as the CDI annotations `@PostConstruct` and `@PreDestroy` annotations should be used for bean initialization and tear down instead. Renamed `@PortletRequestFilter` to {@link javax.portlet.annotations.PortletLifecycleFilter PortletLifecycleFilter}, Changed method name from ActionResponse#getRedirectURL to {@link javax.portlet.ActionResponse#createRedirectURL ActionResponse.createRedirectURL()}.
- 20160519: Changed method signature for addDependency method that provides a resource to {@link javax.portlet.HeaderResponse#addDependency(String, String, String, String)}.
- 20160517: Renamed methods to {@link javax.portlet.ResourceRequest#startPortletAsync() ResourceRequest#startPortletAsync()}, {@link javax.portlet.ResourceRequest#startPortletAsync(ResourceRequest, ResourceResponse) ResourceRequest#startPortletAsync(ResourceRequest, ResourceResponse)}, and {@link javax.portlet.ResourceRequest#getPortletAsyncContext() ResourceRequest#getPortletAsyncContext()} from `startAsync()`, `startAsync(ResourceRequest, ResourceResponse)` and `getAsyncContext()`, respectively. Added new methods {@link javax.portlet.HeaderResponse#addDependency(String, String, String)} and {@link javax.portlet.HeaderResponse#addDependency(String, String, String, String)} to dynamically add page resource dependencies in fulfillment of issue PORTLETSPEC3-40 Add new javax.portlet.ResourceComparator annotation in order to identify duplicate resources. Added {@link javax.portlet.annotations.Dependency#scope() Dependency#scope()} method to support three-part resource identifier with name, scope, and version fields.
- 20160418: Added new method to implement PORTLETSPEC3-63 Make user agent available to Portlets: {@link javax.portlet.PortletRequest#getUserAgent() PortletRequest#getUserAgent()}. and altered the corresponding wrapper class accordingly. Removed the PortletRequest#USER_AGENT constant, as an alternative implementation was agreed upon.

  Added multipart support to fulfill PORTLETSPEC3-67. See {@link javax.portlet.annotations.PortletConfiguration#multipart() PortletConfiguration#multipart()}, {@link javax.portlet.annotations.Multipart Multipart}, {@link javax.portlet.ClientDataRequest#getPart(String)}, and {@link javax.portlet.ClientDataRequest#getParts()}.

- 20160406: Added new classes to implement PORTLETSPEC3-68 Add Async Support: {@link javax.portlet.PortletAsyncContext PortletAsyncContext}, {@link javax.portlet.PortletAsyncListener PortletAsyncListener}, and {@link javax.portlet.PortletAsyncEvent PortletAsyncEvent}. Modified {@link javax.portlet.ResourceRequest#startPortletAsync() ResourceRequest#startPortletAsync()}, {@link javax.portlet.ResourceRequest#startPortletAsync(ResourceRequest, ResourceResponse) ResourceRequest#startPortletAsync(ResourceRequest, ResourceResponse)}, and {@link javax.portlet.ResourceRequest#getPortletAsyncContext() ResourceRequest#getPortletAsyncContext()} along with the corresponding wrapper class accordingly.
- 20160316: Added new methods, configuration elements, and documentation to implement PORTLETSPEC3-68 Add Async Support: {@link javax.portlet.annotations.PortletConfiguration#asyncSupported() PortletConfiguration#asyncSupported()}, {@link javax.portlet.annotations.ServeResourceMethod#asyncSupported() ServeResourceMethod#asyncSupported()}, {@link javax.portlet.ResourceRequest#startPortletAsync() ResourceRequest#startPortletAsync()}, {@link javax.portlet.ResourceRequest#startPortletAsync(ResourceRequest, ResourceResponse) ResourceRequest#startPortletAsync(ResourceRequest, ResourceResponse)}, {@link javax.portlet.ResourceRequest#isAsyncStarted() ResourceRequest#isAsyncStarted()}, {@link javax.portlet.ResourceRequest#isAsyncSupported() ResourceRequest#isAsyncSupported()}, {@link javax.portlet.ResourceRequest#getPortletAsyncContext() ResourceRequest#getPortletAsyncContext()}, and {@link javax.portlet.ResourceRequest#getDispatcherType() ResourceRequest#getDispatcherType()}. Added appropriate documentation to {@link javax.portlet.filter.ResourceFilter ResourceFilter}. Updated affected wrapper classes accordingly.
- 20160315: Added new methods to implement PORTLETSPEC3-63 and PORTLETSPEC3-64: {@link javax.portlet.PortletRequest#getPortletContext() PortletRequest#getPortletContext()} and {@link javax.portlet.ClientDataRequest#getContentLengthLong() ClientDataRequest#getContentLengthLong()}. Updated affected wrapper classes accordingly.
- 20160226: Renamed PortletState to RenderState and MutablePortletState to MutableRenderState. Updated references in affected files. Updated documentation and license text in files: {@link javax.portlet.RenderState RenderState}, {@link javax.portlet.MutableRenderState MutableRenderState}, {@link javax.portlet.annotations.HeaderMethod HeaderMethod}, and {@link javax.portlet.annotations.RenderMethod RenderMethod}.
- 20160128: Added a new PortalContext wrapper class according to PORTLETSPEC3-62: {@link javax.portlet.filter.PortalContextWrapper PortalContextWrapper}. Removed the annotation ConditionalDispatchMethod along with the associated interfaces MethodToken and ConditionalDispatcher, as they will not be included in the V3 specification.
- 20160126: Added new PortletContext methods according to PORTLETSPEC3-53: {@link javax.portlet.PortletContext#getClassLoader() getClassLoader}, {@link javax.portlet.PortletContext#getContextPath() getContextPath}, {@link javax.portlet.PortletContext#getEffectiveMajorVersion() getEffectiveMajorVersion}, and {@link javax.portlet.PortletContext#getEffectiveMinorVersion() getEffectiveMinorVersion}. Added new PortletResponse methods according to PORTLETSPEC3-60: {@link javax.portlet.PortletResponse#getProperty(String) getProperty}, {@link javax.portlet.PortletResponse#getPropertyNames() getPropertyNames}, and {@link javax.portlet.PortletResponse#getPropertyValues(String) getPropertyValues}. Added new ResourceResponse methods according to PORTLETSPEC3-60: {@link javax.portlet.ResourceResponse#setContentLengthLong(long) setContentLengthLong} and {@link javax.portlet.ResourceResponse#getStatus() getStatus}.
- 20160125: Added clarification to {@link javax.portlet.PortletResponse PortletResponse} addProperty and setProperty method descriptions. Removed {@link javax.portlet.BaseURL BaseURL} getAuthenticated and setAuthenticated methods. Added wrappers according to PORTLETSPEC3-62, (see {@link javax.portlet.filter filter package}). Update following annotations for consistency with spec {@literal &} RI: {@literal DestroyMethod}, {@link javax.portlet.annotations.EventMethod EventMethod}, {@link javax.portlet.annotations.HeaderMethod HeaderMethod}, {@literal InitMethod}, {@link javax.portlet.annotations.PortletSessionScoped PortletSessionScoped}. Added {@link javax.portlet.annotations.PortletRequestScoped PortletRequestScoped} annotation.
- 20151208: Several changes to portlet annotations to improve consistency with respect to the portlet deployment descriptor. Updated classes: {@link javax.portlet.annotations.InitParameter InitParameter}, {@link javax.portlet.annotations.PortletConfiguration PortletConfiguration}, {@literal PortletRequestFilter}, {@link javax.portlet.annotations.RuntimeOption RuntimeOption}, {@link javax.portlet.annotations.SecurityRoleRef SecurityRoleRef}, {@link javax.portlet.annotations.Supports Supports}.
- 20151005: Added annotations and interfaces for conditional dispatching: ConditionalDispatcher, MethodToken, and ConditionalDispatchMethod. Updated {@link javax.portlet.annotations.HeaderMethod HeaderMethod}, {@link javax.portlet.annotations.RenderMethod RenderMethod}, and {@link javax.portlet.annotations.ServeResourceMethod ServeResourceMethod}.
- 20150930: Added {@link javax.portlet.filter.HeaderFilterChain HeaderFilterChain} and updated {@link javax.portlet.filter.HeaderFilter HeaderFilter} to use it.
- 20150923: Added method annotations {@literal javax.portlet.annotations.InitMethod}, and {@literal javax.portlet.annotations.DestroyMethod}. Added filter and wrappers for header phase. Added new wrappers for requests and responses not yet wrapped and modified existing wrappers to use them. New classes: {@link javax.portlet.filter.ClientDataRequestWrapper}, {@link javax.portlet.filter.HeaderFilter}, {@link javax.portlet.filter.HeaderRequestWrapper}, {@link javax.portlet.filter.HeaderResponseWrapper}, {@link javax.portlet.filter.MimeResponseWrapper}, and {@link javax.portlet.filter.StateAwareResponseWrapper}. Modified classes: {@link javax.portlet.filter.ActionRequestWrapper}, {@link javax.portlet.filter.ActionResponseWrapper}, {@link javax.portlet.filter.RenderRequestWrapper}, {@link javax.portlet.filter.RenderResponseWrapper}, {@link javax.portlet.filter.EventRequestWrapper}, {@link javax.portlet.filter.EventResponseWrapper}, {@link javax.portlet.filter.PortletRequestWrapper}, {@link javax.portlet.filter.PortletResponseWrapper}, {@link javax.portlet.filter.ResourceRequestWrapper}, and {@link javax.portlet.filter.ResourceResponseWrapper}.
- 20150922: Added interfaces and annotations for conditional dispatching. Added classes: MethodToken, ConditionalDispatcher, and ConditionalDispatchMethod.
- 20150921: Modified annotation classes to conform to latest spec draft. Added dedicated HeaderRequest and HeaderResponse interfaces to allow portlets to add response headers and generate markup for the overall portal response document `HEAD` section. Deprecated {@link javax.portlet.RenderResponse#setTitle RenderResponse#setTitle} since it is more appropriate on the HeaderResponse object. Added classes: {@link javax.portlet.HeaderRequest}, {@link javax.portlet.HeaderResponse}, and {@link javax.portlet.HeaderPortlet}. Modified classes: {@link javax.portlet.annotations.RenderMethod}, {@link javax.portlet.annotations.HeaderMethod}, and {@link javax.portlet.annotations.ServeResourceMethod}.
- 20150911: Modified and added annotation classes in order to allow complete portlet application configuration and portlet configuration through annotations. Added classes: {@link javax.portlet.annotations.UserAttribute}, {@link javax.portlet.annotations.EventDefinition}, {@link javax.portlet.annotations.PortletApplication}, {@link javax.portlet.annotations.PortletConfigurations}, {@link javax.portlet.annotations.PublicRenderParameterDefinition}, and {@link javax.portlet.annotations.SecurityRoleRef}. Modified classes: {@link javax.portlet.annotations.ActionMethod}, {@link javax.portlet.annotations.CustomPortletMode}, {@link javax.portlet.annotations.CustomWindowState}, {@link javax.portlet.annotations.Dependency}, {@link javax.portlet.annotations.EventMethod}, {@link javax.portlet.annotations.PortletConfiguration}, {@link javax.portlet.annotations.PortletQName}, {@link javax.portlet.annotations.RenderStateScoped}, {@link javax.portlet.annotations.Preference}, and {@link javax.portlet.annotations.Supports}.
- 20150907: Modified classes for configuration through annotations. Added class {@link javax.portlet.annotations.PortletConfigurations} to allow for configuration of multiple portlets within a single annotation.
- 20150817: Fixed some inconsistencies associated with the custom CDI scope annotations. Changed classes: {@link javax.portlet.PortletURL#setBeanParameter PortletURL.setBeanParameter}. Updated annotations: {@link javax.portlet.annotations.PortletSessionScoped} and {@literal javax.portlet.annotations.URLFactory}.
- 20150812: Update for PORTLETSPEC3-56, PORTLETSPEC3-55, and PORTLETSPEC3-49. Changed classes: {@link javax.portlet.MimeResponse.Copy}. Added method: `ActionResponse.getRedirectURL()`. Updated annotations: {@link javax.portlet.annotations.HeaderMethod}, {@link javax.portlet.annotations.RenderMethod}, and {@link javax.portlet.annotations.ServeResourceMethod}.
- 20150806: Update for PORTLETSPEC3-54 Add Configuration Annotations for Custom Portlet Mode and Window State. Changed class: {@link javax.portlet.annotations.PortletConfiguration}. Added annotation classes: {@link javax.portlet.annotations.Supports}, {@link javax.portlet.annotations.CustomPortletMode}, {@link javax.portlet.annotations.CustomWindowState}.
- 20150629: Added API proposal for injectable bean portlet objects. See: {@link javax.portlet.annotations Annotations package info file}.
- 20150618: Added API proposal for an annotation-based configuration interface. See: {@link javax.portlet.annotations Annotations package info file}.
- 20150225: Update for PORTLETSPEC3-50: Updated methods {@link javax.portlet.MimeResponse#createRenderURL MimeResponse.createRenderURL())}, {@link javax.portlet.MimeResponse#createActionURL MimeResponse.createActionURL())}, {@link javax.portlet.MutablePortletParameters#set MutablePortletParameters.set()}, {@link javax.portlet.MutablePortletParameters#add MutablePortletParameters.add()}, {@link javax.portlet.PortletURLGenerationListener#filterRenderURL PortletURLGenerationListener.filterRenderURL()}, {@link javax.portlet.PortletURLGenerationListener#filterActionURL PortletURLGenerationListener.filterActionURL()}. Added method {@link javax.portlet.PortletParameters#size PortletParameters.size()}. See PORTLETSPEC3-50 for discussion.
- 20150202: Updated PORTLETSPEC3-18: Updated methods {@link javax.portlet.PortletConfig#getPortletModes PortletConfig.getPortletModes(String)} and {@link javax.portlet.PortletConfig#getWindowStates PortletConfig.getWindowStates(String)}. Added method {@link javax.portlet.PortletConfig#getPublicRenderParameterDefinitions PortletConfig.getPublicRenderParameterDefinitions()}. See portlet configuration description.
- 20141204: Updates for the Portlet Hub Ajax support. Updated the following data structures: PortletConstants, PortletParameters, and RenderState.
  Added the following Portlet Hub methods and members: constants, newParameters, newState.
  Added ResourceRequest#PAGE_STATE constant in support of the Portlet Hub partial action processing sequence.
- 20140603: Resolved PORTLETSPEC3-43: Renamed some methods to reduce redundancy. See: {@link javax.portlet.PortletParameters#getNames getNames()}, {@link javax.portlet.PortletParameters#getValue getValue}, {@link javax.portlet.PortletParameters#getValues getValues}, {@link javax.portlet.MutablePortletParameters#setValue(String, String) setValue(String, String)}, {@link javax.portlet.MutablePortletParameters#getNames getNames()}, and {@link javax.portlet.MutablePortletParameters#setValues(String, String...) setValues(String, String...)}.
- 20140527: Resolved PORTLETSPEC3-41: Some updates to the parameter handling proposal. See: {@link javax.portlet.RenderURL#setFragmentIdentifier setFragmentIdentifier}, {@link javax.portlet.RenderURL#getFragmentIdentifier getFragmentIdentifier}, {@link javax.portlet.BaseURL#append(Appendable) append(Appendable)}, {@link javax.portlet.BaseURL#append(Appendable, boolean) append(Appendable, boolean)} {@link javax.portlet.MutablePortletParameters#add add(PortletParameters)}, {@link javax.portlet.MutablePortletParameters#getNames getNames()}, and {@link javax.portlet.MutablePortletParameters#setValues(String, String...) setValues(String, String...)}.
- 20140526: 1st run integration of the Portlet Hub JavaScript documentation into the API description. The Portlet Hub was created using Jasmine JavaScript test cases.
- 20140512: Resolved PORTLETSPEC3-11: Integrated new parameter handling concept. Deprecated JSR 286 parameter handling methods.
  Added: {@link javax.portlet.Mutable}, {@link javax.portlet.PortletParameters}, {@link javax.portlet.MutablePortletParameters}, {@link javax.portlet.RenderParameters}, {@link javax.portlet.MutableRenderParameters}, {@link javax.portlet.ResourceParameters}, {@link javax.portlet.MutableResourceParameters}, {@link javax.portlet.ActionParameters}, {@link javax.portlet.MutableActionParameters}, {@link javax.portlet.RenderState}, {@link javax.portlet.MutableRenderState}, {@link javax.portlet.ActionURL}, {@link javax.portlet.RenderURL}.
  Updated: {@link javax.portlet.BaseURL}, {@link javax.portlet.PortletURL}, {@link javax.portlet.ResourceURL}, {@link javax.portlet.ActionURL}, {@link javax.portlet.PortletRequest}, {@link javax.portlet.ResourceRequest}, {@link javax.portlet.ActionRequest}, {@link javax.portlet.PortletResponse}, {@link javax.portlet.ResourceResponse}, {@link javax.portlet.MimeResponse}, {@link javax.portlet.filter.ActionRequestWrapper}, {@link javax.portlet.filter.ActionResponseWrapper}, {@link javax.portlet.filter.EventResponseWrapper}, {@link javax.portlet.filter.PortletRequestWrapper}, {@link javax.portlet.filter.RenderResponseWrapper}, {@link javax.portlet.filter.ResourceRequestWrapper}, {@link javax.portlet.filter.ResourceResponseWrapper}
  Moved the following methods to {@link javax.portlet.RenderURL}, as they are not useful on other types of URL: {@link javax.portlet.RenderURL#setFragmentIdentifier setFragmentIdentifier} and {@link javax.portlet.RenderURL#getFragmentIdentifier getFragmentIdentifier}

  See Diagram.

- 20130829: PORTLETSPEC3-16: Added methods to GenericPortlet to allow annotation handling to be extended: {@link javax.portlet.GenericPortlet#dispatchAnnotatedActionMethod dispatchAnnotatedActionMethod}, {@link javax.portlet.GenericPortlet#dispatchAnnotatedEventMethod dispatchAnnotatedEventMethod}, and {@link javax.portlet.GenericPortlet#dispatchAnnotatedRenderMethod dispatchAnnotatedRenderMethod}.
- 20130829: PORTLETSPEC3-32: Changes in public render parameter handling on action URL. See method descriptions {@link javax.portlet.MimeResponse#createActionURL() createActionURL()} and {@link javax.portlet.MimeResponse#createActionURL(Copy) createActionURL(Copy)}. See updated spec description portlet URLs .
- 20130829: PORTLETSPEC3-30: Added new URL create methods to MimeResponse: {@link javax.portlet.MimeResponse#createRenderURL(Copy) createRenderURL(Copy)} and {@link javax.portlet.MimeResponse#createActionURL(Copy) createActionURL(Copy)}. Updated {@link javax.portlet.filter.RenderResponseWrapper RenderResponseWrapper} and {@link javax.portlet.filter.ResourceResponseWrapper ResourceResponseWrapper} accordingly.
- 20130828: PORTLETSPEC3-13: Added several methods to BaseURL: {@link javax.portlet.RenderURL#setFragmentIdentifier setFragmentIdentifier} and {@link javax.portlet.RenderURL#getFragmentIdentifier getFragmentIdentifier}. See portlet URLs .
- 20130827: Added link to wiki article to resolution of PORTLETSPEC3-18.
- 20130826: Resolved PORTLETSPEC3-18: Added methods {@link javax.portlet.PortletConfig#getPortletModes PortletConfig.getPortletModes()} and {@link javax.portlet.PortletConfig#getWindowStates PortletConfig.getWindowStates()}. See portlet configuration description.
- 20130826: Resolved PORTLETSPEC3-28: Added methods {@link javax.portlet.ResourceResponse#setStatus ResourceResponse.setStatus(int sc)} and {@link javax.portlet.filter.ResourceResponseWrapper#setStatus ResourceResponseWrapper.setStatus(int sc)}.
- 20130825: Resolved PORTLETSPEC3-22: Changed String array parameter to vararg parameter on {@link javax.portlet.BaseURL#setParameter(String, String...) BaseURL.setParameter}, {@link javax.portlet.StateAwareResponse#setRenderParameter(String, String...) StateAwareResponse.setRenderParameter}, and {@link javax.portlet.PortletPreferences#setValues(String, String...) PortletPreferences.setValues}.
- 20130824: Resolved PORTLETSPEC3-24: Allow {@link javax.portlet.GenericPortlet#doHeaders(RenderRequest, RenderResponse) GenericPortlet.doHeaders} to throw a PortletException or IOException.
- 20130823: Resolved PORTLETSPEC3-21: Added methods {@link javax.portlet.BaseURL#append(Appendable) BaseURL.write(Appendable)} and {@link javax.portlet.BaseURL#append(Appendable, boolean) BaseURL.write(Appendable, boolean)} to BaseURL. See Portlet URLs .
- 20130822: Resolved PORTLETSPEC3-27: Clarified {@link javax.portlet.ResourceRequest#getPortletMode ResourceRequest.getPortletMode} and {@link javax.portlet.ResourceRequest#getWindowState ResourceRequest.getWindowState} behavior when the cache level is set to FULL by returning {@link javax.portlet.PortletMode#UNDEFINED} and {@link javax.portlet.WindowState#UNDEFINED}, respectively.
- 20130822: Resolved PORTLETSPEC3-35: Added exception and clarified description in method {@link javax.portlet.MimeResponse#setContentType MimeResponse.setContentType}.
- 20130821: Colorized older changes. All changes are now colorized and linked from the change history. Uncolorized the change history.
- 20130820: Resolved PORTLETSPEC3-26: Clarifications about when header information can be set in the following methods: {@link javax.portlet.ResourceResponse#HTTP_STATUS_CODE HTTP_STATUS_CODE}, {@link javax.portlet.ResourceResponse#setLocale setLocale}, and {@link javax.portlet.ResourceResponse#setContentLength setContentLength}.
- 20130818: Resolved PORTLETSPEC3-23: Fixed issue involving exceptions in annotated methods in GenericPortlet.java (code fix only - no javadoc changes)
- 20130817: Resolved PORTLETSPEC3-20: Clarified behavior when scope is unknown in several {@link javax.portlet.PortletSession} methods: {@link javax.portlet.PortletSession#getAttribute(String, int) getAttribute}, {@link javax.portlet.PortletSession#getAttributeNames(int) getAttributeNames}, {@link javax.portlet.PortletSession#removeAttribute(String, int) removeAttribute}, and {@link javax.portlet.PortletSession#getAttributeMap(int) getAttributeMap}.
- 20130816: Resolved PORTLETSPEC3-17: Changed method signature to allow subtypes of PortletMode in {@link javax.portlet.RenderResponse#setNextPossiblePortletModes RenderResponse.setNextPossiblePortletModes}.
- 20130815: Resolved PORTLETSPEC3-15: Fixed issue involving annotations in GenericPortlet.java (code fix only - no javadoc changes)
- 20130813: Resolved PORTLETSPEC3-8: Clarifications about behavior of the parameter map in {@link javax.portlet.StateAwareResponse#getRenderParameterMap() StateAwareResponse.getRenderParameterMap()}, {@link javax.portlet.BaseURL#getParameterMap() BaseURL.getParameterMap()},
- 20130730: Resolved PORTLETSPEC3-9: Clarifications in the {@link javax.portlet.MimeResponse MimeResponse} URL creation methods {@link javax.portlet.MimeResponse#createRenderURL() createRenderURL()}, {@link javax.portlet.MimeResponse#createActionURL() createActionURL()}, and {@link javax.portlet.MimeResponse#createResourceURL() createResourceURL()}
- 20130726: Resolved PORTLETSPEC3-10 and PORTLETSPEC3-25: Reworked parameter setting methods in {@link javax.portlet.StateAwareResponse} and {@link javax.portlet.BaseURL} to improve clarity.
- 20130726: Resolved PORTLETSPEC3-7: Clarification about setting parameters in {@link javax.portlet.StateAwareResponse#setRenderParameters(Map)} and {@link javax.portlet.BaseURL#setParameters(Map)}.
- 20130717: Resolved PORTLETSPEC3-3: Clarification in CacheControl about {@link javax.portlet.CacheControl#getExpirationTime getExpirationTime()}.
- 20130717: Resolved PORTLETSPEC3-4: Clarification in PortletRequest about {@link javax.portlet.PortletRequest#getPortletSession() getPortletSession()}
- 20130717: Resolved PORTLETSPEC3-5: Clarification in {@link javax.portlet.PortletRequest#getPrivateParameterMap getPrivateParametermap()} about private render parameters
- 20130715: Initial version