[cdi-dev] New Servlet related scope - @UpgradeScoped (?)

Martin Kouba mkouba at redhat.com
Thu Dec 4 04:04:56 EST 2014

Dne 4.12.2014 v 09:28 Pavel Bucek napsal(a):
> Hello Arjan,
> On 03/12/14 19:44, arjan tijms wrote:
>> Hi,
>> On Wednesday, December 3, 2014, Pavel Bucek <pavel.bucek at oracle.com
>> <mailto:pavel.bucek at oracle.com>> wrote:
>>     Hi all,
>>     I'm trying to figure out how to solve issue in JSR 356 - Java API for
>>     WebSocket, related to CDI scope usable from WebSocket endpoints.
>>     Problem
>>     is, that "standard" scopes do not apply, because there is no
>>     @RequestScoped (http response is already sent), HttpSession does not
>>     need to be created and the rest does not seem to be applicable, ...
>>     I believe that CDI specification should define @UpgradeScoped, which
>>     would cover usages of HttpUpgradeHandler from Servlet API.
>>     (Similarly as
>>     it does for @RequestScoped, @SessionScoped, ... )
>> Wouldn't it be a better option to have WebSocket define that scope,
>> using CDI to implement it?
> That is one possibility, but @UpgradeScoped would be more general than
> just for WebSocket - it would apply for all HTTP/1.1+ Upgrade
> applications. In my eyes, it is something which was forgotten to do in
> Java EE 7 release, since HttpUpgradeHandler was introduced in it.
> Also please note, that other Servlet related scopes are already in CDI
> spec, so it seems like it belongs there more than anywhere else. This
> might have multiple reasons - for example, you can easily define
> relationship between @UpgradeScoped and others, already existing ones.
> In this sense, CDI specification now depends on Servlet API (it
> references some of the classes defined in it), but Servlet does not do
> that for CDI. I don't think that Servlet spec should introduce similar
> dependency just because of new scope.

That's a good point. However, I don't think it's a good path to follow. 
I mean if it were in CDI spec, CDI implementations would be required to 
implement this. However, Servlet spec is not very clear in many areas 
and doesn't always provide a powerful enough SPI. Even now there are 
technical issues with similar requirements (e.g. @RequestScoped during 
AsyncListener invocations). I'm not so sure about HttpUpgradeHandler 

> Thanks,
> Pavel
> _______________________________________________
> cdi-dev mailing list
> cdi-dev at 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.

More information about the cdi-dev mailing list