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/03 00:19:22 UTC

svn commit: r1677356 - in /openwebbeans/trunk/webbeans-jsf: pom.xml src/main/java/org/apache/webbeans/jsf/JsfConversationService.java

Author: struberg
Date: Sat May  2 22:19:22 2015
New Revision: 1677356

URL: http://svn.apache.org/r1677356
Log:
OWB-1050 also get cid from the request

This is needed to support non-JSF conversations as well

Modified:
    openwebbeans/trunk/webbeans-jsf/pom.xml
    openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JsfConversationService.java

Modified: openwebbeans/trunk/webbeans-jsf/pom.xml
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jsf/pom.xml?rev=1677356&r1=1677355&r2=1677356&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jsf/pom.xml (original)
+++ openwebbeans/trunk/webbeans-jsf/pom.xml Sat May  2 22:19:22 2015
@@ -32,6 +32,10 @@
             <groupId>org.apache.openwebbeans</groupId>
             <artifactId>openwebbeans-impl</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-web</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>junit</groupId>

Modified: openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JsfConversationService.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JsfConversationService.java?rev=1677356&r1=1677355&r2=1677356&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JsfConversationService.java (original)
+++ openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JsfConversationService.java Sat May  2 22:19:22 2015
@@ -18,18 +18,18 @@
  */
 package org.apache.webbeans.jsf;
 
-import javax.servlet.http.HttpSession;
 
-import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.webbeans.spi.ConversationService;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.web.context.WebConversationService;
 
-public class JsfConversationService implements ConversationService
+public class JsfConversationService extends WebConversationService
 {
-    private static final String ATTRIBUTE_NAME_CONVERSATION_ID_COUNTER = "owb_coversationId_counter";
-
-    private AtomicInteger conversationIdCounter = new AtomicInteger(0);
 
+    public JsfConversationService(WebBeansContext webBeansContext)
+    {
+        super(webBeansContext);
+    }
 
     @Override
     public String getConversationId()
@@ -37,27 +37,19 @@ public class JsfConversationService impl
         String conversationId = JSFUtil.getConversationId();
         if (conversationId == null || conversationId.length() == 0)
         {
+            // try to get the conversationId from the servlet
+            conversationId = super.getConversationId();
+        }
+        if (conversationId == null || conversationId.length() == 0)
+        {
             return null;
         }
-        return conversationId;
-    }
-
-    @Override
-    public String generateConversationId()
-    {
-        HttpSession session = JSFUtil.getSession();
-        if(session != null)
+        if ("none".equals(JSFUtil.getConversationPropagation()))
         {
-            AtomicInteger convIdCounter = (AtomicInteger) session.getAttribute(ATTRIBUTE_NAME_CONVERSATION_ID_COUNTER);
-            if (convIdCounter == null)
-            {
-                convIdCounter = new AtomicInteger(0);
-                session.setAttribute(ATTRIBUTE_NAME_CONVERSATION_ID_COUNTER, convIdCounter);
-            }
-
-            return Long.toString(convIdCounter.incrementAndGet());
+            // explicit 'blocking' of conversationPropagation
+            return null;
         }
-        
-        return "inMem_" + conversationIdCounter.incrementAndGet();
+        return conversationId;
     }
+
 }