1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.cdi.view;
20
21 import javax.enterprise.event.Observes;
22 import javax.enterprise.inject.spi.AfterBeanDiscovery;
23 import javax.enterprise.inject.spi.AnnotatedType;
24 import javax.enterprise.inject.spi.BeanManager;
25 import javax.enterprise.inject.spi.BeforeBeanDiscovery;
26 import javax.enterprise.inject.spi.Extension;
27 import javax.faces.view.ViewScoped;
28
29
30
31
32
33
34 public class ViewScopeContextExtension implements Extension
35 {
36 private ViewScopeContextImpl viewScopeContext;
37
38 void beforeBeanDiscovery(
39 @Observes final BeforeBeanDiscovery event, BeanManager beanManager)
40 {
41 event.addScope(ViewScoped.class, true, true);
42
43
44 AnnotatedType bean = beanManager.createAnnotatedType(ViewScopeBeanHolder.class);
45 event.addAnnotatedType(bean, bean.getJavaClass().getName());
46 }
47
48 void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager)
49 {
50 viewScopeContext = new ViewScopeContextImpl(beanManager);
51 afterBeanDiscovery.addContext(viewScopeContext);
52 }
53 }