[ 
https://issues.apache.org/jira/browse/PLUTO-772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Neil Griffin updated PLUTO-772:
-------------------------------
    Description: 
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.

h2. Security

MVC 1.0 features the {{@CsrfProtected}} annotation which enables and enforces 
CSRF protection for controller methods. The Apache Pluto implementation of MVC 
1.0 leverages CSRF protection supplied by Spring Security. For more 
information, see PLUTO-768.


  was:
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.



> 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
>            Priority: Major
>
> 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.
> h2. Security
> MVC 1.0 features the {{@CsrfProtected}} annotation which enables and enforces 
> CSRF protection for controller methods. The Apache Pluto implementation of 
> MVC 1.0 leverages CSRF protection supplied by Spring Security. For more 
> information, see PLUTO-768.



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

Reply via email to