]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | /* |
2 | * Licensed to the Apache Software Foundation (ASF) under one | |
3 | * or more contributor license agreements. See the NOTICE file | |
4 | * distributed with this work for additional information | |
5 | * regarding copyright ownership. The ASF licenses this file | |
6 | * to you under the Apache License, Version 2.0 (the | |
7 | * "License"); you may not use this file except in compliance | |
8 | * with the License. You may obtain a copy of the License at | |
9 | * | |
10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
11 | * | |
12 | * Unless required by applicable law or agreed to in writing, | |
13 | * software distributed under the License is distributed on an | |
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
15 | * KIND, either express or implied. See the License for the | |
16 | * specific language governing permissions and limitations | |
17 | * under the License. | |
18 | */ | |
19 | ||
20 | //This HTTP server is designed to server the test.html browser | |
21 | // based JavaScript test page (which must be in the current directory). | |
22 | // This server also supplies the Thrift based test service, which depends | |
23 | // on the standard ThriftTest.thrift IDL service (which must be compiled | |
24 | // for Node and browser based JavaScript in ./gen-nodejs and ./gen-js | |
25 | // respectively). The current directory must also include the browser | |
26 | // support libraries for test.html (jquery.js, qunit.js and qunit.css | |
27 | // in ./build/js/lib). | |
28 | ||
29 | const fs = require('fs'); | |
30 | const thrift = require('../../nodejs/lib/thrift'); | |
31 | const es6Mode = process.argv.includes('--es6'); | |
32 | const genFolder = es6Mode ? 'gen-nodejs-es6' : 'gen-nodejs'; | |
33 | const ThriftTestSvc = require(`./${genFolder}/ThriftTest.js`); | |
34 | const ThriftTestHandler = require('./test_handler').ThriftTestHandler; | |
35 | ||
36 | //Setup the I/O stack options for the ThriftTest service | |
37 | const ThriftTestSvcOpt = { | |
38 | transport: thrift.TBufferedTransport, | |
39 | protocol: thrift.TJSONProtocol, | |
40 | processor: ThriftTestSvc, | |
41 | handler: ThriftTestHandler | |
42 | }; | |
43 | ||
44 | const ThriftWebServerOptions = { | |
45 | files: __dirname, | |
46 | tls: { | |
47 | key: fs.readFileSync('../../../test/keys/server.key'), | |
48 | cert: fs.readFileSync('../../../test/keys/server.crt') | |
49 | }, | |
50 | services: { | |
51 | '/service': ThriftTestSvcOpt | |
52 | } | |
53 | }; | |
54 | ||
55 | const server = thrift.createWebServer(ThriftWebServerOptions); | |
56 | const port = es6Mode ? 8090 : 8091; | |
57 | server.listen(port); | |
58 | console.log(`Serving files from: ${__dirname}`); | |
59 | console.log(`Http/Thrift Server (ES6 mode ${es6Mode}) running on port: ${port}`); |