[jira] [Created] (PLUTO-772) Implement MVCBean portlets

"Neil Griffin (JIRA)" <[email protected]> Mon, 8 Apr 2019 19:40:00 +0000 (UTC)
Newsgroups gmane.comp.jakarta.pluto.devel
Message-ID <[email protected]>
Neil Griffin created PLUTO-772:
----------------------------------

             Summary: Implement MVCBean portlets
                 Key: PLUTO-772
                 URL: https://issues.apache.org/jira/browse/PLUTO-772
             Project: Pluto
          Issue Type: New Feature
          Components: portlet container
    Affects Versions: 3.0.2
            Reporter: Neil Griffin
            Assignee: Neil Griffin


This issue serves as a task for implementing a large subset of [MVC 1.0|https://www.mvc-spec.org] for use with portlet technology in Apache Pluto. [The MVC 1.0 Specification, JavaDoc, and API are all licensed using The Apache License 2.0|https://www.mvc-spec.org/news/2017/05/17/license-decided.html]. Although the Spec is also licensed using the standard JCP click-through specification license, Pluto's implementation is in no way associated with the JCP click-through specification license, and is not an implementation that ever intends to pass the TCK, especially since the TCK is servlet/webapp based and is incompatible with portlet environments.

h2. Background

Portlet 3.0 supplied the concept of a CDI "Bean Portlet" and introduced annotation-driven method dispatching with annotations such as {{@ActionMethod}}, {{@RenderMethod}}, and {{@ServeResourceMethod}}. This is effectively the "C" (Controller) concern of the MVC design pattern.

However, Portlet 3.0 did not give us the "M" (Model) or "V" (View) concerns, nor did it give us a CDI scope that allows for model data to survive from the {{ACTION_PHASE}} to the {{RENDER_PHASE}} of the portlet lifecycle.

In order to remedy this shortcoming, Pluto's implementation of MVC 1.0 satisfies a large subset of  MVC 1.0 requirements in a way that makes sense for portlet developers. Requirements based on JAX-RS method dispatching are not (and will not be) implemented -- instead, Pluto's implementation relies on the aforementioned Portlet 3.0 CDI "Bean Portlet" method dispatching. Pluto also implements {{@RedirectScoped}} so that model data to survive from the {{ACTION_PHASE}} to the {{RENDER_PHASE}} of the portlet lifecycle.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)