Author: shane.bryzak(a)jboss.com
Date: 2009-12-22 04:21:03 -0500 (Tue, 22 Dec 2009)
New Revision: 11874
Modified:
modules/remoting/trunk/src/main/java/org/jboss/seam/remoting/model/ModelHandler.java
modules/remoting/trunk/src/main/resources/org/jboss/seam/remoting/remote.js
Log:
fixed conversation management stuff, now we just need a transaction...
Modified:
modules/remoting/trunk/src/main/java/org/jboss/seam/remoting/model/ModelHandler.java
===================================================================
---
modules/remoting/trunk/src/main/java/org/jboss/seam/remoting/model/ModelHandler.java 2009-12-22
02:19:09 UTC (rev 11873)
+++
modules/remoting/trunk/src/main/java/org/jboss/seam/remoting/model/ModelHandler.java 2009-12-22
09:21:03 UTC (rev 11874)
@@ -9,7 +9,6 @@
import java.util.Set;
import javax.enterprise.context.Conversation;
-import javax.enterprise.inject.Instance;
import javax.enterprise.inject.spi.BeanManager;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
@@ -24,7 +23,6 @@
import org.jboss.seam.remoting.RequestContext;
import org.jboss.seam.remoting.RequestHandler;
import org.jboss.seam.remoting.wrapper.Wrapper;
-import org.jboss.seam.remoting.wrapper.WrapperFactory;
import org.jboss.weld.Container;
import org.jboss.weld.context.ContextLifecycle;
import org.jboss.weld.context.ConversationContext;
@@ -45,7 +43,7 @@
@Inject BeanManager beanManager;
@Inject ConversationManager conversationManager;
@Inject ModelRegistry registry;
- @Inject Instance<Conversation> conversationInstance;
+ @Inject Conversation conversation;
@SuppressWarnings("unchecked")
public void handle(HttpServletRequest request, HttpServletResponse response)
@@ -73,19 +71,21 @@
ConversationContext conversationContext = null;
try
- {
+ {
// Initialize the conversation context
conversationContext =
Container.instance().deploymentServices().get(ContextLifecycle.class).getConversationContext();
- conversationContext.setBeanStore(new ConversationBeanStore(request.getSession(),
ctx.getConversationId()));
- conversationContext.setActive(true);
if (ctx.getConversationId() != null &&
!ctx.getConversationId().isEmpty())
{
+ conversationContext.setBeanStore(new
ConversationBeanStore(request.getSession(), ctx.getConversationId()));
+ conversationContext.setActive(true);
conversationManager.beginOrRestoreConversation(ctx.getConversationId());
}
else
{
- conversationManager.beginOrRestoreConversation(null);
+ conversationContext.setBeanStore(new
ConversationBeanStore(request.getSession(),
+ ((org.jboss.weld.conversation.ConversationImpl)
conversation).getUnderlyingId()));
+ conversationContext.setActive(true);
}
Set<Model> models = new HashSet<Model>();
@@ -109,13 +109,13 @@
{
if (model.getAction() != null && model.getAction().getException() !=
null)
{
- out.write(ENVELOPE_TAG_OPEN);
- out.write(BODY_TAG_OPEN);
+ response.getOutputStream().write(ENVELOPE_TAG_OPEN);
+ response.getOutputStream().write(BODY_TAG_OPEN);
MarshalUtils.marshalException(model.getAction().getException(),
- model.getAction().getContext(), out);
- out.write(BODY_TAG_CLOSE);
- out.write(ENVELOPE_TAG_CLOSE);
- out.flush();
+ model.getAction().getContext(), response.getOutputStream());
+ response.getOutputStream().write(BODY_TAG_CLOSE);
+ response.getOutputStream().write(ENVELOPE_TAG_CLOSE);
+ response.getOutputStream().flush();
return;
}
}
@@ -125,12 +125,12 @@
model.evaluate();
}
- Conversation conversation = conversationInstance.get();
- ctx.setConversationId(conversation.getId());
+ ctx.setConversationId(conversation.isTransient() ? null :
conversation.getId());
marshalResponse(models, ctx, response.getOutputStream());
}
finally
{
+ conversationManager.cleanupConversation();
if (conversationContext != null)
{
conversationContext.setBeanStore(null);
@@ -217,6 +217,7 @@
throws Exception
{
Model model = registry.getModel(modelElement.attributeValue("uid"));
+ models.add(model);
model.setCallId(callId);
model.setAction(null);
Modified: modules/remoting/trunk/src/main/resources/org/jboss/seam/remoting/remote.js
===================================================================
--- modules/remoting/trunk/src/main/resources/org/jboss/seam/remoting/remote.js 2009-12-22
02:19:09 UTC (rev 11873)
+++ modules/remoting/trunk/src/main/resources/org/jboss/seam/remoting/remote.js 2009-12-22
09:21:03 UTC (rev 11874)
@@ -472,10 +472,9 @@
var contextNode = cn(headerNode, "context");
if (contextNode) {
Seam.unmarshalContext(contextNode, ctx);
- if (ctx.getConversationId() && Seam.context.getConversationId() == null)
- Seam.context.setConversationId(ctx.getConversationId());
}
}
+ Seam.context.setConversationId(ctx.getConversationId() ? ctx.getConversationId() :
null);
if (bodyNode) {
var n = cn(bodyNode, "result");
if (n) {
Show replies by date