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

Neil Griffin updated PLUTO-772:
-------------------------------
    Affects Version/s:     (was: 3.0.2)

> Implement MVCBean portlets
> --------------------------
>
>                 Key: PLUTO-772
>                 URL: https://issues.apache.org/jira/browse/PLUTO-772
>             Project: Pluto
>          Issue Type: New Feature
>          Components: portlet container
>            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