[ 
https://issues.apache.org/jira/browse/DELTASPIKE-599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gerhard Petracek resolved DELTASPIKE-599.
-----------------------------------------

    Resolution: Fixed

> CDI 1.1 friendly ViewConfig discovery
> -------------------------------------
>
>                 Key: DELTASPIKE-599
>                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-599
>             Project: DeltaSpike
>          Issue Type: Improvement
>          Components: JSF-Module
>    Affects Versions: 0.7
>            Reporter: Richard DiCroce
>            Assignee: Gerhard Petracek
>            Priority: Minor
>             Fix For: 1.0.1
>
>         Attachments: DELTASPIKE-599.patch
>
>
> CDI 1.1 introduced the "annotated" bean discovery mode. In this mode, 
> ProcessAnnotatedType observers in CDI extensions are only called for classes 
> that have CDI scope annotations. This is inconvenient for ViewConfigs, as it 
> requires that every class (page) must be annotated with @Dependent:
> {code}
> public interface Pages extends ViewConfig {
>       @Dependent
>       class Index implements Pages {}
>       
>       @Secured({AuthenticatedDecisionVoter.class, 
> PermissionDecisionVoter.class})
>       interface SecuredByRoleAttribute extends Pages {
>               @Dependent
>               class TestPage implements SecuredByRoleAttribute {}
>       }
>       
>       @Secured(AuthenticatedDecisionVoter.class)
>       interface NoAuthorization extends Pages {
>               @Dependent
>               class TestPage implements NoAuthorization {}
>       }
>       
> }
> {code}
> Another workaround would be to make a base class that is marked @Dependent 
> and have all of the pages extend that class, but that's not really any better 
> in terms of the amount of boilerplate.
> It would be nice if there were another way to discover ViewConfig classes. 
> One idea: the application provides a producer method/field with some 
> qualifier that provides the outer-most ViewConfig interface (Pages.class in 
> the above example). Then DS injects Instance<Class<? extends ViewConfig>> and 
> uses Class.getDeclaredClasses() to walk the tree.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to