From 27db434fd93b8ebd4235f2e2cbbecb5b8be76ce4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Henrique=20Mendon=C3=A7a?= Date: Sun, 9 Jun 2013 21:48:39 +0200 Subject: [PATCH] THRIFT-1659 Bring nodejs default transport in line with Java default transport --- lib/nodejs/lib/thrift/connection.js | 54 +++++++++++++---------------- lib/nodejs/lib/thrift/server.js | 2 +- test/nodejs/Makefile.am | 4 +-- test/nodejs/client.js | 2 +- 4 files changed, 29 insertions(+), 33 deletions(-) diff --git a/lib/nodejs/lib/thrift/connection.js b/lib/nodejs/lib/thrift/connection.js index 05c5a6cf..a49d427d 100644 --- a/lib/nodejs/lib/thrift/connection.js +++ b/lib/nodejs/lib/thrift/connection.js @@ -30,7 +30,7 @@ var Connection = exports.Connection = function(stream, options) { this.connection = stream; this.options = options || {}; - this.transport = this.options.transport || ttransport.TFramedTransport; + this.transport = this.options.transport || ttransport.TBufferedTransport; this.protocol = this.options.protocol || tprotocol.TBinaryProtocol; this.offline_queue = []; this.connected = false; @@ -135,43 +135,39 @@ exports.createClient = function(cls, connection) { var child_process = require('child_process'); var StdIOConnection = exports.StdIOConnection = function(command, options) { - var command_parts = command.split(' '); - command = command_parts[0]; - var args = command_parts.splice(1,command_parts.length -1); - var child = this.child = child_process.spawn(command,args); + var command_parts = command.split(' '); + command = command_parts[0]; + var args = command_parts.splice(1,command_parts.length -1); + var child = this.child = child_process.spawn(command,args); var self = this; EventEmitter.call(this); - this._debug = options.debug || false; + this._debug = options.debug || false; this.connection = child.stdin; this.options = options || {}; - this.transport = this.options.transport || ttransport.TFramedTransport; + this.transport = this.options.transport || ttransport.TBufferedTransport; this.protocol = this.options.protocol || tprotocol.TBinaryProtocol; this.offline_queue = []; - if(this._debug === true){ - - this.child.stderr.on('data',function(err){ - console.log(err.toString(),'CHILD ERROR'); - - }); - - this.child.on('exit',function(code,signal){ - console.log(code+':'+signal,'CHILD EXITED'); - - }); + if(this._debug === true){ + this.child.stderr.on('data',function(err){ + console.log(err.toString(),'CHILD ERROR'); + }); - } + this.child.on('exit',function(code,signal){ + console.log(code+':'+signal,'CHILD EXITED'); + }); + } - this.frameLeft = 0; - this.framePos = 0; - this.frame = null; - this.connected = true; + this.frameLeft = 0; + this.framePos = 0; + this.frame = null; + this.connected = true; - self.offline_queue.forEach(function(data) { - self.connection.write(data); - }); + self.offline_queue.forEach(function(data) { + self.connection.write(data); + }); this.connection.addListener("error", function(err) { @@ -226,7 +222,7 @@ StdIOConnection.prototype.write = function(data) { this.connection.write(data); } exports.createStdIOConnection = function(command,options){ - return new StdIOConnection(command,options); + return new StdIOConnection(command,options); }; @@ -236,8 +232,8 @@ exports.createStdIOClient = function(cls,connection) { } var client = new cls(new connection.transport(undefined, function(buf) { - connection.write(buf); - }), connection.protocol); + connection.write(buf); + }), connection.protocol); // TODO clean this up connection.client = client; diff --git a/lib/nodejs/lib/thrift/server.js b/lib/nodejs/lib/thrift/server.js index a17419ba..f2190480 100644 --- a/lib/nodejs/lib/thrift/server.js +++ b/lib/nodejs/lib/thrift/server.js @@ -26,7 +26,7 @@ exports.createServer = function(cls, handler, options) { cls = cls.Processor; } var processor = new cls(handler); - var transport = (options && options.transport) ? options.transport : ttransport.TFramedTransport; + var transport = (options && options.transport) ? options.transport : ttransport.TBufferedTransport; var protocol = (options && options.protocol) ? options.protocol : TBinaryProtocol; return net.createServer(function(stream) { diff --git a/test/nodejs/Makefile.am b/test/nodejs/Makefile.am index 2c0a18fc..76680394 100755 --- a/test/nodejs/Makefile.am +++ b/test/nodejs/Makefile.am @@ -35,8 +35,8 @@ check: stubs clean-local: $(RM) -r gen-nodejs -server: stubs +server: NODE_PATH=../../lib/nodejs/lib:../../lib/nodejs/lib/thrift:$(NODE_PATH) node server.js -client: stubs +client: NODE_PATH=../../lib/nodejs/lib:../../lib/nodejs/lib/thrift:$(NODE_PATH) node client.js diff --git a/test/nodejs/client.js b/test/nodejs/client.js index ea2cc383..269aab34 100644 --- a/test/nodejs/client.js +++ b/test/nodejs/client.js @@ -23,7 +23,7 @@ var assert = require('assert'); var ThriftTest = require('./gen-nodejs/ThriftTest'), ttypes = require('./gen-nodejs/ThriftTest_types'); -//var connection = thrift.createConnection('localhost', 9090, { 'transport': ttransport.TBufferedTransport }), +//var connection = thrift.createConnection('localhost', 9090, { 'transport': ttransport.TFramedTransport }), var connection = thrift.createConnection('localhost', 9090), client = thrift.createClient(ThriftTest, connection); -- 2.17.1