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/05/05 17:26:37 UTC
svn commit: r1677838 - in /openwebbeans/trunk/webbeans-web/src:
it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/
it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/
it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/ main/...
Author: struberg
Date: Tue May 5 15:26:36 2015
New Revision: 1677838
URL: http://svn.apache.org/r1677838
Log:
OWB-1040 fix @Initialized(ApplicationContext.class) event
Added:
openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/ContextEventCounter.java
- copied, changed from r1677747, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/contexts/session/common/AppScopedBean.java
Modified:
openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/TestServlet.java
openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/ConversationScopedIT.java
openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/OwbITBase.java
openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/RequestScopedIT.java
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java
Modified: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/TestServlet.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/TestServlet.java?rev=1677838&r1=1677837&r2=1677838&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/TestServlet.java (original)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/TestServlet.java Tue May 5 15:26:36 2015
@@ -18,6 +18,7 @@
*/
package org.apache.openwebbeans.web.it;
+import org.apache.openwebbeans.web.it.beans.ContextEventCounter;
import org.apache.openwebbeans.web.it.beans.RequestScopedBean;
import javax.servlet.ServletException;
@@ -27,24 +28,33 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-@WebServlet(urlPatterns = "/check")
+@WebServlet(urlPatterns = "/check/*")
public class TestServlet extends HttpServlet
{
private static final long serialVersionUID = -8232635534522251153L;
@Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
- if (req.getParameter("reset") != null)
+ String uri = request.getRequestURI();
+ String action = uri.substring(uri.lastIndexOf('/') + 1);
+
+ response.setContentType("text/plain");
+ response.setStatus(HttpServletResponse.SC_OK);
+
+ if ("reset".equals(action))
{
RequestScopedBean.resetCounter();
+ ContextEventCounter.resetCounter();
+ }
+ else if ("events".equals(action))
+ {
+ response.getWriter().append(ContextEventCounter.info());
}
else
{
- resp.setContentType("text/plain");
- resp.setStatus(HttpServletResponse.SC_OK);
- resp.getWriter().append(RequestScopedBean.info());
+ response.getWriter().append(RequestScopedBean.info());
}
}
}
Copied: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/ContextEventCounter.java (from r1677747, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/contexts/session/common/AppScopedBean.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/ContextEventCounter.java?p2=openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/ContextEventCounter.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/contexts/session/common/AppScopedBean.java&r1=1677747&r2=1677838&rev=1677838&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/contexts/session/common/AppScopedBean.java (original)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/ContextEventCounter.java Tue May 5 15:26:36 2015
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.webbeans.test.contexts.session.common;
+package org.apache.openwebbeans.web.it.beans;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Destroyed;
@@ -24,15 +24,14 @@ import javax.enterprise.context.Initiali
import javax.enterprise.context.RequestScoped;
import javax.enterprise.context.SessionScoped;
import javax.enterprise.event.Observes;
-import javax.inject.Inject;
+import javax.inject.Singleton;
import java.util.ArrayList;
import java.util.List;
-@ApplicationScoped
-public class AppScopedBean {
+@Singleton
+public class ContextEventCounter
+{
- private @Inject PersonalDataBean pdb;
-
public static List<Object> appContextInitializedEvent = new ArrayList<Object>();
public static List<Object> appContextDestroyedEvent = new ArrayList<Object>();
@@ -42,9 +41,6 @@ public class AppScopedBean {
public static List<Object> requestContextInitializedEvent = new ArrayList<Object>();
public static List<Object> requestContextDestroyedEvent = new ArrayList<Object>();
- public PersonalDataBean getPdb() {
- return pdb;
- }
public void appContextInitialized(@Observes @Initialized(ApplicationScoped.class) Object payload)
{
@@ -76,5 +72,19 @@ public class AppScopedBean {
requestContextDestroyedEvent.add(payload);
}
+ public static void resetCounter()
+ {
+ sessionContextInitializedEvent.clear();
+ sessionContextDestroyedEvent.clear();
+ requestContextInitializedEvent.clear();
+ requestContextDestroyedEvent.clear();
+ }
+
+ public static String info()
+ {
+ return "application:" + appContextInitializedEvent.size() + "/" + appContextDestroyedEvent.size() + "\n" +
+ "session:" + sessionContextInitializedEvent.size() + "/" + sessionContextDestroyedEvent.size() + "\n" +
+ "request:" + requestContextInitializedEvent.size() + "/" + requestContextDestroyedEvent.size();
+ }
}
Modified: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/ConversationScopedIT.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/ConversationScopedIT.java?rev=1677838&r1=1677837&r2=1677838&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/ConversationScopedIT.java (original)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/ConversationScopedIT.java Tue May 5 15:26:36 2015
@@ -161,6 +161,7 @@ public class ConversationScopedIT extend
String content = httpGet(client, "conversation/info?cid=" + oldCid, HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
Assert.assertTrue(content.contains(NonexistentConversationException.class.getName()));
}
+
}
Modified: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/OwbITBase.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/OwbITBase.java?rev=1677838&r1=1677837&r2=1677838&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/OwbITBase.java (original)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/OwbITBase.java Tue May 5 15:26:36 2015
@@ -182,6 +182,6 @@ public class OwbITBase
Assert.assertEquals(expectedHttpCode, statusCode);
getRequest.releaseConnection();
- return content;
+ return content.trim();
}
}
Modified: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/RequestScopedIT.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/RequestScopedIT.java?rev=1677838&r1=1677837&r2=1677838&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/RequestScopedIT.java (original)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/test/java/org/apache/openwebbeans/web/it/RequestScopedIT.java Tue May 5 15:26:36 2015
@@ -18,17 +18,13 @@
*/
package org.apache.openwebbeans.web.it;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.HttpGet;
+import javax.servlet.http.HttpServletResponse;
+
import org.apache.http.impl.client.DefaultHttpClient;
import org.junit.Assert;
import org.junit.Test;
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
public class RequestScopedIT extends OwbITBase
{
@@ -38,47 +34,19 @@ public class RequestScopedIT extends Owb
{
DefaultHttpClient client = new DefaultHttpClient();
- HttpGet resetGet = new HttpGet(getPageUrl("/check?reset=true"));
- HttpResponse response = client.execute(resetGet);
- resetGet.releaseConnection();
-
- HttpGet jspGet = new HttpGet(getPageUrl("/index.jsp"));
- checkResponse(client.execute(jspGet));
- jspGet.releaseConnection();
-
- HttpGet checkGet = new HttpGet(getPageUrl("/check"));
- response = client.execute(checkGet);
- checkResponse(response);
-
- HttpEntity httpEntity = response.getEntity();
- Assert.assertNotNull(httpEntity);
-
- InputStream content = null;
- try
- {
- content = httpEntity.getContent();
- Assert.assertNotNull(content);
- BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(content));
- String result = bufferedReader.readLine();
- Assert.assertNotNull(result);
- Assert.assertEquals("2,2", result);
- }
- finally {
- if (content != null)
- {
- content.close();
- }
- }
-
+ // GET http://localhost:8089/webbeanswebCdiApp/check
- checkGet.releaseConnection();
- }
+ String response = httpGet(client, "/check/reset", HttpServletResponse.SC_OK);
+ response = httpGet(client, "/index.jsp", HttpServletResponse.SC_OK);
+ response = httpGet(client, "/check", HttpServletResponse.SC_OK);
+ Assert.assertEquals("2,2", response);
- private void checkResponse(HttpResponse response)
- {
+ response = httpGet(client, "/check/events", HttpServletResponse.SC_OK);
Assert.assertNotNull(response);
- Assert.assertNotNull(response.getStatusLine());
- Assert.assertEquals(200, response.getStatusLine().getStatusCode());
+
+ // application and session still running
+ // for the session we got 2 full requests + 1 end after the reset + 1 start before the info gets rendered in the last request
+ Assert.assertEquals("application:1/0\nsession:1/0\nrequest:3/3", response);
}
}
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=1677838&r1=1677837&r2=1677838&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 Tue May 5 15:26:36 2015
@@ -126,13 +126,13 @@ public class WebContextsService extends
*/
@Override
public void init(Object initializeObject)
- {
- //Start application context
- startContext(ApplicationScoped.class, initializeObject);
-
+ {
//Start signelton context
startContext(Singleton.class, initializeObject);
- }
+
+ //Start application context
+ startContext(ApplicationScoped.class, initializeObject);
+ }
/**
* {@inheritDoc}
Modified: openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java?rev=1677838&r1=1677837&r2=1677838&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java (original)
+++ openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java Tue May 5 15:26:36 2015
@@ -116,6 +116,8 @@ public final class WebContainerLifecycle
// Add BeanManager to the 'javax.enterprise.inject.spi.BeanManager' servlet context attribute
ServletContext servletContext = (ServletContext)(startupObject);
servletContext.setAttribute(BeanManager.class.getName(), getBeanManager());
+
+ // fire @Initialized(ApplicationScoped.class) if any observer for it exists
if (webBeansContext.getBeanManagerImpl().getNotificationManager().hasLifecycleObserver(InitializedLiteral.INSTANCE_APPLICATION_SCOPED))
{
// we need to temporarily start the ReqeustContext
@@ -153,7 +155,6 @@ public final class WebContainerLifecycle
{
elStore.destroyELContextStore();
}
-
}
/**