You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2008/07/23 03:32:03 UTC
svn commit: r678968 - in /cxf/trunk/rt/javascript/src:
main/java/org/apache/cxf/javascript/service/
main/resources/org/apache/cxf/javascript/
test/java/org/apache/cxf/javascript/
test/resources/org/apache/cxf/javascript/
Author: bimargulies
Date: Tue Jul 22 18:32:02 2008
New Revision: 678968
URL: http://svn.apache.org/viewvc?rev=678968&view=rev
Log:
Repair CXF-1713.
Modified:
cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/service/ServiceJavascriptBuilder.java
cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/GreeterClientTest.java
cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/MtoMTest.java
cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/GreeterTests.js
Modified: cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/service/ServiceJavascriptBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/service/ServiceJavascriptBuilder.java?rev=678968&r1=678967&r2=678968&view=diff
==============================================================================
--- cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/service/ServiceJavascriptBuilder.java (original)
+++ cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/service/ServiceJavascriptBuilder.java Tue Jul 22 18:32:02 2008
@@ -167,10 +167,6 @@
}
utils.appendLine("this.client = null;");
utils.appendLine("this.response = null;");
- // the callback functions for a pending operation are stored in these.
- // thus, only one pending operation at a time.
- utils.appendLine("this._onsuccess = null;");
- utils.appendLine("this._onerror = null;");
generateGlobalElementDictionary();
code.append("}\n\n");
}
@@ -376,15 +372,17 @@
// we need to pass the caller's callback functions to our callback
// functions.
if (!currentOperation.isOneWay()) {
- utils.appendLine("this._onsuccess = successCallback;");
- utils.appendLine("this._onerror = errorCallback;");
+ utils.appendLine("this.client.user_onsuccess = successCallback;");
+ utils.appendLine("this.client.user_onerror = errorCallback;");
utils.appendLine("var closureThis = this;");
- utils.appendLine("this.client.onsuccess = function(that) { closureThis."
+ // client will pass itself and the response XML.
+ utils.appendLine("this.client.onsuccess = function(client, responseXml) { closureThis."
+ + opFunctionPropertyName
+ + "_onsuccess(client, responseXml); };");
+ // client will pass itself.
+ utils.appendLine("this.client.onerror = function(client) { closureThis."
+ opFunctionPropertyName
- + "_onsuccess(that); };");
- utils.appendLine("this.client.onerror = function(that) { closureThis."
- + opFunctionPropertyName
- + "_onerror(that); };");
+ + "_onerror(client); };");
}
utils.appendLine("var requestHeaders = [];");
@@ -418,20 +416,20 @@
String errorFunctionPropertyName = opFunctionPropertyName + "_onerror";
String errorFunctionGlobalName = opFunctionGlobalName + "_onerror";
- code.append("function " + errorFunctionGlobalName + "() {\n");
- utils.startIf("this._onerror");
+ code.append("function " + errorFunctionGlobalName + "(client) {\n");
+ utils.startIf("client.user_onerror");
// Is this a good set of parameters for the error function?
// Not if we want to process faults, it isn't. To be revisited.
utils.appendLine("var httpStatus;");
utils.appendLine("var httpStatusText;");
utils.appendLine("try {");
- utils.appendLine(" httpStatus = this.client.req.status;");
- utils.appendLine(" httpStatusText = this.client.req.statusText;");
+ utils.appendLine(" httpStatus = client.req.status;");
+ utils.appendLine(" httpStatusText = client.req.statusText;");
utils.appendLine("} catch(e) {");
utils.appendLine(" httpStatus = -1;");
utils.appendLine(" httpStatusText = 'Error opening connection to server';");
utils.appendLine("}");
- utils.appendLine("this._onerror(httpStatus, httpStatusText);");
+ utils.appendLine("client.user_onerror(httpStatus, httpStatusText);");
utils.endBlock();
code.append("}\n\n");
code.append(currentInterfaceClassName + ".prototype."
@@ -449,15 +447,13 @@
// parameters.
String successFunctionGlobalName = opFunctionGlobalName + "_onsuccess";
String successFunctionPropertyName = opFunctionPropertyName + "_onsuccess";
- String arglist = "()";
+ String arglist = "(client)";
if (nonVoidOutput) {
- arglist = "(responseXml)";
+ arglist = "(client, responseXml)";
}
code.append("function " + successFunctionGlobalName + arglist + " {\n");
- utils.appendLine("this.jsutils.trace('" + successFunctionGlobalName + " _onsuccess: ' "
- + " + this._onsuccess);");
- utils.startIf("this._onsuccess");
+ utils.startIf("client.user_onsuccess");
utils.appendLine("var responseObject = null;");
if (nonVoidOutput) {
utils.appendLine("var element = responseXml.documentElement;");
@@ -481,7 +477,7 @@
utils.appendLine("this.jsutils.trace('calling " + deserializerFunctionName + "');");
utils.appendLine("responseObject = " + deserializerFunctionName + "(this.jsutils, element);");
}
- utils.appendLine("this._onsuccess(responseObject);");
+ utils.appendLine("client.user_onsuccess(responseObject);");
utils.endBlock();
code.append("}\n\n");
code.append(currentInterfaceClassName + ".prototype."
Modified: cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js?rev=678968&r1=678967&r2=678968&view=diff
==============================================================================
--- cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js (original)
+++ cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js Tue Jul 22 18:32:02 2008
@@ -859,7 +859,7 @@
// response.
if (!req.responseXML) {
if (this.parseMultipartRelated()) {
- this.onsuccess(this.mpResponseXML);
+ this.onsuccess(this, this.mpResponseXML);
return;
}
if (this.onerror != null) {
@@ -867,7 +867,7 @@
return;
}
}
- this.onsuccess(req.responseXML);
+ this.onsuccess(this, req.responseXML);
}
} else {
this.utils.trace("onreadystatechange DONE ERROR "
Modified: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/GreeterClientTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/GreeterClientTest.java?rev=678968&r1=678967&r2=678968&view=diff
==============================================================================
--- cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/GreeterClientTest.java (original)
+++ cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/GreeterClientTest.java Tue Jul 22 18:32:02 2008
@@ -96,10 +96,12 @@
String responseObject = testUtilities.rhinoEvaluateConvert("globalResponseObject.getResponseType()",
String.class);
assertEquals("Bonjour", responseObject);
+ responseObject = testUtilities.rhinoEvaluateConvert("globalSecondResponseObject.getResponseType()",
+ String.class);
+ assertEquals("Bonjour", responseObject);
return null;
}
- @org.junit.Ignore
@Test
public void testRequestClosure() throws Exception {
testUtilities.runInsideContext(Void.class, new JSRunnable<Void>() {
Modified: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/MtoMTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/MtoMTest.java?rev=678968&r1=678967&r2=678968&view=diff
==============================================================================
--- cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/MtoMTest.java (original)
+++ cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/MtoMTest.java Tue Jul 22 18:32:02 2008
@@ -95,7 +95,6 @@
assertNotNull(unpacked);
return null;
}
-
@Test
public void sendMtoMStringTest() {
Modified: cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/GreeterTests.js
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/GreeterTests.js?rev=678968&r1=678967&r2=678968&view=diff
==============================================================================
--- cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/GreeterTests.js (original)
+++ cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/GreeterTests.js Tue Jul 22 18:32:02 2008
@@ -26,6 +26,7 @@
var globalErrorStatus = null;
var globalErrorStatusText = null;
var globalResponseObject = null;
+var globalSecondResponseObject = null;
function resetGlobals() {
globalNotifier = null;
@@ -52,10 +53,16 @@
globalNotifier.notify();
}
-function dummy()
+function success1(responseObject)
{
- // for now, dummy. later, we'll want to verify correct operation
- // of both requests.
+ globalResponseObject = responseObject;
+}
+
+
+function success2(responseObject)
+{
+ globalSecondResponseObject = responseObject;
+ globalNotifier.notify();
}
function sayHiTest(url)
@@ -83,8 +90,8 @@
intf = new cxf_apache_org_jstest_Greeter();
intf.url = url;
- intf.sayHi(testSuccessCallback, testErrorCallback);
- intf.sayHi(null, null);
+ intf.sayHi(success1, testErrorCallback);
+ intf.sayHi(success2, testErrorCallback);
// Return the notifier as a convenience to the Java code.
return globalNotifier;