[webbeans-dev] Re: Stereotype inheritance proposal

Gavin King gavin at hibernate.org
Fri Nov 21 13:07:38 EST 2008


oops forgot to attach the spec

On Fri, Nov 21, 2008 at 1:05 PM, Gavin King <gavin at hibernate.org> wrote:
> I've got feedback from a number of people that stereotype inheritance
> should be supported, and I agree with this feedback.
>
> I think we should just do it in the simplest possible way and say
> simply that stereotype declarations are transitive, and
> meta-stereotypes are inherited by the web bean.
>
> Therefore:
>
> 1. the sets of interceptor binding types are unioned
> 2. any conflicts between default scope/deployment type defined by a
> stereotype and its meta-stereotypes must be resolved by explicit
> declaration on the web bean
> 3. all restrictions apply cumulatively
>
> And I've written this into section 2.7.1.5 of the attached spec draft.
>
> Questions:
> ========
>
> Does anybody think that the default scope/deployment type declared
> directly by a stereotype should *override* the default
> scopes/deployment types declared by its meta-stereotypes? This rule
> makes a lot of sense, but it kinda makes things a little more complex.
>
> For example:
>
> @RequestScoped
> @Stereotype
> public @interface Foo {}
>
> @SessionScoped
> @Foo
> @Stereotype
> public @interface Bar {}
>
> Should we force a web bean that declares @Bar to explicitly specify a
> scope, or is it better to let @SessionScoped on Bar override
> @RequestScoped on Foo.
>
>
> Another thing I've just noticed, that applies to interceptor bindings
> inherited by both stereotypes and other interceptor binding types, is
> that you could potentially have a web bean with multiple "instances"
> of the same interceptor binding type - the same type, but different
> member values. I think we should say that this is a
> DefinitionException.
>
> For example:
>
> @Transactional(requiresNew=false)
> @Stereotype
> public @interface Foo {}
>
> @Transactional(requiresNew=true)
> @Stereotype
> public @interface Foo {}
>
> @Foo @Bar
> public class X {}
>
> Then X has both @Transactional(requiresNew=false) and
> @Transactional(requiresNew=true).
>
>
> --
> Gavin King
> gavin.king at gmail.com
> http://in.relation.to/Bloggers/Gavin
> http://hibernate.org
> http://seamframework.org
>



-- 
Gavin King
gavin.king at gmail.com
http://in.relation.to/Bloggers/Gavin
http://hibernate.org
http://seamframework.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Web Beans 20081121.pdf
Type: application/pdf
Size: 518356 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/weld-dev/attachments/20081121/299dbd3e/attachment.pdf 


More information about the weld-dev mailing list