I updated the spec, Java API documentation, and the Pluto reference implementation as spoken of in the EG call last Tuesday. The spec contains the review comments through chapter 13 Portlet Requests, including the change from PortletState to RenderState. In addition, this version removes the chapter on conditional dispatching and adds a chapter on asynchronous support for the portlet resource method.
The updated spec document is available here: https://java.net/projects/portletspec3/downloads/download/SpecDrafts/PortletSpec3-Draft2-20160408.pdf The Pluto code has been updated to reflect the spec changes through chapter 13 (although PortletRequest#getUserAgent() is not yet implemented ... next time). Async support for the resource request is implemented, along with an async demo portlet. The updated code is available in the Pluto repository in the V3Prototype branch. In addition, a predeployed Pluto for Windows is available here: https://java.net/projects/portletspec3/downloads/download/V3Prototype/pluto20160408.zip The portlet v3 javadoc has been updated to reflect the spec changes through chapter 13 and to add async support. It is available here: http://msnicklous.github.io/portletspec3/apidocs/index.html I would like to use the EG call on Tuesday 12 April to show the async demo and talk in general about async support. Async Support Features: * Async processing can be started & managed through ResourceRequest * defined PortletAsyncContext, PortletAsyncListener, PortletAsyncEvent interfaces * Async thread can be run through PortletAsyncContext#start(Runnable) * Full contextual support in thread - injection, @RenderStateScoped, @PortletRequestScoped, @PortletSessionScoped beans * In the same context as the original resource request * PortletAsyncContext#dispatch() dispatches back to the originating resource method. Context is preserved * PortletRequestDispatcher include/forward to JSP works; as does PortletAsyncContext#dispatch(String path) * Context is preserved, <portlet:defineObjects/> works * portlet artifacts available in JSP EL as named beans * Events fired to corresponding PortletAsyncListeners - onError, onTimeout, onAsyncStart, onComplete * Listeners run in same context as original resource request * Portlet artifacts can be injected, etc * Portlet request filters run during the container dispatches * REQUEST, ASYNC dispatch * Full contextual support in portlet filters Mit freundlichen Grüßen, / Kind regards, Scott Nicklous WebSphere Portal Standardization Lead & Technology Consultant Specification Lead, JSR 362 Portlet Specification 3.0 IBM Deutschland Research & Development GmbH / Vorsitzender des Aufsichtsrats: Martina Koederitz / Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294