</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"/>
<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>
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) {