You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-dev@portals.apache.org by Martin Scott Nicklous <Sc...@de.ibm.com> on 2016/04/08 16:08:18 UTC

New spec update; Async support added


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