I haven't actually tried this, but it seems that it should be possible to use POJOs as seam components without annotating them with @Name and @Scope.
Just a simple:
@In (value = "contextName")
SomeClass context Name;
Also, it would be nice to have the field's name used as the default for the context name, like so:
@In
SomeClass contextName ;
Doing so would obviously eliminate the need for the @Name annotation. It would also be nice to eliminate the need for the @Scope annotation--@In could take an optional "scope" parameter. By default, it will search for all scopes.
I think this will also eliminate the need for the @Role/@Roles annotations.