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/16 19:50:10 UTC

svn commit: r1679794 - 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/main/webapp/ it/webcdiapp/src/test/java/org/apa...

Author: struberg
Date: Sat May 16 17:50:09 2015
New Revision: 1679794

URL: http://svn.apache.org/r1679794
Log:
OWB-1048 enable SessionContext on re-activate

This is important if the SessionContext gets first accessed
after the session got serialized over from another node or the file system.

Added:
    openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/SessionScopedCounter.java   (with props)
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/main/java/org/apache/openwebbeans/web/it/beans/RequestScopedBean.java
    openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/webapp/index.jsp
    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

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=1679794&r1=1679793&r2=1679794&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 Sat May 16 17:50:09 2015
@@ -44,6 +44,7 @@ public class TestServlet extends HttpSer
 
         if ("reset".equals(action))
         {
+            request.getSession().invalidate();
             RequestScopedBean.resetCounter();
             ContextEventCounter.resetCounter();
         }

Modified: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/RequestScopedBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/RequestScopedBean.java?rev=1679794&r1=1679793&r2=1679794&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/RequestScopedBean.java (original)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/RequestScopedBean.java Sat May 16 17:50:09 2015
@@ -19,6 +19,7 @@
 package org.apache.openwebbeans.web.it.beans;
 
 import javax.annotation.PostConstruct;
+import javax.enterprise.context.ContextNotActiveException;
 import javax.enterprise.context.Initialized;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.event.Observes;
@@ -34,6 +35,7 @@ public class RequestScopedBean
     private static int requestContextCounter = 0;
 
     private @Inject NonAnnotatedDependentBean nonAnnotatedBean;
+    private @Inject SessionScopedCounter sessionScopedCounter;
 
     private String name = "Super name";
 
@@ -69,11 +71,19 @@ public class RequestScopedBean
     public void onRequestInit(@Observes @Initialized(RequestScoped.class) Object payload)
     {
         requestContextCounter++;
+        try
+        {
+            sessionScopedCounter.increment();
+        }
+        catch (ContextNotActiveException cnae)
+        {
+            // ignore if on app startup.
+        }
     }
 
     public static String info()
     {
-        return String.valueOf(requestInstanceCounter) + ',' + String.valueOf(requestContextCounter);
+        return String.valueOf(requestInstanceCounter) + "," + String.valueOf(requestContextCounter);
     }
 
     public int getMeaningOfLife()

Added: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/SessionScopedCounter.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/SessionScopedCounter.java?rev=1679794&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/SessionScopedCounter.java (added)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/SessionScopedCounter.java Sat May 16 17:50:09 2015
@@ -0,0 +1,42 @@
+/*
+ * 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.openwebbeans.web.it.beans;
+
+import javax.enterprise.context.SessionScoped;
+import javax.inject.Named;
+import java.io.Serializable;
+
+/**
+ */
+@SessionScoped
+@Named
+public class SessionScopedCounter implements Serializable
+{
+    private int count = 0;
+
+    public void increment()
+    {
+        count++;
+    }
+
+    public int getCount()
+    {
+        return count;
+    }
+}

Propchange: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/java/org/apache/openwebbeans/web/it/beans/SessionScopedCounter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/webapp/index.jsp?rev=1679794&r1=1679793&r2=1679794&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/webapp/index.jsp (original)
+++ openwebbeans/trunk/webbeans-web/src/it/webcdiapp/src/main/webapp/index.jsp Sat May 16 17:50:09 2015
@@ -35,5 +35,9 @@ Current instance: <c:out value="${reques
 <br/>
 Meaning of Life: <c:out value="${requestScopedBean.meaningOfLife}"/>
 
+<br/>
+SessionScoped Counter: <c:out value="${sessionScopedCounter.count}"/>
+
+
 </body>
 </html>

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=1679794&r1=1679793&r2=1679794&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 Sat May 16 17:50:09 2015
@@ -46,7 +46,7 @@ public class RequestScopedIT extends Owb
 
         // 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);
+        Assert.assertEquals("application:1/0\nsession:1/1\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=1679794&r1=1679793&r2=1679794&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 Sat May 16 17:50:09 2015
@@ -478,6 +478,7 @@ public class WebContextsService extends
                 // we do that in any case.
                 // This is needed to trigger delta-replication on most servers
                 session.setAttribute(OWB_SESSION_CONTEXT_ATTRIBUTE_NAME, currentSessionContext);
+                currentSessionContext.setActive(true);
             }
             //Set thread local
             sessionContexts.set(currentSessionContext);