[cdi-dev] New Servlet related scope - @UpgradeScoped (?)
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:
>> 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.
>> 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
> cdi-dev mailing list
> cdi-dev at lists.jboss.org
> 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