You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2012/05/01 13:20:13 UTC

svn commit: r1332619 - in /thrift/trunk/lib/js: test/build.xml test/test.html test/test.js thrift.js

Author: roger
Date: Tue May  1 11:20:12 2012
New Revision: 1332619

URL: http://svn.apache.org/viewvc?rev=1332619&view=rev
Log:
THRIFT-1514 Callbacks with newer jQuery versions don't work
Patch: Andrew Grumet

Modified:
    thrift/trunk/lib/js/test/build.xml
    thrift/trunk/lib/js/test/test.html
    thrift/trunk/lib/js/test/test.js
    thrift/trunk/lib/js/thrift.js

Modified: thrift/trunk/lib/js/test/build.xml
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/js/test/build.xml?rev=1332619&r1=1332618&r2=1332619&view=diff
==============================================================================
--- thrift/trunk/lib/js/test/build.xml (original)
+++ thrift/trunk/lib/js/test/build.xml Tue May  1 11:20:12 2012
@@ -93,7 +93,7 @@
   </target>
 
   <target name="jslibs" depends="init, proxy">
-    <get src="http://code.jquery.com/jquery-1.5.2.js" dest="${build}/js/lib" usetimestamp="true"/>
+    <get src="http://code.jquery.com/jquery-1.7.2.js" dest="${build}/js/lib" usetimestamp="true"/>
     <get src="http://js-test-driver.googlecode.com/svn/trunk/JsTestDriver/contrib/qunit/src/equiv.js" dest="${build}/js/lib" usetimestamp="true"/>
     <get src="http://js-test-driver.googlecode.com/svn/trunk/JsTestDriver/contrib/qunit/src/QUnitAdapter.js" dest="${build}/js/lib" usetimestamp="true"/>
 

Modified: thrift/trunk/lib/js/test/test.html
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/js/test/test.html?rev=1332619&r1=1332618&r2=1332619&view=diff
==============================================================================
--- thrift/trunk/lib/js/test/test.html (original)
+++ thrift/trunk/lib/js/test/test.html Tue May  1 11:20:12 2012
@@ -27,7 +27,7 @@
   <script src="gen-js/ThriftTest.js"       type="text/javascript" charset="utf-8"></script>
 
   <!-- jQuery -->
-  <script type="text/javascript" src="build/js/lib/jquery-1.5.2.js" charset="utf-8"></script>
+  <script type="text/javascript" src="build/js/lib/jquery-1.7.2.js" charset="utf-8"></script>
   
   <!-- QUnit Test framework-->
   <script type="text/javascript" src="build/js/lib/qunit.js" charset="utf-8"></script>

Modified: thrift/trunk/lib/js/test/test.js
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/js/test/test.js?rev=1332619&r1=1332618&r2=1332619&view=diff
==============================================================================
--- thrift/trunk/lib/js/test/test.js (original)
+++ thrift/trunk/lib/js/test/test.js Tue May  1 11:20:12 2012
@@ -390,7 +390,7 @@ module("Async");
       ok(false);
       QUnit.start();
     })
-    .error(function(e){
+    .error(function(xhr,status,e){
       equal(e.errorCode, 1001);
       equal(e.message, "Xception");
       QUnit.start();

Modified: thrift/trunk/lib/js/thrift.js
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/js/thrift.js?rev=1332619&r1=1332618&r2=1332619&view=diff
==============================================================================
--- thrift/trunk/lib/js/thrift.js (original)
+++ thrift/trunk/lib/js/thrift.js Tue May  1 11:20:12 2012
@@ -223,46 +223,26 @@ Thrift.Transport.prototype = {
             throw 'Thrift.js requires jQuery 1.5+ to use asynchronous requests';
         }
 
-        // Deferreds
-        var deferred = jQuery.Deferred();
-        var completeDfd = jQuery._Deferred();
-        var dfd = deferred.promise();
-        dfd.success = dfd.done;
-        dfd.error = dfd.fail;
-        dfd.complete = completeDfd.done;
+        var thriftTransport = this;
 
         var jqXHR = jQuery.ajax({
             url: this.url,
             data: postData,
             type: 'POST',
             cache: false,
-            dataType: 'text',
-            context: this,
-            success: this.jqResponse,
-            error: function(xhr, status, e) {
-                deferred.rejectWith(client, jQuery.merge([e], xhr.tArgs));
+            dataType: 'text thrift',
+            converters: {
+                'text thrift' : function(responseData) {
+                    thriftTransport.setRecvBuffer(responseData);
+                    var value = recv_method.call(client);
+                    return value;
+                }
             },
-            complete: function(xhr, status) {
-                completeDfd.resolveWith(client, [xhr, status]);
-            }
+            context: client,
+            success: jQuery.makeArray(args).pop()
         });
 
-        deferred.done(jQuery.makeArray(args).pop()); //pop callback from args
-        jqXHR.tArgs = args;
-        jqXHR.tClient = client;
-        jqXHR.tRecvFn = recv_method;
-        jqXHR.tDfd = deferred;
-        return dfd;
-    },
-
-    jqResponse: function(responseData, textStatus, jqXHR) {
-      this.setRecvBuffer(responseData);
-      try {
-          var value = jqXHR.tRecvFn.call(jqXHR.tClient);
-          jqXHR.tDfd.resolveWith(jqXHR, jQuery.merge([value], jqXHR.tArgs));
-      } catch (ex) {
-          jqXHR.tDfd.rejectWith(jqXHR, jQuery.merge([ex], jqXHR.tArgs));
-      }
+        return jqXHR;
     },
 
     setRecvBuffer: function(buf) {