See 6.6.5 of the Spec. Serializable all over the place.
The important point is also the difference between the requirement for Bean<T>
instances to be PassivationCapable and the Contextual Instances to be Serializable.
E.g. for @ApplicationScoped the ContextualInstance doesn't need to be Serializable,
but the Bean<T> for it needs to be PassivationCapable. The reason is that the
Bean<T> instance gets stored in the Proxy. And this Proxy needs to be Serializable
because otherwise you would not be able to inject it into a @SessionScoped bean (or any
other bean with passivating scope).
LieGrue,
strub
On Sunday, 1 February 2015, 13:37, Antonio Goncalves <antonio.goncalves(a)gmail.com>
wrote:
Hi all,
I was reading the CDI 1.2 spec and couldn't clearly find the way serialization and
scopes work. The only explicit sentence I found was :
1.3.1. JSF example
The @SessionScoped annotation defined in Section 2.4.1, “Built-in scope types” is a scope
type that specifies the lifecycle of instances of Login. Managed beans with this scope
must be
serializable.
The Weld documentation is a bit more explicit :
5.2. Built-in scopes
Managed beans with scope @SessionScoped or @ConversationScoped must be serializable, since
the container passivates the HTTP session from time to time.
And in the Java EE Tutorial we find
(
http://docs.oracle.com/javaee/6/tutorial/doc/gjbbk.html) :
Beans that use session, application, or conversation scope must be serializable, but beans
that use request scope do not have to be serializable.
This even made be doubt about the application scope ?!?
Any way, could we clarify this in the CDI spec ?
--
Antonio Goncalves
Software architect, Java Champion and Pluralsight author
Web site | Twitter | LinkedIn | Pluralsight | Paris JUG | Devoxx France
_______________________________________________
cdi-dev mailing list
cdi-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/cdi-dev
Note that for all code provided on this list, the provider licenses the code under the
Apache License, Version 2 (
http://www.apache.org/licenses/LICENSE-2.0.html). For all other
ideas provided on this list, the provider waives all patent and other intellectual
property rights inherent in such information.