1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.acme.test;
20 import java.util.EventListener;
21
22 import javax.annotation.Resource;
23 import javax.servlet.ServletContextAttributeEvent;
24 import javax.servlet.ServletContextAttributeListener;
25 import javax.servlet.ServletContextEvent;
26 import javax.servlet.ServletContextListener;
27 import javax.servlet.ServletRequestAttributeEvent;
28 import javax.servlet.ServletRequestAttributeListener;
29 import javax.servlet.ServletRequestEvent;
30 import javax.servlet.ServletRequestListener;
31 import javax.servlet.annotation.WebListener;
32 import javax.servlet.http.HttpSessionActivationListener;
33 import javax.servlet.http.HttpSessionAttributeListener;
34 import javax.servlet.http.HttpSessionBindingEvent;
35 import javax.servlet.http.HttpSessionEvent;
36 import javax.servlet.http.HttpSessionIdListener;
37 import javax.servlet.http.HttpSessionListener;
38
39
40 @com.acme.initializer.Foo(1)
41 @WebListener
42 public class TestListener implements HttpSessionListener, HttpSessionAttributeListener, HttpSessionActivationListener, ServletContextListener, ServletContextAttributeListener, ServletRequestListener, ServletRequestAttributeListener
43 {
44 public static class NaughtyServletContextListener implements ServletContextListener
45 {
46
47 @Override
48 public void contextInitialized(ServletContextEvent sce)
49 {
50 throw new IllegalStateException("Should not call NaughtServletContextListener.contextInitialized");
51 }
52
53 @Override
54 public void contextDestroyed(ServletContextEvent sce)
55 {
56 throw new IllegalStateException("Should not call NaughtServletContextListener.contextDestroyed");
57 }
58 }
59
60 public static class InvalidListener implements EventListener
61 {
62 public InvalidListener()
63 {}
64 }
65
66 public static class ValidListener implements HttpSessionIdListener
67 {
68 @Resource(mappedName="maxAmount")
69 private Double maxAmount;
70
71 public ValidListener()
72 {}
73
74 @Override
75 public void sessionIdChanged(HttpSessionEvent event, String oldSessionId)
76 {
77
78 }
79
80 }
81
82 @Resource(mappedName="maxAmount")
83 private Double maxAmount;
84
85
86
87 public void attributeAdded(HttpSessionBindingEvent se)
88 {
89
90 }
91
92 public void attributeRemoved(HttpSessionBindingEvent se)
93 {
94
95 }
96
97 public void attributeReplaced(HttpSessionBindingEvent se)
98 {
99
100 }
101
102 public void sessionWillPassivate(HttpSessionEvent se)
103 {
104
105 }
106
107 public void sessionDidActivate(HttpSessionEvent se)
108 {
109
110 }
111
112 public void contextInitialized(ServletContextEvent sce)
113 {
114 sce.getServletContext().setAttribute("com.acme.AnnotationTest.sclInjectTest", Boolean.valueOf(maxAmount != null));
115
116
117 try
118 {
119 sce.getServletContext().addListener(new NaughtyServletContextListener());
120 sce.getServletContext().setAttribute("com.acme.AnnotationTest.sclFromSclRegoTest", Boolean.FALSE);
121 }
122 catch (IllegalArgumentException e)
123 {
124 sce.getServletContext().setAttribute("com.acme.AnnotationTest.sclFromSclRegoTest", Boolean.TRUE);
125 }
126 catch (Exception e)
127 {
128 sce.getServletContext().setAttribute("com.acme.AnnotationTest.sclFromSclRegoTest", Boolean.FALSE);
129 }
130
131
132
133 try
134 {
135 sce.getServletContext().addListener(new InvalidListener());
136 sce.getServletContext().setAttribute("com.acme.AnnotationTest.invalidListenerRegoTest", Boolean.FALSE);
137 }
138 catch (IllegalArgumentException e)
139 {
140 sce.getServletContext().setAttribute("com.acme.AnnotationTest.invalidListenerRegoTest", Boolean.TRUE);
141 }
142 catch (Exception e)
143 {
144 sce.getServletContext().setAttribute("com.acme.AnnotationTest.invalidListenerRegoTest", Boolean.FALSE);
145 }
146
147
148 try
149 {
150 ValidListener l = sce.getServletContext().createListener(ValidListener.class);
151 sce.getServletContext().setAttribute("com.acme.AnnotationTest.programListenerInjectTest", Boolean.valueOf(l != null && l.maxAmount != null));
152 }
153 catch (Exception e)
154 {
155 sce.getServletContext().setAttribute("com.acme.AnnotationTest.programListenerInjectTest", Boolean.FALSE);
156 }
157 }
158
159 public void contextDestroyed(ServletContextEvent sce)
160 {
161
162 }
163
164 public void attributeAdded(ServletContextAttributeEvent scab)
165 {
166
167 }
168
169 public void attributeRemoved(ServletContextAttributeEvent scab)
170 {
171
172 }
173
174 public void attributeReplaced(ServletContextAttributeEvent scab)
175 {
176
177 }
178
179 public void requestDestroyed(ServletRequestEvent sre)
180 {
181
182 }
183
184 public void requestInitialized(ServletRequestEvent sre)
185 {
186
187 }
188
189 public void attributeAdded(ServletRequestAttributeEvent srae)
190 {
191
192 }
193
194 public void attributeRemoved(ServletRequestAttributeEvent srae)
195 {
196
197 }
198
199 public void attributeReplaced(ServletRequestAttributeEvent srae)
200 {
201
202 }
203
204 public void sessionCreated(HttpSessionEvent se)
205 {
206
207 }
208
209 public void sessionDestroyed(HttpSessionEvent se)
210 {
211
212 }
213
214 public void requestCompleted(ServletRequestEvent rre)
215 {
216
217
218 }
219
220 public void requestResumed(ServletRequestEvent rre)
221 {
222
223
224 }
225
226 public void requestSuspended(ServletRequestEvent rre)
227 {
228
229
230 }
231
232 }