[cdi-dev] [JBoss JIRA] (CDI-129) Clarify behaviour of @ApplicationScoped in EARs

Mark Struberg (JIRA) jira-events at lists.jboss.org
Mon Oct 22 08:56:01 EDT 2012


    [ https://issues.jboss.org/browse/CDI-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12728358#comment-12728358 ] 

Mark Struberg edited comment on CDI-129 at 10/22/12 8:54 AM:
-------------------------------------------------------------

that is exactly the problem: BOTH ways are not fully covered in CDI1.0! See CDI-18 where the EG already agreed that BDA and 5.1 is moot and needs to get redefined. Also
{quote}
2.4 Scopes:
Java EE components such as servlets, EJBs and JavaBeans do not have a well-defined scope. ...
singletons, such as EJB singleton beans, whose *state is shared between all clients*,
...
Scoped objects, by contrast, exist in a well-defined lifecycle context:
their state is automatically *shared by clients that execute in the same context*.
{quote}

Actually your interpretation of the spec would exactly fit the aforementioned EJB @Singleton. And in the same paragraph this is explicitly ruled out.

Also please note that your interpretation would have the result that firing a CDI event from an @ApplicationScoped bean in a shared lib would NOT reach any bean defined in any WAR file! There is no way to do that with your interpretation.

Again: all that ONLY happens if you need to deal with scopes > 1 per war.
                
      was (Author: struberg):
    that is exactly the problem: BOTH ways are not fully covered in CDI1.0! See CDI-18 where the EG already agreed that BDA and 5.1 is moot and needs to get redefined. Also

{quote}
2.4 Scopes:
Java EE components such as servlets, EJBs and JavaBeans do not have a well-defined scope. ...
singletons, such as EJB singleton beans, whose *state is shared between all clients*,
...
Scoped objects, by contrast, exist in a well-defined lifecycle context:
their state is automatically shared by clients that *execute in the same context*.

{quote}

Actually your interpretation of the spec would exactly fit the aforementioned EJB @Singleton. And in the same paragraph this is explicitly ruled out.

Also please note that your interpretation would have the result that firing a CDI event from an @ApplicationScoped bean in a shared lib would NOT reach any bean defined in any WAR file! There is no way to do that with your interpretation.

Again: all that ONLY happens if you need to deal with scopes > 1 per war.
                  
> Clarify behaviour of @ApplicationScoped in EARs
> -----------------------------------------------
>
>                 Key: CDI-129
>                 URL: https://issues.jboss.org/browse/CDI-129
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>          Components: Contexts
>    Affects Versions: 1.0
>            Reporter: Mark Struberg
>            Assignee: Pete Muir
>             Fix For: 1.1 (Proposed)
>
>
> Since @ApplicationScoped currently is defined in 6.5.2 as to be 'like in the Servlet specification' this means that you will get a new instance for every WebApplication (WAR file).
> There is currently no specified CDI scope for providing a single shared instance for a whole EAR.
> We could (ab-)use @Singleton for that, but this is currently not well defined at all.
> Alternatively we could introduce an own new annotation like @EnterpriseScoped or likes. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the cdi-dev mailing list