1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstarts.mbeanhelloworld.util;
18
19 import javax.enterprise.context.spi.CreationalContext;
20 import javax.enterprise.event.Observes;
21 import javax.enterprise.inject.spi.Bean;
22 import javax.enterprise.inject.spi.BeanManager;
23 import javax.enterprise.inject.spi.BeforeBeanDiscovery;
24 import javax.enterprise.inject.spi.Extension;
25
26
27
28
29
30
31
32 public class CDIExtension implements Extension {
33
34 private static BeanManager beanManager;
35
36 void beforeBeanDiscovery(@Observes BeforeBeanDiscovery beforeBeanDiscovery, BeanManager beanManager) {
37 setBeanManager(beanManager);
38 }
39
40 @SuppressWarnings("unchecked")
41 public static <T> T getBean(Class<T> beanType) {
42 final Bean<T> bean = (Bean<T>) beanManager.getBeans(beanType).iterator().next();
43 final CreationalContext<T> ctx = beanManager.createCreationalContext(bean);
44 return (T) beanManager.getReference(bean, beanType, ctx);
45 }
46
47 private static void setBeanManager(BeanManager beanManager) {
48 CDIExtension.beanManager = beanManager;
49 }
50 }