Arlolra has uploaded a new change for review. https://gerrit.wikimedia.org/r/255314
Change subject: Have the parsoidService return a promise for the server ...................................................................... Have the parsoidService return a promise for the server * This is necessary for the eventual migration to service-runner. Change-Id: I3a66b1cb883926cf0d7c75af3e4517c25c0aad4c --- M .jsduck/categories.json M bin/server.js M lib/api/ParsoidService.js 3 files changed, 16 insertions(+), 17 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid refs/changes/14/255314/1 diff --git a/.jsduck/categories.json b/.jsduck/categories.json index 3425a7f..b52fd6a 100644 --- a/.jsduck/categories.json +++ b/.jsduck/categories.json @@ -3,12 +3,6 @@ "name": "Parsoid External APIs", "groups": [ { - "name": "Server Interface", - "classes": [ - "ParsoidService" - ] - }, - { "name": "JavaScript Interface (experimental)", "classes": [ "Parsoid", diff --git a/bin/server.js b/bin/server.js index 0bd41e8..55fb0d8 100755 --- a/bin/server.js +++ b/bin/server.js @@ -61,7 +61,7 @@ process.exit(0); } -var ParsoidService = require("../lib/api/ParsoidService.js").ParsoidService; +var parsoidService = require("../lib/api/ParsoidService.js").parsoidService; var ParsoidConfig = require("../lib/config/ParsoidConfig.js").ParsoidConfig; var Logger = require("../lib/logger/Logger.js").Logger; var PLogger = require("../lib/logger/ParsoidLogger.js"); @@ -204,6 +204,5 @@ }, parsoidConfig.heapUsageSampleInterval); } - var app = new ParsoidService(parsoidConfig, processLogger); - + parsoidService(parsoidConfig, processLogger); } diff --git a/lib/api/ParsoidService.js b/lib/api/ParsoidService.js index 3f471bf..6b2996f 100644 --- a/lib/api/ParsoidService.js +++ b/lib/api/ParsoidService.js @@ -16,20 +16,21 @@ var path = require('path'); var util = require('util'); var uuid = require('node-uuid').v4; +var http = require('http'); + /** - * ParsoidService instantiates an [express](http://expressjs.com/) server + * parsoidService instantiates an [express](http://expressjs.com/) server * to handle HTTP requests. * * For more details on the HTTP api, see the * [guide](#!/guide/apiuse). * - * @class - * @constructor * @param {ParsoidConfig} parsoidConfig * @param {Logger} processLogger + * @return {Promise} */ -function ParsoidService(parsoidConfig, processLogger) { +var parsoidService = Promise.method(function(parsoidConfig, processLogger) { processLogger.log('info', 'loading ...'); // Get host and port from the environment, if available @@ -206,16 +207,21 @@ app.get('/v2/:domain/:format/:title/:revision?', v2, p, routes.v2Get); app.post('/v2/:domain/:format/:title?/:revision?', v2, p, routes.v2Post); - var server = app.listen(port, host, function() { + var server = http.createServer(app); + var listen = Promise.promisify(app.listen, false, app); + return listen(port, host).then(function() { port = server.address().port; - processLogger.log("info", util.format("ready on %s:%s", host || "", port)); + processLogger.log('info', + util.format('ready on %s:%s', host || '', port)); if (process.send) { // let cluster master know we've started & are ready to go. process.send({ type: 'startup', host: host, port: port }); } + return server; }); -} +}); + module.exports = { - ParsoidService: ParsoidService, + parsoidService: parsoidService, }; -- To view, visit https://gerrit.wikimedia.org/r/255314 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3a66b1cb883926cf0d7c75af3e4517c25c0aad4c Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: Arlolra <abrea...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits