[cdi-dev] Can proxying be handled the way done in EJB?
Mark Struberg
struberg at yahoo.de
Wed Feb 10 08:36:58 EST 2016
Indeed, or as simple as having the producer not create a SomeBlaImpl but the SomeBla interface.
That was my case a) in the CDI ticket. And of course this should be prefered to the allowProxing exception. BUT you 1.) not always have an interface and 2.) sometimes (like with some JDK classes) you really need the impl and 3.) sometimes you need to create subclasses of a 3rd party class. And with subclassing there is no way to get rid of a final method :/
LieGrue,
strub
> Am 10.02.2016 um 14:12 schrieb John D. Ament <john.d.ament at gmail.com>:
>
> Not sure if we want to pollute the vote thread, so changing titles.
>
> I think to summarize my feelings, think about the relationship between interface Foo and implementation FooImpl. Foo is defined:
>
> interface Foo {
> String doWork();
> }
>
> FooImpl is defined as:
>
> public class FooImpl implements Foo {
> public String doWork() { return "i'm done"; }
>
> public final String doSomethingElse() { return "something else"; }
>
> }
>
> The way CDI impls work right now, the proxy is created for the impl. The way EJBs proxy right now, they proxy the interface. If CDI proxied both the interface and impl separately, and substituted based on the injection point, this would work.
>
>
> On Wed, Feb 10, 2016 at 8:07 AM Martin Kouba <mkouba at redhat.com> wrote:
> Dne 10.2.2016 v 13:48 John D. Ament napsal(a):
> > +1 for adding this feature to the spec.
> >
> > -1 for adding it the way it is written currently. This isn't to say
> > that Mark's idea is bad, its just that it puts too much onus on the
> > application developer to know the structure of its classes, both
> > internally developed and externally provided.
> >
> > We should follow a pattern closer to EJB (in my opinion) where the
> > non-proxyable methods are just not proxied - you won't get transactions,
> > etc available.
>
> -1
>
> I think you cannot declare a final method on a NIV session bean (you get
> validation error) and it's easy to create a proxy for local/remote
> interface - no such methods. I also think we cannot implement this in
> Weld as we're using subclassing for client proxies. If you don't
> override (i.e. if you ignore) such a method than it will not be invoked
> upon the contextual instance but upon the clien proxy instance (subclass).
>
> >
> > John
> >
> > On Tue, Feb 9, 2016 at 11:37 AM Antoine Sabot-Durand
> > <antoine at sabot-durand.net <mailto:antoine at sabot-durand.net>> wrote:
> >
> > Hi all,
> >
> > There have been a lot of discussion around CDI-527 in the last weeks:
> > https://issues.jboss.org/browse/CDI-527
> >
> > Mark proposed a PR:
> > https://github.com/cdi-spec/cdi/pull/271
> >
> > But we don't agree on adding this feature to the spec.
> > This vote is to decide if we should add this feature at the spec
> > level now, or not.
> > Should we vote this feature down, that won't mean it will be
> > completely dropped: it could be implemented as non portable feature
> > in both Spec or even be included as experimental feature in the spec
> > (in annexes) as describe in the PR comments
> > Vote starts now, only vote from EG members are binding (but you can
> > give your opinion if not part of the EG) and will last 72 hours.
> >
> > You vote with the following values:
> > +1 : I'm favorable for adding this feature in the spec
> > -1 : I'm against adding this feature in the spec
> > 0 : I don't care
> >
> > Thank you for your attention and your vote.
> >
> > Antoine Sabot-Durand
> > _______________________________________________
> > 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
> > 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.
> >
>
> --
> Martin Kouba
> Software Engineer
> Red Hat, Czech Republic
> _______________________________________________
> 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