51
51
public class OpenWebBeansListener implements ServletContextListener , ServletRequestListener ,
52
52
HttpSessionListener {
53
53
54
-
55
54
private static Logger log = LoggerFactory .getLogger (OpenWebBeansListener .class );
56
55
57
56
private static final String CDI_CONTAINER = "org.ops4j.pax.cdi.container" ;
58
57
59
58
private ContainerLifecycle lifecycle ;
60
59
61
60
@ Override
62
- public void contextInitialized (ServletContextEvent event )
63
- {
61
+ public void contextInitialized (ServletContextEvent event ) {
64
62
ServletContext context = event .getServletContext ();
65
63
CdiContainer cdiContainer = (CdiContainer ) context .getAttribute (CDI_CONTAINER );
66
64
try {
@@ -84,50 +82,44 @@ public void contextInitialized(ServletContextEvent event)
84
82
attributes .put ("org.ops4j.pax.cdi.ClassIntrospecter" , builder );
85
83
log .info ("registered CdiInstanceFactoryBuilder for Undertow" );
86
84
}
87
- context .setAttribute ("org.ops4j.pax.cdi.BeanManager" , cdiContainer .getBeanManager ());
88
-
85
+ context .setAttribute ("org.ops4j.pax.cdi.BeanManager" , manager );
89
86
context .setAttribute (BeanManager .class .getName (), manager );
90
87
}
91
88
92
-
93
89
@ Override
94
- public void requestInitialized (ServletRequestEvent event )
95
- {
96
- try
97
- {
98
- log .debug ("Starting a new request : [{}]" , event == null ? "null" : event .getServletRequest ().getRemoteAddr ());
90
+ public void requestInitialized (ServletRequestEvent event ) {
91
+ try {
92
+ log .debug ("Starting a new request : [{}]" , event == null ? "null" : event
93
+ .getServletRequest ().getRemoteAddr ());
99
94
100
95
this .lifecycle .getContextService ().startContext (RequestScoped .class , event );
101
96
102
97
// we don't initialise the Session here but do it lazily if it gets requested
103
98
// the first time. See OWB-457
104
99
}
105
- catch (Exception e )
106
- {
107
- log .error (
108
- WebBeansLoggerFacade .constructMessage (OWBLogConst .ERROR_0019 , event == null ? "null" : event .getServletRequest ()));
100
+ catch (Exception e ) {
101
+ log .error (WebBeansLoggerFacade .constructMessage (OWBLogConst .ERROR_0019 ,
102
+ event == null ? "null" : event .getServletRequest ()));
109
103
WebBeansUtil .throwRuntimeExceptions (e );
110
104
}
111
105
}
112
106
113
107
@ Override
114
- public void sessionCreated (HttpSessionEvent event )
115
- {
116
- try
117
- {
108
+ public void sessionCreated (HttpSessionEvent event ) {
109
+ try {
118
110
log .debug ("Starting a session with session id : [{}]" , event .getSession ().getId ());
119
- this .lifecycle .getContextService ().startContext (SessionScoped .class , event .getSession ());
111
+ this .lifecycle .getContextService ()
112
+ .startContext (SessionScoped .class , event .getSession ());
120
113
}
121
- catch (Exception e )
122
- {
123
- log . error ( WebBeansLoggerFacade . constructMessage ( OWBLogConst . ERROR_0020 , event .getSession ()));
114
+ catch (Exception e ) {
115
+ log . error ( WebBeansLoggerFacade . constructMessage ( OWBLogConst . ERROR_0020 ,
116
+ event .getSession ()));
124
117
WebBeansUtil .throwRuntimeExceptions (e );
125
118
}
126
119
}
127
120
128
121
@ Override
129
- public void contextDestroyed (ServletContextEvent event )
130
- {
122
+ public void contextDestroyed (ServletContextEvent event ) {
131
123
ServletContext context = event .getServletContext ();
132
124
context .removeAttribute (CDI_CONTAINER );
133
125
@@ -136,14 +128,13 @@ public void contextDestroyed(ServletContextEvent event)
136
128
}
137
129
138
130
@ Override
139
- public void requestDestroyed (ServletRequestEvent event )
140
- {
141
- log . debug ( "Destroying a request : [{}]" , event == null ? "null" : event . getServletRequest () .getRemoteAddr ());
131
+ public void requestDestroyed (ServletRequestEvent event ) {
132
+ log . debug ( "Destroying a request : [{}]" , event == null ? "null" : event . getServletRequest ()
133
+ .getRemoteAddr ());
142
134
143
135
// clean up the EL caches after each request
144
136
ELContextStore elStore = ELContextStore .getInstance (false );
145
- if (elStore != null )
146
- {
137
+ if (elStore != null ) {
147
138
elStore .destroyELContextStore ();
148
139
}
149
140
@@ -152,42 +143,35 @@ public void requestDestroyed(ServletRequestEvent event)
152
143
this .cleanupRequestThreadLocals ();
153
144
}
154
145
155
-
156
146
@ Override
157
- public void sessionDestroyed (HttpSessionEvent event )
158
- {
147
+ public void sessionDestroyed (HttpSessionEvent event ) {
159
148
log .debug ("Destroying a session with session id : [{}]" , event .getSession ().getId ());
160
149
boolean mustDestroy = ensureRequestScope ();
161
150
162
151
this .lifecycle .getContextService ().endContext (SessionScoped .class , event .getSession ());
163
152
164
- if (mustDestroy )
165
- {
153
+ if (mustDestroy ) {
166
154
requestDestroyed (null );
167
155
}
168
156
}
169
157
170
- private boolean ensureRequestScope ()
171
- {
158
+ private boolean ensureRequestScope () {
172
159
Context context = this .lifecycle .getContextService ().getCurrentContext (RequestScoped .class );
173
160
174
- if (context == null || !context .isActive ())
175
- {
161
+ if (context == null || !context .isActive ()) {
176
162
requestInitialized (null );
177
163
return true ;
178
164
}
179
165
return false ;
180
166
}
181
167
182
168
/**
183
- * Ensures that all ThreadLocals, which could have been set in this
184
- * requests Thread, are removed in order to prevent memory leaks.
169
+ * Ensures that all ThreadLocals, which could have been set in this requests Thread, are removed
170
+ * in order to prevent memory leaks.
185
171
*/
186
- private void cleanupRequestThreadLocals ()
187
- {
172
+ private void cleanupRequestThreadLocals () {
188
173
ContextsService contextsService = this .lifecycle .getContextService ();
189
- if (contextsService != null )
190
- {
174
+ if (contextsService != null ) {
191
175
contextsService .removeThreadLocals ();
192
176
}
193
177
}
0 commit comments