1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.config.annotation;
20
21 import javax.naming.NamingException;
22 import javax.naming.Context;
23 import javax.annotation.Resource;
24 import javax.ejb.EJB;
25 import javax.persistence.PersistenceContext;
26 import javax.persistence.PersistenceUnit;
27
28
29 import java.lang.reflect.Method;
30 import java.lang.reflect.InvocationTargetException;
31 import java.lang.reflect.Field;
32
33
34 public class AllAnnotationLifecycleProvider extends ResourceAnnotationLifecycleProvider
35 {
36
37 public AllAnnotationLifecycleProvider(Context context)
38 {
39 super(context);
40 }
41
42 @Override
43 protected void checkMethodAnnotation(Method method, Object instance)
44 throws NamingException, IllegalAccessException, InvocationTargetException
45 {
46 super.checkMethodAnnotation(method, instance);
47 if (method.isAnnotationPresent(Resource.class))
48 {
49 Resource annotation = method.getAnnotation(Resource.class);
50 lookupMethodResource(context, instance, method, annotation.name());
51 }
52 if (method.isAnnotationPresent(EJB.class))
53 {
54 EJB annotation = method.getAnnotation(EJB.class);
55 lookupMethodResource(context, instance, method, annotation.name());
56 }
57
58
59
60
61
62
63 if (method.isAnnotationPresent(PersistenceContext.class))
64 {
65 PersistenceContext annotation = method.getAnnotation(PersistenceContext.class);
66 lookupMethodResource(context, instance, method, annotation.name());
67 }
68 if (method.isAnnotationPresent(PersistenceUnit.class))
69 {
70 PersistenceUnit annotation = method.getAnnotation(PersistenceUnit.class);
71 lookupMethodResource(context, instance, method, annotation.name());
72 }
73 }
74
75 @Override
76 protected void checkFieldAnnotation(Field field, Object instance)
77 throws NamingException, IllegalAccessException
78 {
79 super.checkFieldAnnotation(field, instance);
80 if (field.isAnnotationPresent(EJB.class))
81 {
82 EJB annotation = field.getAnnotation(EJB.class);
83 lookupFieldResource(context, instance, field, annotation.name());
84 }
85
86
87
88
89
90 if (field.isAnnotationPresent(PersistenceContext.class))
91 {
92 PersistenceContext annotation = field.getAnnotation(PersistenceContext.class);
93 lookupFieldResource(context, instance, field, annotation.name());
94 }
95 if (field.isAnnotationPresent(PersistenceUnit.class))
96 {
97 PersistenceUnit annotation = field.getAnnotation(PersistenceUnit.class);
98 lookupFieldResource(context, instance, field, annotation.name());
99 }
100 }
101 }