[seam-commits] Seam SVN: r11925 - in modules/remoting/trunk/src/main: resources/org/jboss/seam/remoting and 1 other directory.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Thu Jan 7 04:34:32 EST 2010


Author: shane.bryzak at jboss.com
Date: 2010-01-07 04:34:32 -0500 (Thu, 07 Jan 2010)
New Revision: 11925

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:
call context should be model-scoped


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	2010-01-07 09:04:32 UTC (rev 11924)
+++ modules/remoting/trunk/src/main/java/org/jboss/seam/remoting/model/ModelHandler.java	2010-01-07 09:34:32 UTC (rev 11925)
@@ -226,21 +226,24 @@
       {
          model.getCallContext().getInRefs().put("" + i, model.getCallContext().getOutRefs().get(i));
       }
-            
-      List<Wrapper> newRefs = new ArrayList<Wrapper>();
-      
+                  
       Element refsElement = modelElement.element("refs");
-      for (Element ref : (List<Element>) refsElement.elements("ref"))
+      if (refsElement != null)
       {
-         newRefs.add(model.getCallContext().createWrapperFromElement(ref));
+         List<Wrapper> newRefs = new ArrayList<Wrapper>();
+         
+         for (Element ref : (List<Element>) refsElement.elements("ref"))
+         {
+            newRefs.add(model.getCallContext().createWrapperFromElement(ref));
+         }
+         
+         // Unmarshal any new ref values
+         for (Wrapper w : newRefs)
+         {
+            w.unmarshal();
+         }
       }
       
-      // Unmarshal any new ref values
-      for (Wrapper w : newRefs)
-      {
-         w.unmarshal();
-      }
-      
       Element delta = modelElement.element("delta");
       if (delta != 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	2010-01-07 09:04:32 UTC (rev 11924)
+++ modules/remoting/trunk/src/main/resources/org/jboss/seam/remoting/remote.js	2010-01-07 09:34:32 UTC (rev 11925)
@@ -359,10 +359,11 @@
   return {data: d, id: callId, callback: callback, exceptionHandler: exceptionHandler, handler: Seam.preProcessCallResponse};
 };
 
-Seam.createHeader = function(callId) {
+Seam.createHeader = function(callId, ctx) {
   var h = "<context><callId>" + callId + "</callId>";
-  if (Seam.context.getConversationId()) {
-    h += "<conversationId>" + Seam.context.getConversationId() + "</conversationId>";
+  if (!ctx) ctx = Seam.context;
+  if (ctx.getConversationId()) {
+    h += "<conversationId>" + ctx.getConversationId() + "</conversationId>";
   }
   h += "</context>";
   return h;
@@ -580,7 +581,10 @@
   var b = cn(call.response.documentElement, "body");
   if (b) {
     var n = cn(b, "model");
-    if (call.model) call.model.processExpandResponse(n, call.refId, call.property, call.callback);
+    if (call.model) {
+      call.model.context.setConversationId(call.context.conversationId);
+      call.model.processExpandResponse(n, call.refId, call.property, call.callback);
+    }
   }
 };
 
@@ -590,7 +594,10 @@
   var b = cn(call.response.documentElement, "body");
   if (b) {
     var n = cn(b, "model");
-    if (call.model) call.model.processResponse(n, call.callback);  
+    if (call.model) {
+      call.model.context.setConversationId(call.context.conversationId);
+      call.model.processResponse(n, call.callback);
+    }
   }
 };
 
@@ -925,6 +932,7 @@
   this.values = [];
   this.sourceRefs = [];
   this.workingRefs = [];
+  this.context = new Seam.Context();
 
   Seam.Model.prototype.addExpression = function(alias, expr) {
     this.expressions.push({alias: alias, expr: expr});
@@ -963,7 +971,7 @@
 
   Seam.Model.prototype.fetch = function(action, cb) {
     var r = this.createFetchRequest(action, cb);
-    var env = Seam.createEnvelope(Seam.createHeader(r.id), r.data);
+    var env = Seam.createEnvelope(Seam.createHeader(r.id, this.context), r.data);
     Seam.pendingCalls.put(r.id, r);
     Seam.sendAjaxRequest(env, Seam.PATH_MODEL, Seam.processResponse, false);
   };
@@ -1041,7 +1049,7 @@
       d.scanForChanges(this.values[i].value);
     }
     var r = this.createApplyRequest(a, d, cb);
-    var env = Seam.createEnvelope(Seam.createHeader(r.id), r.data);
+    var env = Seam.createEnvelope(Seam.createHeader(r.id, this.context), r.data);
     Seam.pendingCalls.put(r.id, r);
     Seam.sendAjaxRequest(env, Seam.PATH_MODEL, Seam.processResponse, false);
   };
@@ -1121,7 +1129,7 @@
     if (v[p] != undefined) return;
     var refId = this.getRefId(v);    
     var r = this.createExpandRequest(refId, p, cb);
-    var env = Seam.createEnvelope(Seam.createHeader(r.id), r.data);
+    var env = Seam.createEnvelope(Seam.createHeader(r.id, this.context), r.data);
     Seam.pendingCalls.put(r.id, r);
     Seam.sendAjaxRequest(env, Seam.PATH_MODEL, Seam.processResponse, false);
   };



More information about the seam-commits mailing list