[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