You have mentioned some standard usage for stereotype annotations but Tapestry isn't obligated to use any of that. I even believe that the Java documentation mentioned these usages just as examples, not an obligation for what you use stereotype annotations.
What I understand out of this is that it's just a Java EE standard, that an annotation may imply other annotations. Personally I like the idea. I know Spring supports it<http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-stereotype-annotations>, and I don't like to see Tapestry fall back in front of any IoC during a comparison. I've looked into the AnnotationProvider, thanks for the hint :) *---------------------* *Muhammad Gelbana* http://www.linkedin.com/in/mgelbana On Mon, Nov 4, 2013 at 3:39 AM, Thiago H de Paula Figueiredo < thiag...@gmail.com> wrote: > On Sat, 02 Nov 2013 20:31:10 -0200, Muhammad Gelbana <m.gelb...@gmail.com> > wrote: > > I may be wrong but I strongly don't think it's possible to use stereotype >> annotations in Tapestry. >> >> Stereotype annotations are annotations implying other annotations: >> http://docs.oracle.com/javaee/7/tutorial/doc/cdi-adv008.htm#GKHQC >> >> It's definitely a good improvement if it's supported by Tapestry IoC, >> don't you think ? >> > > It would be an improvement, but I'm not sure it would be one large enough > to be worth the time to implement it and the added complexity. > > From the link above: "Stereotypes can be particularly useful in large > applications where you have a number of beans that perform similar > functions. A stereotype is a kind of annotation that specifies the > following:" > > * "A default scope" > > In Tapestry-IoC, there are two scopes (singleton and perthread) that cover > almost all situations. And I just didn't say 100% because you can add your > own, even if, in my 6 years using Tapestry and subscribing to its users > mailing lists, I can recall someone needing another scope. > > * "Zero or more interceptor bindings" > > In Tapestry-IoC, interceptors are implemented through advice or > decoration, which are defined in module classes, so there's no such thing > as interceptor bindings. > > * "Optionally, a @Named annotation, guaranteeing default EL naming" > > Tapestry-IoC nor Tapestry use EL. Every Tapestry-IoC has an unique > bean/service id, even if you don't provide them explicitly, and a way to > inject through them: @InjectService. > > * Optionally, an @Alternative annotation, specifying that all beans with > this stereotype are alternatives > > Tapestry-IoC has marker annotations for what CDI calls alternatives. > > In the end, with Tapestry-IoC, it's very rare to end up with a class, > method or field containing more than one or two annotations (except for > cases lie @Inject @Symbol(...) @Property private Something something), so > the use of stereotype annotations would be very rare if implemented. In > addition, I think it's confusing to have one annotation to actually mean > other annotations. > > By the way, have you ever seen the Tapestry-IoC's AnnotationProvider > interface? It's used to provide access to annotations, for example, in > MethodAdvice. > > -- > Thiago H. de Paula Figueiredo > Tapestry, Java and Hibernate consultant and developer > http://machina.com.br > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >