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 2010/02/18 23:47:48 UTC
svn commit: r911629 - in /openwebbeans/trunk:
webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/DefaultLifecycle.java
webbeans-spi/src/main/java/org/apache/webbeans/spi/ServletContainerLifecycle.java
Author: struberg
Date: Thu Feb 18 22:47:48 2010
New Revision: 911629
URL: http://svn.apache.org/viewvc?rev=911629&view=rev
Log:
OWB-290 provice SPI for servlet specific lifecycles
This is needed for better testing support of @RequestScoped and @SessionScoped beans
Added:
openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ServletContainerLifecycle.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/DefaultLifecycle.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/DefaultLifecycle.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/DefaultLifecycle.java?rev=911629&r1=911628&r2=911629&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/DefaultLifecycle.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/DefaultLifecycle.java Thu Feb 18 22:47:48 2010
@@ -44,10 +44,10 @@
import org.apache.webbeans.portable.events.ExtensionLoader;
import org.apache.webbeans.portable.events.discovery.BeforeShutdownImpl;
import org.apache.webbeans.servlet.WebBeansConfigurationListener;
-import org.apache.webbeans.spi.ContainerLifecycle;
import org.apache.webbeans.spi.JNDIService;
import org.apache.webbeans.spi.ScannerService;
import org.apache.webbeans.spi.ServiceLoader;
+import org.apache.webbeans.spi.ServletContainerLifecycle;
import org.apache.webbeans.xml.WebBeansXMLConfigurator;
/**
@@ -61,7 +61,7 @@
* @version $Rev$Â $Date$
* @see WebBeansConfigurationListener
*/
-public final class DefaultLifecycle implements ContainerLifecycle
+public final class DefaultLifecycle implements ServletContainerLifecycle
{
//Logger instance
private static final WebBeansLogger logger = WebBeansLogger.getLogger(DefaultLifecycle.class);
@@ -105,8 +105,14 @@
rootManager.setXMLConfigurator(this.xmlDeployer);
}
- public void requestStarted(ServletRequestEvent event)
+ public void requestStarted(Object startObject)
{
+ ServletRequestEvent event = null;
+ if (startObject instanceof ServletRequestEvent)
+ {
+ event = (ServletRequestEvent) startObject;
+ }
+
logger.debug("Starting a new request : ", new Object[]{event.getServletRequest().getRemoteAddr()});
ContextFactory.initializeThreadLocals();
@@ -134,20 +140,37 @@
}
}
- public void requestEnded(ServletRequestEvent event)
+ public void requestEnded(Object endObject)
{
+ ServletRequestEvent event = null;
+ if (endObject instanceof ServletRequestEvent)
+ {
+ event = (ServletRequestEvent) endObject;
+ }
+
logger.debug("Destroying a request : ", new Object[]{event.getServletRequest().getRemoteAddr()});
ContextFactory.destroyRequestContext((HttpServletRequest) event.getServletRequest());
}
- public void sessionStarted(HttpSessionEvent event)
+ public void sessionStarted(Object startObject)
{
+ HttpSessionEvent event = null;
+ if (startObject instanceof HttpSessionEvent)
+ {
+ event = (HttpSessionEvent) startObject;
+ }
+
logger.debug("Starting a session with session id : ", new Object[]{event.getSession().getId()});
ContextFactory.initSessionContext(event.getSession());
}
- public void sessionEnded(HttpSessionEvent event)
+ public void sessionEnded(Object endObject)
{
+ HttpSessionEvent event = null;
+ if (endObject instanceof HttpSessionEvent)
+ {
+ event = (HttpSessionEvent) endObject;
+ }
logger.debug("Destroying a session with session id : ", new Object[]{event.getSession().getId()});
ContextFactory.destroySessionContext(event.getSession());
Added: openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ServletContainerLifecycle.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ServletContainerLifecycle.java?rev=911629&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ServletContainerLifecycle.java (added)
+++ openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ServletContainerLifecycle.java Thu Feb 18 22:47:48 2010
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.webbeans.spi;
+
+
+/**
+ * Interface for any CDI Container Lifecycles which are meant to be used for Servlets.
+ * Additionally to the default ContainerLifecycle this allows starting and stopping sessions
+ * and requests.
+ *
+ * This may be used to access servlet related lifecycle implementations in e.g. test containers.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ServletContainerLifecycle extends ContainerLifecycle {
+
+ /**
+ * start a new session context
+ * @param event most probably a HttpSessionEvent
+ */
+ public void sessionStarted(Object event);
+
+ /**
+ * end the session context
+ * @param event most probably a HttpSessionEvent
+ */
+ public void sessionEnded(Object event);
+
+ /**
+ * start a new request context
+ * @param event most probably a ServletRequestEvent
+ */
+ public void requestStarted(Object event);
+
+ /**
+ * stop the current request context
+ */
+ public void requestEnded(Object event);
+
+}