[
https://issues.apache.org/jira/browse/PLUTO-700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Neil Griffin updated PLUTO-700:
-------------------------------
Description:
Section 20.2.3 of the Portlet 3.0 Specification titled "Render State Scope"
states:
{quote}The render state scope is a passivating scope that associates managed
beans with the render state.{quote}
While it is true that beans annotated with {{@RenderStateScoped}} need to be
"passivating" (meaning they need to be able to save/restore their state), such
beans are required to implement javax.portlet.annotations.PortletSerializable
rather than java.io.Serializable.
The Portlet 3.0 API {{@RenderStateScoped}} annotation declares the following
qualifiers:
{code:java|title=RenderStateScoped.java}
@Retention(RUNTIME)
@Target({TYPE})
@NormalScope()
@Inherited
public @interface RenderStateScoped {
String paramName() default "";
}
{code}
Note that the annotation defines {{@NormalScope()}} and not
{{@NormalScope(passivating = true)}}.
Because of this, it is necessary to clarify the sentence in the spec. For
example:
{quote}The render state scope is a non-passivating scope that associates
managed beans with the render state. Although beans annotated with
@RenderStateScoped are non-passivating from a CDI perspective, all such beans
must be able to save and restore their state.{quote}
In addition, the spec also states in the same section:
{quote}In accordance with the rules for updating render state, the portlet
container must serialize the @RenderStateScoped managed bean state using the
PortletSerializable interface serialize method during the action phase after
each portlet action request or event request execution that uses the managed
bean. The portlet container must store the serialized bean state as a render
parameter in the render state using the associated render parameter name.{quote}
Recommend that "during the action phase" be removed since the following phrase
"after each portlet action request or event request execution" is more clear
and concise.
was:
Section 20.2.3 of the Portlet 3.0 Specification titled "Render State Scope"
states:
{quote}The render state scope is a passivating scope that associates managed
beans with the render state.{quote}
While it is true that beans annotated with {{@RenderStateScoped}} need to be
"passivating" (meaning they need to be able to save/restore their state), such
beans are required to implement javax.portlet.annotations.PortletSerializable
rather than java.io.Serializable.
The Portlet 3.0 API {{@RenderStateScoped}} annotation declares the following
qualifiers:
{code:java|title=RenderStateScoped.java}
@Retention(RUNTIME)
@Target({TYPE})
@NormalScope()
@Inherited
public @interface RenderStateScoped {
String paramName() default "";
}
{code}
Note that the annotation defines {{@NormalScope()}} and not
{{@NormalScope(passivating = true)}}.
Because of this, it is necessary to clarify the sentence in the spec. For
example:
{quote}The render state scope is a non-passivating scope that associates
managed beans with the render state. Although beans annotated with
@RenderStateScoped are non-passivating from a CDI perspective, all such beans
must be able to save and restore their state.{quote}
> Spec: Clarify Section 20.2.3 titled "Render State Scope"
> --------------------------------------------------------
>
> Key: PLUTO-700
> URL: https://issues.apache.org/jira/browse/PLUTO-700
> Project: Pluto
> Issue Type: Bug
> Components: spec
> Affects Versions: 3.0.0
> Reporter: Neil Griffin
> Assignee: Scott Nicklous
> Priority: Major
>
> Section 20.2.3 of the Portlet 3.0 Specification titled "Render State Scope"
> states:
> {quote}The render state scope is a passivating scope that associates managed
> beans with the render state.{quote}
> While it is true that beans annotated with {{@RenderStateScoped}} need to be
> "passivating" (meaning they need to be able to save/restore their state),
> such beans are required to implement
> javax.portlet.annotations.PortletSerializable rather than
> java.io.Serializable.
> The Portlet 3.0 API {{@RenderStateScoped}} annotation declares the following
> qualifiers:
> {code:java|title=RenderStateScoped.java}
> @Retention(RUNTIME)
> @Target({TYPE})
> @NormalScope()
> @Inherited
> public @interface RenderStateScoped {
> String paramName() default "";
> }
> {code}
> Note that the annotation defines {{@NormalScope()}} and not
> {{@NormalScope(passivating = true)}}.
> Because of this, it is necessary to clarify the sentence in the spec. For
> example:
> {quote}The render state scope is a non-passivating scope that associates
> managed beans with the render state. Although beans annotated with
> @RenderStateScoped are non-passivating from a CDI perspective, all such beans
> must be able to save and restore their state.{quote}
> In addition, the spec also states in the same section:
> {quote}In accordance with the rules for updating render state, the portlet
> container must serialize the @RenderStateScoped managed bean state using the
> PortletSerializable interface serialize method during the action phase after
> each portlet action request or event request execution that uses the managed
> bean. The portlet container must store the serialized bean state as a render
> parameter in the render state using the associated render parameter
> name.{quote}
> Recommend that "during the action phase" be removed since the following
> phrase "after each portlet action request or event request execution" is more
> clear and concise.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)