You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2015/04/12 11:22:58 UTC
svn commit: r1672995 -
/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
Author: struberg
Date: Sun Apr 12 09:22:57 2015
New Revision: 1672995
URL: http://svn.apache.org/r1672995
Log:
OWB-1025 implement @Initialized and @Destroyed also for WebContextsService
Modified:
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
Modified: openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java?rev=1672995&r1=1672994&r2=1672995&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java (original)
+++ openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java Sun Apr 12 09:22:57 2015
@@ -18,6 +18,8 @@
*/
package org.apache.webbeans.web.context;
+import org.apache.webbeans.annotation.DestroyedLiteral;
+import org.apache.webbeans.annotation.InitializedLiteral;
import org.apache.webbeans.config.OWBLogConst;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.context.AbstractContextsService;
@@ -363,23 +365,26 @@ public class WebContextsService extends
//Init thread local singleton context
initSingletonContext(event.getServletContext());
- }
+
+ webBeansContext.getBeanManagerImpl().fireEvent(request, InitializedLiteral.INSTANCE_REQUEST_SCOPED);
+ }
}
else
{
- //Init thread local application context
- initApplicationContext(null);
+ //Init thread local application context
+ initApplicationContext(null);
- //Init thread local singleton context
- initSingletonContext(null);
+ //Init thread local singleton context
+ initSingletonContext(null);
+ webBeansContext.getBeanManagerImpl().fireEvent(new Object(), InitializedLiteral.INSTANCE_REQUEST_SCOPED);
}
}
/**
* Destroys the request context and all of its components.
- * @param request http servlet request object
+ * @param requestEvent http servlet request object
*/
- private void destroyRequestContext(ServletRequestEvent request)
+ private void destroyRequestContext(ServletRequestEvent requestEvent)
{
// cleanup open conversations first
if (supportsConversation)
@@ -409,6 +414,10 @@ public class WebContextsService extends
requestContexts.remove();
RequestScopedBeanInterceptorHandler.removeThreadLocals();
+
+ Object payload = requestEvent != null && requestEvent.getServletRequest() != null ? requestEvent.getServletRequest() : new Object();
+
+ webBeansContext.getBeanManagerImpl().fireEvent(payload, DestroyedLiteral.INSTANCE_REQUEST_SCOPED);
}
private void cleanupConversations()
@@ -460,6 +469,7 @@ public class WebContextsService extends
// this is handy if you create asynchronous tasks or
// batches which use a 'admin' user.
currentSessionContext = new SessionContext();
+ webBeansContext.getBeanManagerImpl().fireEvent(new Object(), InitializedLiteral.INSTANCE_SESSION_SCOPED);
}
else
{
@@ -473,6 +483,7 @@ public class WebContextsService extends
{
currentSessionContext = new SessionContext();
sessionCtxManager.addNewSessionContext(sessionId, currentSessionContext);
+ webBeansContext.getBeanManagerImpl().fireEvent(session, InitializedLiteral.INSTANCE_SESSION_SCOPED);
}
}
@@ -550,6 +561,8 @@ public class WebContextsService extends
{
sharedApplicationContext = newApplicationContext;
}
+
+ webBeansContext.getBeanManagerImpl().fireEvent(servletContext != null ? servletContext : new Object(), InitializedLiteral.INSTANCE_APPLICATION_SCOPED);
}
/**
@@ -628,6 +641,8 @@ public class WebContextsService extends
webBeansContext.getBeanManagerImpl().clearCacheProxies();
classLoaderToServletContextMapping.remove(WebBeansUtil.getCurrentClassLoader());
+
+ webBeansContext.getBeanManagerImpl().fireEvent(servletContext != null ? servletContext : new Object(), DestroyedLiteral.INSTANCE_APPLICATION_SCOPED);
}
/**
@@ -664,6 +679,8 @@ public class WebContextsService extends
{
sharedSingletonContext = newSingletonContext;
}
+
+ webBeansContext.getBeanManagerImpl().fireEvent(servletContext != null ? servletContext : new Object(), InitializedLiteral.INSTANCE_SINGLETON_SCOPED);
}
/**
@@ -700,6 +717,8 @@ public class WebContextsService extends
}
classLoaderToServletContextMapping.remove(WebBeansUtil.getCurrentClassLoader());
+
+ webBeansContext.getBeanManagerImpl().fireEvent(servletContext != null ? servletContext : new Object(), DestroyedLiteral.INSTANCE_SINGLETON_SCOPED);
}
/**
@@ -721,7 +740,8 @@ public class WebContextsService extends
{
conversationContexts.get().setActive(true);
}
-
+
+ webBeansContext.getBeanManagerImpl().fireEvent(new Object(), InitializedLiteral.INSTANCE_SINGLETON_SCOPED);
}
else
{
@@ -740,6 +760,7 @@ public class WebContextsService extends
if (context != null)
{
context.destroy();
+ webBeansContext.getBeanManagerImpl().fireEvent(new Object(), DestroyedLiteral.INSTANCE_SINGLETON_SCOPED);
}
conversationContexts.set(null);