[webbeans-commits] Webbeans SVN: r1383 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: servlet and 1 other directory.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Mon Feb 2 09:02:20 EST 2009
Author: nickarls
Date: 2009-02-02 09:02:20 -0500 (Mon, 02 Feb 2009)
New Revision: 1383
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationManager.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/DefaultConversationManager.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java
Log:
context destruction refactorings
destroying all conversations when session ends
interfaces for destroying all conversations
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationImpl.java 2009-02-02 13:37:02 UTC (rev 1382)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationImpl.java 2009-02-02 14:02:20 UTC (rev 1383)
@@ -92,6 +92,6 @@
public void setLongRunning(boolean longRunning)
{
- this.longRunning = true;
+ this.longRunning = longRunning;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationManager.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationManager.java 2009-02-02 13:37:02 UTC (rev 1382)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/ConversationManager.java 2009-02-02 14:02:20 UTC (rev 1383)
@@ -20,4 +20,5 @@
{
public abstract void beginConversation(String cid);
public abstract void endConversation();
+ public abstract void destroyAllConversations();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/DefaultConversationManager.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/DefaultConversationManager.java 2009-02-02 13:37:02 UTC (rev 1382)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/conversation/DefaultConversationManager.java 2009-02-02 14:02:20 UTC (rev 1383)
@@ -118,11 +118,24 @@
public void run()
{
log.trace("Conversation " + cid + " timed out and was terminated");
- ConversationContext terminationContext = new ConversationContext();
- terminationContext.setBeanMap(new ConversationBeanMap(session, cid));
- terminationContext.destroy();
- longRunningConversations.remove(cid);
+ destroyConversation(cid, session);
}
}
+
+ public void destroyAllConversations()
+ {
+ for (Map.Entry<String, Future<?>> entry : longRunningConversations.entrySet()) {
+ entry.getValue().cancel(false);
+ destroyConversation(entry.getKey(), session);
+ }
+ }
+ private void destroyConversation(String cid, HttpSession session)
+ {
+ ConversationContext terminationContext = new ConversationContext();
+ terminationContext.setBeanMap(new ConversationBeanMap(session, cid));
+ terminationContext.destroy();
+ longRunningConversations.remove(cid);
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java 2009-02-02 13:37:02 UTC (rev 1382)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletLifecycle.java 2009-02-02 14:02:20 UTC (rev 1383)
@@ -18,7 +18,6 @@
package org.jboss.webbeans.servlet;
import javax.context.Conversation;
-import javax.inject.Current;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@@ -84,6 +83,8 @@
SessionContext.INSTANCE.setBeanMap(new SessionBeanMap(session));
SessionContext.INSTANCE.destroy();
SessionContext.INSTANCE.setBeanMap(null);
+ ConversationManager conversationManager = CurrentManager.rootManager().getInstanceByType(ConversationManager.class);
+ conversationManager.destroyAllConversations();
}
/**
More information about the weld-commits
mailing list