+1 for @ServiceHandler
On Thu, Dec 20, 2012 at 9:39 AM, John D. Ament <[email protected]>wrote: > If we're still calling the feature "ServiceHandler" then why not > @ServiceHandler? > > > On Thu, Dec 20, 2012 at 11:33 AM, Romain Manni-Bucau > <[email protected]>wrote: > > > if we don't need it perfect, if we need it we'll just use another name > > @DSHandler, @Handler...whatever it is ;) > > > > 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 Pete Muir <[email protected]>: > > > :-) Yes for sure. I suspect we dont' need @InvocationHandler at all. > > > > > > On 20 Dec 2012, at 16:30, John D. Ament wrote: > > > > > >> The problem I have is that now InvocationHandler is both an interface > > and > > >> an @interface which will make it impossible for imports. I don't > think > > >> they should have the same name. > > >> > > >> > > >> On Thu, Dec 20, 2012 at 9:57 AM, Pete Muir <[email protected]> wrote: > > >> > > >>> > > >>> On 20 Dec 2012, at 12:32, John D. Ament wrote: > > >>> > > >>>> All, > > >>>> > > >>>> So mostly ok from my perspective. One thing to note: > > >>>> > > >>>> @InvocationHandlerBinding > > >>>> public @interface Repository {} > > >>>> > > >>>> @Repository > > >>>> public interface MyRepository { > > >>>> ... > > >>>> } > > >>>> > > >>>> @Repository @InvocationHandler > > >>>> public class MyInvocationHandler implements InvocationHandler { > > >>>> ... > > >>>> } > > >>>> > > >>>> Why do we have a @InvocationHandler here? Is it supposed to be > > >>>> @InvocationHandlerBinding instead? If so, is it really needed here? > > >>> > > >>> No, it should be @InvocationHandler, it's analagous to @Interceptor. > > It's > > >>> not 100% necessary as we already implement the interface, which is > > enough > > >>> of the marker. > > >>> > > >>>> > > >>>> Thinking about the implementation for this, I think this actually > > becomes > > >>>> easier to use and easier to understand over the Solder solution. > The > > >>>> implementation of the InvocationHandler becomes a true CDI bean. > > >>>> > > >>>> Should DS support Interceptors and Decorators on > > >>>> InvocationHandler beans? > > >>>> > > >>>> Do you mean the implementation class or the interface? > > >>>> > > >>>> John > > >>>> > > >>>> > > >>>> On Thu, Dec 20, 2012 at 7:06 AM, Romain Manni-Bucau > > >>>> <[email protected]>wrote: > > >>>> > > >>>>> i'd rather say no because the idea is to ease "util" extension > > >>>>> writing. that's clearly not intended to be full business beans IMO > > (at > > >>>>> least for a first step) > > >>>>> > > >>>>> That's why i'd leave it as this for now > > >>>>> > > >>>>> wdyt? > > >>>>> > > >>>>> 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 Arne Limburg <[email protected]>: > > >>>>>> Mark refers to my call stack. > > >>>>>> > > >>>>>> Out of the box this call stack would exist just in OWB, because > Weld > > >>>>> would > > >>>>>> not apply any Interceptors or Decorators... > > >>>>>> > > >>>>>> The question is: Should DS support Interceptors and Decorators on > > >>>>>> InvocationHandler beans? My answer would be: yes, if our > > implementation > > >>>>>> shall be a preview of CDI-110. > > >>>>>> And that would make things complicated in the implementation... > > >>>>>> > > >>>>>> Am 20.12.12 12:11 schrieb "Romain Manni-Bucau" unter > > >>>>>> <[email protected]>: > > >>>>>> > > >>>>>>> is it an issue for servicehandler? i don't think so > > >>>>>>> > > >>>>>>> it is often used to get util classes dynamically created, it is > > rarely > > >>>>>>> (i never saw it) decorated directly > > >>>>>>> > > >>>>>>> > > >>>>>>> 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 Mark Struberg <[email protected]>: > > >>>>>>>> we stumbled about this lately. It seems CDI only forces support > > for > > >>>>>>>> interceptors and decorators for CDI-annotated classes, but not > for > > >>>>>>>> Bean<T> which get added via extensions nor even producer methods > > and > > >>>>>>>> fields :/ > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> Of course OWB does it, but it would be not portable... > > >>>>>>>> > > >>>>>>>> LieGrue, > > >>>>>>>> strub > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> ----- Original Message ----- > > >>>>>>>>> From: Arne Limburg <[email protected]> > > >>>>>>>>> To: "[email protected]" > > >>>>>>>>> <[email protected]> > > >>>>>>>>> Cc: > > >>>>>>>>> Sent: Thursday, December 20, 2012 10:18 AM > > >>>>>>>>> Subject: Re: [DISCUSS] [DELTASPIKE-113] Review and Discuss > > >>>>>>>>> ServiceHandler > > >>>>>>>>> > > >>>>>>>>> T wo things about this: First: I don't like from the solder > > >>> approach, > > >>>>>>>>> because the interface is annotated instead of the > implementation. > > >>>>>>>>> > > >>>>>>>>> Second, if we implement this we should conceptually make clear > > how > > >>> it > > >>>>>>>>> differentiates from Interceptors and Decorators. And > personally I > > >>>>> think > > >>>>>>>>> this would work better with the InvocationHandler approach than > > with > > >>>>> an > > >>>>>>>>> approach that is very similar to interceptors. > > >>>>>>>>> > > >>>>>>>>> So +1 for an approach like this: > > >>>>>>>>> > > >>>>>>>>> @HandlesInvocationsOn(MyInterface.class) > > >>>>>>>>> public class MyInvocationHandler implements InvocationHandler { > > >>>>>>>>> ... > > >>>>>>>>> } > > >>>>>>>>> > > >>>>>>>>> Technically we would register a custom Bean for every found > > >>>>>>>>> InvocationHandler with that annotation and take over the > > >>>>>>>>> interceptor-bindings from the interfaceŠ > > >>>>>>>>> So the invocation stack would be clear, too: > > >>>>>>>>> First Interceptors, > > >>>>>>>>> Second Decorators, > > >>>>>>>>> Third InvocationHandler > > >>>>>>>>> > > >>>>>>>>> Wdyt? > > >>>>>>>>> > > >>>>>>>>> Arne > > >>>>>>>>> > > >>>>>>>>> Am 20.12.12 01:53 schrieb "Romain Manni-Bucau" unter > > >>>>>>>>> <[email protected]>: > > >>>>>>>>> > > >>>>>>>>>> +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- > > >>>>>>>>>>>> ser > > >>>>>>>>>>>> vicehandler.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 > > >>>>>>>>> > > >>>>>> > > >>>>> > > >>> > > >>> > > > > > > -- 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
