[cdi-dev] On @RequestScoped hack
Jozef Hartinger
jharting at redhat.com
Wed Jun 24 05:37:54 EDT 2015
My suggestion would be to not specify any temporary hack in the spec
(and revert that part of the PR). Address this properly with CDI-530.
On 06/24/2015 11:31 AM, Antoine Sabot-Durand wrote:
> Jozef,
>
> I think I really got your disagreement on that point. You repeated it
> many times.
>
> My point and the question I keep asking to you is "what is your
> suggestion?".
> Personally I see 5 solutions here:
>
> 1) Don't do anything since there's no alternative solution
> 2) Change the wording regarding request scope activation in something
> like "is active from the initialization of the container until its
> shutdown"
> 3) Give the same behavior than application scope request scope is shared
> 4) Revert and say that Request Scope is not active in SE. But it's
> also a hack since we'll change it with CDI-530
> 5) Don't specify anything
>
> I guess that you're choice is 4 or 5, but I may be wrong again, so why
> not tell us what you'd like to see and save us some time ?
>
> thanks
>
> Antoine
>
>
>
> Le mer. 24 juin 2015 à 11:13, Mark Struberg <struberg at yahoo.de
> <mailto:struberg at yahoo.de>> a écrit :
>
> Jozef, read the rest of the meeting minutes as well. Throne and I
> enlisted dozen of REAL use cases where it is needed.
>
> > Does the @RequestScoped hack really address customers' problem?
> Yes it does. In the final spec a programmer could programmatically
> enable the request context and ends it again IF he needs it. But
> today he cannot. And many users code really needs it. So the only
> thing we can do TODAY is to enable it by default.
>
> > * A CDI implementation may add such hack by itself - no need to
> have it
> > the spec temporarily
> Well that is an option but the users then cannot rely on it.
>
>
> And no, it is perfectly implementable as it is worded right now.
>
> LieGrue,
> strub
>
>
> > Am 24.06.2015 um 10:50 schrieb Jozef Hartinger
> <jharting at redhat.com <mailto:jharting at redhat.com>>:
> >
> > Hi all,
> >
> > unfortunately I did not make it to the meeting yesterday. After
> reading
> > the transcript I found out that the @RequestScoped hack is still
> being
> > added to the EDR. What do I mean by "@RequestScoped hack"?
> > By that I am referring to the following part of the spec:
> >
> > "
> > In Java SE:
> > The request scope is active during any method invocation.
> > The request context is destroyed when the container is shut down.
> > "
> >
> > This is vague, almost undefined and not correctly implementable.
> Most
> > importantly, everyone seems to agree that it would be a bad idea for
> > this to end up in the final spec. Instead, it is supposed to be
> replaced
> > entirely by ContextControl API
> (https://issues.jboss.org/browse/CDI-530)
> > post EDR1.
> >
> > Yet, we are adding this hack to EDR1 for the meantime. Why? The only
> > argument to back this was "supporting existing libraries and
> applications".
> >
> > That seems reasonable, doesn't it? Well, no. Antoine took a detailed
> > look into probably the most prominent CDI library - DeltaSpike.
> Yes, you
> > can find @RequestScoped beans in DeltaSpike. You can find Servlet
> > artifact producers, JSF view root and navigation handlers, etc. And
> > that's it. Nothing one could really use outside of the EE stack.
> >
> > That's not a coincidence. When a user marks a bean as
> @RequestScoped we
> > can assume they do it for a reason. The reason most likely would
> be to
> > scope the state per "task" (often HTTP request processing) and
> isolate
> > the state from the state of other tasks. That's very different
> from the
> > @Singleton-like behavior that the @RequestScoped hack adds.
> Therefore,
> > even if a library exists that relies on @RequestScoped it is not
> going
> > to work properly anyway. The @RequestScoped hack just suppresses
> a fast
> > failure and trades it for weird state inconsistencies later.
> >
> > Another part of the argument is "existing applications". More
> specifically:
> >
> > "struberg: well, I have a few customers with 10k++ classes. And some
> > core components use it heavily"
> >
> > Does the @RequestScoped hack really address customers' problem?
> Remember
> > that the @RequestScoped hack is planned to be temporary and replaced
> > with proper context control post EDR1.
> > Are those customers planning to migrate to EDR1 implementation (Weld
> > Alpha probably) before the spec gets context control? Do they
> expect to
> > take their "10k++ class" Java EE applications, throw the EE
> container
> > out entirely and run the *unmodified* application in a plain Java SE
> > environment with CDI SE? Will their apps work even if their
> > @RequestScoped beans start behaving like singletons?
> > Probably not, right?
> >
> > And then we have early adopters of CDI 2.0. Why should they be
> exposed
> > to magical hacks that we know are going to disappear later?
> >
> > And let's not forget that:
> > * CDI implementations already have their own APIs for controlling
> > contexts that can be used if needed
> > * A CDI implementation may add such hack by itself - no need to
> have it
> > the spec temporarily
> >
> > Therefore, I cannot see a single reason for polluting the spec with
> > temporary hacks.
> >
> > Jozef
> > _______________________________________________
> > cdi-dev mailing list
> > cdi-dev at lists.jboss.org <mailto: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.
>
>
> _______________________________________________
> cdi-dev mailing list
> cdi-dev at lists.jboss.org <mailto: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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20150624/1e83925e/attachment-0001.html
More information about the cdi-dev
mailing list