> Could you please file a JIRA? Here we go: TAP5-2195
On Oct 2, 2013, at 8:37 PM, Thiago H de Paula Figueiredo wrote: > On Wed, 02 Oct 2013 11:49:54 -0300, Alessio Gambi <alessioga...@gmail.com> > wrote: > >> From the documentation (see >> http://tapestry.apache.org/service-advisors.html), it seems to be legal to >> combine the Advice and Match annotations: >> >> @Advise(serviceInterface=MyService.class) >> @Match("*DAO") >> public static void byMatchAnnotation(MethodAdviceReceiver receiver) > > This looks to me like a bad copy and paste from the previous example which > forgot to delete the @Match annotation. > >>> I'd vote for misuse. :P >> Than the documentation should be updated. > > Yep. And the code fixed to either make it work or to throw an exception when > both annotations are used in the same method. > >> public static ServiceUpdater buildOSServiceUpdater >> public static ServiceUpdater buildAmazonServiceUpdater >> public ServiceUpdaterCache buildServiceUpdaterCache >> >> Where the interface ServiceUpdaterCache extends ServiceUpdater. >> >> Therefore I should have 3 different services whose service-ids are: >> >> OSServiceUpdater >> AmazonServiceUpdater >> ServiceUpdaterCache >> >> Thus by declaring the following annotations >> >> 1) @Advise(serviceInterface = ServiceUpdater.class) >> 2) @Advise(id = "ServiceUpdater", serviceInterface = ServiceUpdater.class) >> 3) @Advise(id = "OSServiceUpdater", serviceInterface = ServiceUpdater.class) >> >> I expect the following outcomes: >> >> 1) That all three services (at least the 2 that are actually invoked at >> runtime) get the same advice >> 2) No service get the advice, as no one has matching service id >> 3) Only the OSServiceUpdater gets the advice. >> >> >> But what I actually get is: >> >> 1) Ok: both OSServiceUpdater and ServiceUpdaterCache get the advice >> 2) NOT OK: both OSServiceUpdater and ServiceUpdaterCache get the advice, >> while none should >> 3) NOT OK: both OSServiceUpdater and ServiceUpdaterCache get the advice, >> while only OSServiceUpdater should > > It seems that the code handling @Advise is ignoring id when serviceInterface > is set. I think Tapestry-IoC shouldn't let both attributes (id and > serviceInterface) to be used at the same time. It doesn't make sense. > > Could you please file a JIRA? And thank you very much for reporting and > investigating this issue. ;) That's a very good way of contributing to the > project. :) > > -- > Thiago H. de Paula Figueiredo > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org