[cdi-dev] [JBoss JIRA] (CDI-370) Expand @RequestScoped and @SessionScoped to account for WebSocket

Jens Schumann (JIRA) jira-events at lists.jboss.org
Tue May 7 08:19:53 EDT 2013

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

Jens Schumann commented on CDI-370:

While the current CDI spec maintains a strong relationship between RequestScoped and HTTP i would not assume that RequestScoped is strictly bound to HTTP. The RequestScope spec/javadoc lists 4 use cases with one being bound to HTTP and another one that may hint a dependency to HTTP (because of JAX-RS, JAX-WS doesn't require HTTP). Especially the availability in EJB method invocations and @PostConstruct tells me: RequestScopes lives without HTTP just perfectly. 

So RequestScoped should be available for WebSocket message delivery similar to the current JMS/@Asynchronous support.

Personally I believe the sections "6.7.x {scope} context lifecycle" are already too verbose. I have no profound knowledge of the Java EE specification process, nevertheless I believe the scope lifecycle should be better covered by the Java EE umbrella spec similar to security and transactions (Java Platform, Enterprise Edition (Java EE) Specification, v7 and later). This way you can expanded the supported platform specs without touching the CDI spec again.

Same applies to "2.4.1 Built-in scope types". The current wording "The @RequestScoped, @ApplicationScoped and @SessionScoped annotations defined in Section 6.7 represent the standard scopes defined by the Java Servlets specification." does not cover all supported use cases in 6.7.x and should relaxed (in a CDI 1.1 maintenance release i guess).

> Expand @RequestScoped and @SessionScoped to account for WebSocket
> -----------------------------------------------------------------
>                 Key: CDI-370
>                 URL: https://issues.jboss.org/browse/CDI-370
>             Project: CDI Specification Issues
>          Issue Type: Feature Request
>            Reporter: Joseph Snyder
> We've been testing injection into a WebSocket endpoint.
> @ReqestScoped objects are usable within the @OnOpen callback. This is because this object is executed within a valid request scope.
> However if you try to use the injected object from within the @OnMessage callback you get a Weld error:
> SEVERE:   org.jboss.weld.context.ContextNotActiveException:
> WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped
> Can the definition of when @RequestScoped is active be expanded to include a WebSocket @OnMessage callback?

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