On 21 Dec 2012, at 02:21, John D. Ament wrote: > Hi all, > > So just to summarize the current proposal: > > - Create a new annotation @ServiceHandlerBinding (in core/api) which will > be placed on on the interface that defines points of the > - Create a new annotation @ServiceHandler (in core/api) (I think based on > below this isn't needed since we have the interface now). > - Create an extension that can generate object proxies that link calls to > methods on the - org.apache.deltaspike.core.api.... > > Define the binding type annotation: > > @ServiceHandlerBinding > @Qualifier > public @interface QueryHandler { > }
I don't think we want @Qualifier here. > > which will define the relationship between the interface/abstract class > that will use the service handler and the class that will serve as the > invocation handler. > > For example, we can use @QueryHandler on an interface: > > @QueryHandler > public interface PersonDAO { > //... > } > > When the container finds this interface it will identify the appropriate > InvocationHandler, based on the following matches: > > - Implements InvocationHandler Yes. > - Is annotated @QueryHandler Ish, this should follow standard CDI resolution rules, you can copy the way interceptor bindings work here. > - Is annotated @ServiceHandler Yes > > DeltaSpike will provide a proxied object where all abstract method calls > are delegated to the InvocationHandler. The InvocationHandler will need to > have logic to handle all methods as defined within the class, as long as > that method is invoked through the InvocationHandler. > > @QueryHandler @ServiceHandler > public QueryHandlerInvoker implements InvocationHandler { > > public Object invoke(Object proxy, Method method, Object[] args) { > if(method.getName().startsWith("find..."){ > //... > } > return null; > > } > } > > In addition, the ServiceHandlerBinding can be placed on an abstract class. > In this case, only abstract methods will be passed to the > InvocationHandler. > > @QueryHandler > public abstract interface PersonDAO { > public String doSomethingConcrete() { > return "concrete"; > } > > public abstract Person find(int id); > } > > Only the find method will be wrapped, the method doSomethingConcrete will > be invoked directly. When interacting with an abstract class, the > InvocationHandler can call methods on the proxied object. > > Finally, the app developer will be able to simply inject their > interface/abstract class in to their beans to perform work: > > @Inject @QueryHandler PersonDAO dao; > > Questions: > > Should we provide a store (simple key/value map) to keep a history of found > object types and how they map? You mean like BeanManager.resolveInterceptors() ? I guess this is useful. > Should we depend on certain libraries for proxying (e.g. javassist, I think > both Weld & OWB use this still?) If you want to just cover interfaces, it's easy, you can use proxying from the JDK. Otherwise yes you need to pick a lib. Weld doesn't use javassist for proxying, but does for other stuff. > Since we now use the interface InvocationHandler should we rename the > binding to be InvocationHandlerBinding? Yes, this makes sense > I also think it's not necessary to > have @ServiceHandler since the marker interface now exists. +1 > > Comments welcome.. > > John > > > > > On Thu, Dec 20, 2012 at 12:33 PM, Jason Porter <lightguard...@gmail.com>wrote: > >> +1 for @ServiceHandler >> >> >> On Thu, Dec 20, 2012 at 9:39 AM, John D. Ament <john.d.am...@gmail.com >>> 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 >>> <rmannibu...@gmail.com>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 <pm...@redhat.com>: >>>>> :-) 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 <pm...@redhat.com> >> 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 >>>>>>>> <rmannibu...@gmail.com>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 <arne.limb...@openknowledge.de>: >>>>>>>>>> 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 >>>>>>>>>> <rmannibu...@gmail.com>: >>>>>>>>>> >>>>>>>>>>> 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 <strub...@yahoo.de>: >>>>>>>>>>>> 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 <arne.limb...@openknowledge.de> >>>>>>>>>>>>> To: "deltaspike-dev@incubator.apache.org" >>>>>>>>>>>>> <deltaspike-dev@incubator.apache.org> >>>>>>>>>>>>> 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 >>>>>>>>>>>>> <rmannibu...@gmail.com>: >>>>>>>>>>>>> >>>>>>>>>>>>>> +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 <lightguard...@gmail.com>: >>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>>> <john.d.am...@gmail.com>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 < >>>>>>>>>>>>>>>> gerhard.petra...@gmail.com >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> hi john, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> as mentioned before we need the answers to the existing >>>>>>>>>>>>> questions. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> regards, >>>>>>>>>>>>>>>>> gerhard >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 2012/4/4 John D. Ament <john.d.am...@gmail.com> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 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 < >>>>>>>>>>>>>>>>>> gerhard.petra...@gmail.com> 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 >>>>>>>>>>>>> <gegasta...@gmail.com> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>> <gerhard.petra...@gmail.com> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>> <gegasta...@gmail.com> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>> <pm...@redhat.com> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>> <pm...@redhat.com> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> 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" < >>>>>>>>>>>>>>>>>>> john.d.am...@gmail.com> >>>>>>>>>>>>>>>>>>>>>>>>> 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 < >>>>>>>>>>>>>>>>>>>>>> lightguard...@gmail.com >>>>>>>>>>>>>>>>>>>>>>>>>> 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" < >>>>>>>>>>>>>>>>>>>>>> john.d.am...@gmail.com> >>>>>>>>>>>>>>>>>>>>>>>>> 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 < >>>>>>>>>>>>>>>>>>>>>> strub...@yahoo.de> >>>>>>>>>>>>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>>>> <gerhard.petra...@gmail.com> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>> To: deltaspike-dev@incubator.apache.org >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>> 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 <pm...@redhat.com> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>> <pm...@redhat.com> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> 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 < >>>>>>>>>>>>>>>>> gerhard.petra...@gmail.com >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> hi john, >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> the sub-task is perfectly >>>>>>>>>>>>> fine. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> regards, >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> gerhard >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> 2012/3/4 John D. Ament >>>>>>>>>>>>>>>> <john.d.am...@gmail.com> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> 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 >>