In theory you are right. But adding an Interceptor<T> Bean is WAY more work than having a standard @InterceptorBinding. And it also created lots of compatibility issues with older containers. Wheras @InterceptorBinding works everywhere.
LieGrue, strub > Am 27.04.2018 um 08:51 schrieb Romain Manni-Bucau <rmannibu...@gmail.com>: > > 2018-04-27 8:38 GMT+02:00 Mark Struberg <strub...@yahoo.de.invalid>: > >> No, it's not reinventing the wheel because those parts are missing in the >> CDI spec. >> >> The point is to keep the same <interceptors><class> but you can switch the >> actual behaviour purely via config. >> That way we don't need to change the beans.xml content for switching e.g. >> between resource_local and UserTransaction handling for @Transactional. >> >> And this is important because otherwise users would need to re-package >> deltaspike jars :( >> >> So no, there is imo no way to do the same functionality in CDI - not even >> CDI-2.0 >> > > Hmm, don't we do do it since cdi 1.0 (I ack it can be in late impl > versions). > An extension is perfectly able to do that since you can add the interceptor > programmatically when needed and select the impl at the same time, no? > I don't see the blocker we would have. > > >> >> LieGrue, >> strub >> >> >> >>> Am 26.04.2018 um 07:16 schrieb Romain Manni-Bucau <rmannibu...@gmail.com >>> : >>> >>> there are 2 issues: >>> >>> 1. we reinvent the wheel and do a competitive API compared to CDI >>> 2. most of them - except maybe tx one - will never be implemented by any >>> user >>> >>> So we kind of encourage users to do it wrong. >>> >>> Always thought it was technical workarounds so now we are in 2018 I think >>> we can slowly hide it or even drop it when not relevant (all core >>> interceptors pby) >>> >>> >>> >>> Romain Manni-Bucau >>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>> <https://rmannibucau.metawerx.net/> | Old Blog >>> <http://rmannibucau.wordpress.com> | Github <https://github.com/ >> rmannibucau> | >>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book >>> <https://www.packtpub.com/application-development/java- >> ee-8-high-performance> >>> >>> 2018-04-26 7:06 GMT+02:00 Gerhard Petracek <gpetra...@apache.org>: >>> >>>> the concrete interceptor-strategies (like TransactionStrategy) are part >> of >>>> our spi. your suggestion would mean that we would need to move them as >> well >>>> (= remove them from the spi). >>>> def. -1 for that because i know several users who are using them. >>>> i really don't get the issue you have with a simple marker interface >> (after >>>> we have it for 7 years - including codi). >>>> >>>> btw. there are users out there who re-use InterceptorStrategy for their >>>> internal interceptor-strategies (of their own libs). >>>> >>>> regards, >>>> gerhard >>>> >>>> >>>> >>>> 2018-04-26 6:41 GMT+02:00 Romain Manni-Bucau <rmannibu...@gmail.com>: >>>> >>>>> Still means it doesnt have to be in the API right? >>>>> >>>>> Le 26 avr. 2018 00:44, "Gerhard Petracek" <gpetra...@apache.org> a >>>> écrit : >>>>> >>>>>> #1 with cdi 1.0 (or to be more concrete: owb for cdi 1.0) you can't >> get >>>>> rid >>>>>> of pre-configured interceptors (that's why we introduced the >>>>>> interceptor-strategy concept initially). >>>>>> #2 e.g. TransactionStrategy has benefits beyond that (a public example >>>> is >>>>>> the usage in the ds-data-module) >>>>>> >>>>>> regards, >>>>>> gerhard >>>>>> >>>>>> >>>>>> >>>>>> 2018-04-25 6:58 GMT+02:00 Romain Manni-Bucau <rmannibu...@gmail.com>: >>>>>> >>>>>>> I get it but it means we add a layer on top of interceptor for >>>>>>> pluggability. This is actually built in in CDI so not really needed. >>>>>>> >>>>>>> Also the hierarchy point is fine but should be per type of strategy >>>> and >>>>>>> therefore we dont need a generic one in the api. >>>>>>> >>>>>>> As a user if i use DS and an interceptor, do i need to impl this >>>> public >>>>>>> api? Never normally so this sounds more misleading or reinventing the >>>>>> wheel >>>>>>> than anything else for me. >>>>>>> >>>>>>> That said we can move it in our impl modules to keep the feature but >>>>>> still >>>>>>> a clean api. >>>>>>> >>>>>>> Le 24 avr. 2018 23:21, "Gerhard Petracek" <gpetra...@apache.org> a >>>>>> écrit : >>>>>>> >>>>>>>> a concrete example: >>>>>>>> @Transactional >>>>>>>> >>>>>>>> -> >>>>>>>> @Interceptor is on TransactionalInterceptor whereas >>>>> InterceptorStrategy >>>>>>> is >>>>>>>> the marker interface for the strategies (and not the interceptor) - >>>>> in >>>>>>> this >>>>>>>> case TransactionStrategy. >>>>>>>> >>>>>>>> (to quickly get an overview of all interceptor-strategies you just >>>>> need >>>>>>> to >>>>>>>> open the hierarchy-view for InterceptorStrategy and you have >>>>> everything >>>>>>> you >>>>>>>> need with one step...) >>>>>>>> >>>>>>>> regards, >>>>>>>> gerhard >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 2018-04-24 22:35 GMT+02:00 Romain Manni-Bucau < >>>> rmannibu...@gmail.com >>>>>> : >>>>>>>> >>>>>>>>> Hmm not sure i get it, annotations are hard to browse in IDE? Is >>>> it >>>>>>> what >>>>>>>> it >>>>>>>>> addresses? >>>>>>>>> >>>>>>>>> Le 24 avr. 2018 21:10, "Gerhard Petracek" <gpetra...@apache.org> >>>> a >>>>>>>> écrit : >>>>>>>>> >>>>>>>>>> hi romain, >>>>>>>>>> >>>>>>>>>> not really. 1 interceptor could have n strategies as candidates >>>>>> (e.g. >>>>>>>> see >>>>>>>>>> TransactionStrategy for which we provide multiple >>>> implementations >>>>>>>>>> out-of-the-box). >>>>>>>>>> that's the whole concept. the marker interfaces is just to find >>>>> all >>>>>>>>>> strategies in a project easily. >>>>>>>>>> we have it since 02/2011 (back then it was codi) and a lot of >>>>>> users >>>>>>>> are >>>>>>>>>> using it (during the dev. process) and i haven't heard about >>>> any >>>>>>>> concern >>>>>>>>>> (from users). >>>>>>>>>> >>>>>>>>>> regards, >>>>>>>>>> gerhard >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2018-04-24 19:31 GMT+02:00 Romain Manni-Bucau < >>>>>> rmannibu...@gmail.com >>>>>>>> : >>>>>>>>>> >>>>>>>>>>> Le 24 avr. 2018 19:18, "Gerhard Petracek" < >>>>> gpetra...@apache.org> >>>>>> a >>>>>>>>>> écrit : >>>>>>>>>>> >>>>>>>>>>> it was always just a marker-interface to list all >>>>>>>>> interceptor-strategies >>>>>>>>>>> easily. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> But if it is just interceptors, doesnt @Interceptor fulfills >>>>> that >>>>>>>>>> already? >>>>>>>>>>> >>>>>>>>>>> My only concern is exposing it in api to user where it is >>>>>> actually >>>>>>> a >>>>>>>>> dead >>>>>>>>>>> interface. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> regards, >>>>>>>>>>> gerhard >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2018-04-24 13:47 GMT+02:00 Thomas Andraschko < >>>>>>>>>> andraschko.tho...@gmail.com >>>>>>>>>>>> : >>>>>>>>>>> >>>>>>>>>>>> basically +1 >>>>>>>>>>>> but its still used currently >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2018-04-23 11:46 GMT+02:00 Romain Manni-Bucau < >>>>>>>> rmannibu...@gmail.com >>>>>>>>>> : >>>>>>>>>>>> >>>>>>>>>>>>> Hi guys, >>>>>>>>>>>>> >>>>>>>>>>>>> Do we still need InterceptorStrategy? >>>>>>>>>>>>> >>>>>>>>>>>>> If not, can we deprecate it and remove it from our >>>> built-in >>>>>>>>>>> interceptors? >>>>>>>>>>>>> >>>>>>>>>>>>> Romain Manni-Bucau >>>>>>>>>>>>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>>>>>>>>>>>> <https://rmannibucau.metawerx.net/> | Old Blog >>>>>>>>>>>>> <http://rmannibucau.wordpress.com> | Github < >>>>>>> https://github.com/ >>>>>>>>>>>>> rmannibucau> | >>>>>>>>>>>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | >>>> Book >>>>>>>>>>>>> <https://www.packtpub.com/application-development/java- >>>>>>>>>>>>> ee-8-high-performance>