+1 that's a need, DS targets CDI 1.0 for now so just make this solder part portable ans it should be fine
Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2012/12/20 Jason Porter <[email protected]>: > At this point, I'd say just do it as is in solder. > > > On Wed, Dec 19, 2012 at 5:25 PM, John D. Ament <[email protected]>wrote: > >> Hi All, >> >> Regarding the two open questions: >> >> 1) the approach (including the name/s) we agree on will be used also for >> cdi 1.1 (the only difference is the package) >> 2) the eg has a different opinion about it -> >> >> It looks like the JSR's answer (https://issues.jboss.org/browse/CDI-110 ) >> is still unresolved - I'm not sure if we can get any further answer at this >> time. The last posts on the subject seem to discuss using something along >> the lines of an invocation handler, which I think would work well. Since >> we have some features coming up that are interested in having service >> handlers available, do we >> >> 1. Implement as is, or similar to, what is currently in Solder? >> 2. Push EG on a resolution >> 3. Do it using invocation handlers. >> 4. Do it some other way? >> >> John >> >> >> On Wed, Apr 4, 2012 at 3:50 PM, Gerhard Petracek < >> [email protected] >> > wrote: >> >> > hi john, >> > >> > as mentioned before we need the answers to the existing questions. >> > >> > regards, >> > gerhard >> > >> > >> > >> > 2012/4/4 John D. Ament <[email protected]> >> > >> > > All, >> > > >> > > I kind of let this one and the other drop off my radar, I apologize. >> it >> > > looks like where we last left off, Gerhard was still requesting >> > additional >> > > comments from everyone. Any other feedback? >> > > >> > > John >> > > >> > > On Mon, Mar 12, 2012 at 1:06 PM, Gerhard Petracek < >> > > [email protected]> wrote: >> > > >> > > > hi george, >> > > > >> > > > thx for the information. i thought there might be at least some >> > > additional >> > > > answers/clarifications, since pete asked for them in several >> comments. >> > > > -> imo we should continue with them. >> > > > >> > > > regards, >> > > > gerhard >> > > > >> > > > >> > > > >> > > > 2012/3/12 George Gastaldi <[email protected]> >> > > > >> > > > > Hello Gerhard, >> > > > > >> > > > > Yeah, it´s the last state. I know it´s quite old, but I haven´t had >> > > time >> > > > > to work on it after that. >> > > > > Regards, >> > > > > >> > > > > George >> > > > > >> > > > > >> > > > > 2012/3/12 Gerhard Petracek <[email protected]> >> > > > > >> > > > >> hi george, >> > > > >> >> > > > >> thx for the link. >> > > > >> i'm not sure if it is the latest state of your discussion and/or >> > draft >> > > > >> (at least it's quite old already). >> > > > >> >> > > > >> regards, >> > > > >> gerhard >> > > > >> >> > > > >> >> > > > >> >> > > > >> 2012/3/7 George Gastaldi <[email protected]> >> > > > >> >> > > > >>> Hi ! >> > > > >>> >> > > > >>> +1 to #1. I also agree that the term "Service Handler" might not >> be >> > > so >> > > > >>> appropriate, so it should be discussed as well. >> > > > >>> Here is the latest pull request with some comments from Pete yet >> to >> > > be >> > > > >>> reviewed: https://github.com/jboss/cdi/pull/28 >> > > > >>> >> > > > >>> 2012/3/7 Pete Muir <[email protected]> >> > > > >>> >> > > > >>> > Agreed :-) >> > > > >>> > >> > > > >>> > George is working on it for CDI 1.1. George, can you share your >> > > > >>> proposal >> > > > >>> > so far? >> > > > >>> > >> > > > >>> > On 7 Mar 2012, at 17:05, Gerhard Petracek wrote: >> > > > >>> > >> > > > >>> > > hi pete, >> > > > >>> > > >> > > > >>> > > independent of my opinion about the feature (which is still >> > +0): >> > > > >>> > > if it should be part of cdi 1.1, we have the following >> options >> > > imo: >> > > > >>> > > >> > > > >>> > > 1) the approach (including the name/s) we agree on will be >> used >> > > > also >> > > > >>> for >> > > > >>> > > cdi 1.1 (the only difference is the package) >> > > > >>> > > 2) the eg has a different opinion about it -> >> > > > >>> > > 2a) the rest of the eg joins this discussion >> > > > >>> > > 2b) we wait for the final version and just allow the same >> with >> > > cdi >> > > > >>> 1.0 >> > > > >>> > > 3) if the eg doesn't agree on the idea, it should be >> re-visited >> > > for >> > > > >>> > > deltaspike (if we really need it) >> > > > >>> > > 4) we agree on it independent of the result in cdi 1.1 >> > > > >>> > > >> > > > >>> > > 1-3 is ok for me but -1 for #4 >> > > > >>> > > >> > > > >>> > > regards, >> > > > >>> > > gerhard >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > 2012/3/7 Pete Muir <[email protected]> >> > > > >>> > > >> > > > >>> > >> I'm not sure what you mean by a "super interceptor", but if >> > you >> > > > >>> mean it >> > > > >>> > as >> > > > >>> > >> in "super man" (something better than an interceptor), then >> I >> > > > would >> > > > >>> > >> disagree, it's actually a specialised form of interceptor. >> > > > >>> > >> >> > > > >>> > >> The best use case I know of is the one John mentions - >> > creating >> > > > type >> > > > >>> > safe >> > > > >>> > >> references to queries: >> > > > >>> > >> >> > > > >>> > >> @QueryService >> > > > >>> > >> interface UserQuery { >> > > > >>> > >> >> > > > >>> > >> @Query("select u from User u") >> > > > >>> > >> public List<User> getAllUsers(); >> > > > >>> > >> >> > > > >>> > >> @Query("select u from User u order by u.name") >> > > > >>> > >> public List<User> getAllUsersSortedByName(); >> > > > >>> > >> >> > > > >>> > >> } >> > > > >>> > >> >> > > > >>> > >> Now, it may be the case that there aren't any other use >> cases >> > > for >> > > > >>> > service >> > > > >>> > >> handlers, in which case we should perhaps just offer this >> > > > particular >> > > > >>> > >> service handler - references to type safe queries - as I >> think >> > > > this >> > > > >>> is >> > > > >>> > an >> > > > >>> > >> extremely powerful idea. >> > > > >>> > >> >> > > > >>> > >> Note, that at the moment service handlers are scheduled for >> > CDI >> > > > 1.1. >> > > > >>> > >> >> > > > >>> > >> >> > > > >>> > >> On 7 Mar 2012, at 02:35, Jason Porter wrote: >> > > > >>> > >> >> > > > >>> > >>> Somewhat. I wouldn't really think of them as overrides, >> they, >> > > to >> > > > >>> me, >> > > > >>> > >> seem more like items to do in addition to whatever the >> > original >> > > > impl >> > > > >>> > does. >> > > > >>> > >>> >> > > > >>> > >>> ServiceHandlers to me seem more like super interceptors. >> > > > >>> > >>> >> > > > >>> > >>> Sent from my iPhone >> > > > >>> > >>> >> > > > >>> > >>> On Mar 6, 2012, at 19:23, "John D. Ament" < >> > > > [email protected]> >> > > > >>> > >> wrote: >> > > > >>> > >>> >> > > > >>> > >>>> @jason >> > > > >>> > >>>> >> > > > >>> > >>>> I think the concepts are very dissimilar. servicehandlers >> > > > create >> > > > >>> the >> > > > >>> > >>>> implementation. delegates are more like overrides and >> need >> > to >> > > > >>> know >> > > > >>> > >> about >> > > > >>> > >>>> the method signature. >> > > > >>> > >>>> >> > > > >>> > >>>> On Tue, Mar 6, 2012 at 9:17 PM, Jason Porter < >> > > > >>> [email protected] >> > > > >>> > >>> wrote: >> > > > >>> > >>>> >> > > > >>> > >>>>> I think the idea of ServiceHandlers are good, but, could >> we >> > > not >> > > > >>> do >> > > > >>> > this >> > > > >>> > >>>>> with delegates? >> > > > >>> > >>>>> >> > > > >>> > >>>>> Sent from my iPhone >> > > > >>> > >>>>> >> > > > >>> > >>>>> On Mar 6, 2012, at 19:05, "John D. Ament" < >> > > > >>> [email protected]> >> > > > >>> > >> wrote: >> > > > >>> > >>>>> >> > > > >>> > >>>>>> @mark >> > > > >>> > >>>>>> >> > > > >>> > >>>>>> I don't think it's a hard requirement for it to be on an >> > > > >>> interface. >> > > > >>> > >>>>>> >> > > > >>> > >>>>>> One of the best use-cases we built at my job is using it >> > for >> > > > >>> calling >> > > > >>> > >>>>>> PL/SQL. The JDBC bindings do work, but not pretty. we >> > were >> > > > >>> able to >> > > > >>> > >>>>> create >> > > > >>> > >>>>>> a fairly clean wrapper API, generic enough for binding >> > > in/out >> > > > >>> > >> parameters. >> > > > >>> > >>>>>> >> > > > >>> > >>>>>> JOhn >> > > > >>> > >>>>>> >> > > > >>> > >>>>>> On Tue, Mar 6, 2012 at 12:58 PM, Mark Struberg < >> > > > >>> [email protected]> >> > > > >>> > >>>>> wrote: >> > > > >>> > >>>>>> >> > > > >>> > >>>>>>> actually I don't really see a real benefit. I just >> don't >> > > yet >> > > > >>> grok >> > > > >>> > the >> > > > >>> > >>>>> use >> > > > >>> > >>>>>>> case for real world projects. >> > > > >>> > >>>>>>> >> > > > >>> > >>>>>>> Why would one intercept an Interface and delegate the >> > calls >> > > > to >> > > > >>> a >> > > > >>> > >> method >> > > > >>> > >>>>>>> handler? >> > > > >>> > >>>>>>> This could be neat for mocking, but there are better >> > > > >>> frameworks for >> > > > >>> > >>>>> that. >> > > > >>> > >>>>>>> >> > > > >>> > >>>>>>> thus >> > > > >>> > >>>>>>> >> > > > >>> > >>>>>>> -0.2 >> > > > >>> > >>>>>>> >> > > > >>> > >>>>>>> LieGrue, >> > > > >>> > >>>>>>> strub >> > > > >>> > >>>>>>> >> > > > >>> > >>>>>>> >> > > > >>> > >>>>>>> >> > > > >>> > >>>>>>> ----- Original Message ----- >> > > > >>> > >>>>>>>> From: Gerhard Petracek <[email protected]> >> > > > >>> > >>>>>>>> To: [email protected] >> > > > >>> > >>>>>>>> Cc: >> > > > >>> > >>>>>>>> Sent: Tuesday, March 6, 2012 5:15 PM >> > > > >>> > >>>>>>>> Subject: Re: [DISCUSS] [DELTASPIKE-113] Review and >> > Discuss >> > > > >>> > >>>>> ServiceHandler >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>>> if you have a lot of shared code, you can extract it >> in >> > > 1-n >> > > > >>> > >> method/s or >> > > > >>> > >>>>>>> an >> > > > >>> > >>>>>>>> abstract class which is still easier than a new >> concept. >> > > > >>> > >>>>>>>> at least i haven't seen an use-case which really >> needed >> > > it. >> > > > >>> that >> > > > >>> > was >> > > > >>> > >>>>> the >> > > > >>> > >>>>>>>> reason for a +0 (which still means that i'm ok with >> > adding >> > > > >>> it). >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>>> regards, >> > > > >>> > >>>>>>>> gerhard >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>>> 2012/3/6 Pete Muir <[email protected]> >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>>>> So, you mean just write a bean with all the >> boilerplate >> > > > code >> > > > >>> in >> > > > >>> > it? >> > > > >>> > >>>>>>>>> >> > > > >>> > >>>>>>>>> On 6 Mar 2012, at 15:58, Gerhard Petracek wrote: >> > > > >>> > >>>>>>>>> >> > > > >>> > >>>>>>>>>> hi pete, >> > > > >>> > >>>>>>>>>> >> > > > >>> > >>>>>>>>>> instead of the interface you can just implement a >> bean >> > > > which >> > > > >>> > does >> > > > >>> > >> the >> > > > >>> > >>>>>>>>> same. >> > > > >>> > >>>>>>>>>> >> > > > >>> > >>>>>>>>>> regards, >> > > > >>> > >>>>>>>>>> gerhard >> > > > >>> > >>>>>>>>>> >> > > > >>> > >>>>>>>>>> >> > > > >>> > >>>>>>>>>> >> > > > >>> > >>>>>>>>>> 2012/3/6 Pete Muir <[email protected]> >> > > > >>> > >>>>>>>>>> >> > > > >>> > >>>>>>>>>>> What CDI mechanism would you use instead? >> > > > >>> > >>>>>>>>>>> >> > > > >>> > >>>>>>>>>>> On 5 Mar 2012, at 08:47, Gerhard Petracek wrote: >> > > > >>> > >>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>> +0 >> > > > >>> > >>>>>>>>>>>> no -1 because there are use-cases for it. >> > > > >>> > >>>>>>>>>>>> no +1 because i would use std. cdi mechanisms >> > instead. >> > > > >>> > >>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>> regards, >> > > > >>> > >>>>>>>>>>>> gerhard >> > > > >>> > >>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>> 2012/3/4 Gerhard Petracek < >> > [email protected] >> > > > >> > > > >>> > >>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> hi john, >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> the sub-task is perfectly fine. >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> regards, >> > > > >>> > >>>>>>>>>>>>> gerhard >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> 2012/3/4 John D. Ament <[email protected]> >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> Hi All >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>>> I wanted to bring up the subject of >> > ServiceHandler. >> > > I >> > > > >>> > >>>>>>>> added 113 as a >> > > > >>> > >>>>>>>>>>>>>> child >> > > > >>> > >>>>>>>>>>>>>> of DELTASPIKE-2, looked appropriate but not 100% >> > > sure >> > > > >>> > >>>>>>>> (so please let >> > > > >>> > >>>>>>>>> me >> > > > >>> > >>>>>>>>>>>>>> know if you think it's not appropriate as a >> > > > >>> > >>>>>>>> child). ServiceHandler >> > > > >>> > >>>>>>>>> is >> > > > >>> > >>>>>>>>>>> a >> > > > >>> > >>>>>>>>>>>>>> feature in Solder that allows you to define an >> > > > >>> > >>>>>>>> interceptor that >> > > > >>> > >>>>>>>>> manages >> > > > >>> > >>>>>>>>>>>>>> generic calls against an injected interface. >> The >> > > API >> > > > >>> > >>>>>>>> is as follows: >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>>> - @ServiceHandlerType(Class<?> clazz) - placed >> > > > >>> > >>>>>>>> on an annotation that >> > > > >>> > >>>>>>>>>>> would >> > > > >>> > >>>>>>>>>>>>>> be placed on the interface. Indicates what >> > > > >>> > >>>>>>>> interceptor would be >> > > > >>> > >>>>>>>>>>> invoked >> > > > >>> > >>>>>>>>>>>>>> for calls against this interface. >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>>> It's then up to the application >> > > > >>> > >>>>>>>> developer/framework author to define >> > > > >>> > >>>>>>>>>>>>>> annotations that go on methods, as well as the >> > > > >>> > >>>>>>>> interceptor itself >> > > > >>> > >>>>>>>>> that >> > > > >>> > >>>>>>>>>>>>>> will >> > > > >>> > >>>>>>>>>>>>>> be invoked. The feature for ServiceHandler >> would >> > be >> > > > >>> > >>>>>>>> to provide the >> > > > >>> > >>>>>>>>>>> API of >> > > > >>> > >>>>>>>>>>>>>> the type and then the infrastructure required to >> > > make >> > > > >>> > >>>>>>>> the interceptor >> > > > >>> > >>>>>>>>>>> be >> > > > >>> > >>>>>>>>>>>>>> called. Existing documentation of the feature: >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>> >> > > > >>> > >>>>>>>>> >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>> >> > > > >>> > >>>>> >> > > > >>> > >> >> > > > >>> > >> > > > >>> >> > > > >> > > >> > >> http://docs.jboss.org/seam/3/3.1.0.Final/reference/en-US/html/solder-servicehandler.html >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>>> Regards, >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>>> john >> > > > >>> > >>>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>>>> >> > > > >>> > >>>>>>>>>>> >> > > > >>> > >>>>>>>>>>> >> > > > >>> > >>>>>>>>> >> > > > >>> > >>>>>>>>> >> > > > >>> > >>>>>>>> >> > > > >>> > >>>>>>> >> > > > >>> > >>>>> >> > > > >>> > >> >> > > > >>> > >> >> > > > >>> > >> > > > >>> > >> > > > >>> >> > > > >> >> > > > >> >> > > > > >> > > > >> > > >> > >> > > > > -- > Jason Porter > http://lightguard-jp.blogspot.com > http://twitter.com/lightguardjp > > Software Engineer > Open Source Advocate > > PGP key id: 926CCFF5 > PGP key available at: keyserver.net, pgp.mit.edu
