You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by da...@apache.org on 2015/11/30 22:06:32 UTC

[26/98] [abbrv] [partial] incubator-apex-malhar git commit: Removing all web demos

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js b/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js
deleted file mode 100644
index 15ab9ee..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var Store = require('../helpers/store')
-  , http = require('http')
-
-//
-// jsonp is a handy technique for getting around the limitations of the same-origin policy. 
-// (http://en.wikipedia.org/wiki/Same_origin_policy) 
-// 
-// normally, to dynamically update a page you use an XmlHttpRequest. this has flakey support 
-// is some browsers and is restricted by the same origin policy. you cannot perform XHR requests to
-// someone else's server. one way around this would be to proxy requests to all the servers you want
-// to xhr to, and your core server - so that everything has the same port and host.
-// 
-// another way, is to turn json into javascript. (which is exempt from the same origin policy) 
-// this is done by wrapping the json object in a function call, and then including a script tag.
-//
-// here we're proxing our own JSON returning server, but we could proxy any server on the internet,
-// and our client side app would be slurping down JSONP from anywhere.
-// 
-// curl localhost:1337/whatever?callback=alert
-// alert([]) //which is valid javascript!
-//
-// also see http://en.wikipedia.org/wiki/JSONP#JSONP
-//
-
-http.createServer(new Store().handler()).listen(7531)
-
-require('../../lib/node-http-proxy').createServer(
-  require('connect-jsonp')(true),
-  'localhost', 7531
-).listen(1337)

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js b/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js
deleted file mode 100644
index af21236..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-  modifyBody-middleware.js: Example of middleware which modifies response
-
-  Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, Marak Squires, & Dominic Tarr.
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var util = require('util'),
-    colors = require('colors'),
-    http = require('http'),
-    httpProxy = require('../../lib/node-http-proxy');
-
-//
-// Basic Http Proxy Server
-//
-httpProxy.createServer(
-  function (req, res, next) {
-    var _write = res.write;
-
-    res.write = function (data) {
-      _write.call(res, data.toString().replace("Ruby", "nodejitsu"));
-    }
-    next();
-  },
-  9000, 'localhost'
-).listen(8000);
-
-//
-// Target Http Server
-//
-http.createServer(function (req, res) {
-  res.writeHead(200, { 'Content-Type': 'text/plain' });
-  res.end('Hello, I know Ruby\n');
-}).listen(9000);
-
-util.puts('http proxy server'.blue + ' started '.green.bold + 'on port '.blue + '8000'.yellow);
-util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '9000 '.yellow);
-

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js b/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js
deleted file mode 100644
index b4f3045..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-  url-middleware.js: Example of a simple url routing middleware for node-http-proxy
-
-  Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var util = require('util'),
-    colors = require('colors'),
-    http = require('http'),
-    httpProxy = require('../../lib/node-http-proxy');
-
-//
-// Now we set up our proxy.
-//
-httpProxy.createServer(
-  //
-  // This is where our middlewares go, with any options desired - in this case,
-  // the list of routes/URLs and their destinations.
-  //
-  require('proxy-by-url')({
-    '/hello': { port: 9000, host: 'localhost' },
-    '/charlie': { port: 80, host: 'charlieistheman.com' },
-    '/google': { port: 80, host: 'google.com' } 
-  })
-).listen(8000);
-
-//
-// Target Http Server (to listen for requests on 'localhost')
-//
-http.createServer(function (req, res) {
-  res.writeHead(200, { 'Content-Type': 'text/plain' });
-  res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
-  res.end();
-}).listen(9000);
-
-// And finally, some colored startup output.
-util.puts('http proxy server'.blue + ' started '.green.bold + 'on port '.blue + '8000'.yellow);
-util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '9000 '.yellow);

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js b/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js
deleted file mode 100644
index 2c894e1..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var util = require('util'),
-    colors = require('colors'),
-    http = require('http'),
-    httpProxy = require('../../lib/node-http-proxy'),
-    Store = require('../helpers/store') 
-
-http.createServer(new Store().handler()).listen(7531)
-
-// Now we set up our proxy.
-httpProxy.createServer(
-  // This is where our middlewares go, with any options desired - in this case,
-  // the list of routes/URLs and their destinations.
-  require('proxy-by-url')({
-    '/store': { port: 7531, host: 'localhost' },
-    '/': { port: 9000, host: 'localhost' }
-  })
-).listen(8000);
-
-//
-// Target Http Server (to listen for requests on 'localhost')
-//
-http.createServer(function (req, res) {
-  res.writeHead(200, { 'Content-Type': 'text/plain' });
-  res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
-  res.end();
-}).listen(9000);
-
-// And finally, some colored startup output.
-util.puts('http proxy server'.blue + ' started '.green.bold + 'on port '.blue + '8000'.yellow);
-util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '9000 '.yellow);

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/package.json
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/package.json b/web/demos/package/node_modules/http-proxy/examples/package.json
deleted file mode 100644
index ca95fd8..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "name": "http-proxy-examples", 
-  "description": "packages required to run the examples", 
-  "version": "0.0.0",
-  "dependencies": {
-    "connect": "1.6", 
-    "connect-gzip": "0.1",
-    "connect-jsonp": "0.0.5",
-    "connect-restreamer": "1",
-    "proxy-by-url": ">= 0.0.1"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js b/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js
deleted file mode 100644
index 99a0728..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-  standalone-websocket-proxy.js: Example of proxying websockets over HTTP with a standalone HTTP server.
-
-  Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var util = require('util'),
-    http = require('http'),
-    colors = require('colors'),
-    httpProxy = require('../../lib/node-http-proxy');
-
-try {
-  var io = require('socket.io'),
-      client = require('socket.io-client');
-}
-catch (ex) {
-  console.error('Socket.io is required for this example:');
-  console.error('npm ' + 'install'.green);
-  process.exit(1);
-}
-
-//
-// Create the target HTTP server and setup
-// socket.io on it.
-//
-var server = io.listen(8080);
-server.sockets.on('connection', function (client) {
-  util.debug('Got websocket connection');
-
-  client.on('message', function (msg) {
-    util.debug('Got message from client: ' + msg);
-  });
-
-  client.send('from server');
-});
-
-//
-// Setup our server to proxy standard HTTP requests
-//
-var proxy = new httpProxy.HttpProxy({
-  target: {
-    host: 'localhost', 
-    port: 8080
-  }
-});
-
-var proxyServer = http.createServer(function (req, res) {
-  proxy.proxyRequest(req, res);
-});
-
-//
-// Listen to the `upgrade` event and proxy the 
-// WebSocket requests as well.
-//
-proxyServer.on('upgrade', function (req, socket, head) {
-  var buffer = httpProxy.buffer(socket);
-  
-  setTimeout(function () {
-    proxy.proxyWebSocketRequest(req, socket, head, buffer);
-  }, 1000);
-});
-
-proxyServer.listen(8081);
-
-//
-// Setup the socket.io client against our proxy
-//
-var ws = client.connect('ws://localhost:8081');
-
-ws.on('message', function (msg) {
-  util.debug('Got message: ' + msg);
-});

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js b/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js
deleted file mode 100644
index acf43b9..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-  standalone-websocket-proxy.js: Example of proxying websockets over HTTP with a standalone HTTP server.
-
-  Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var util = require('util'),
-    http = require('http'),
-    colors = require('colors'),
-    httpProxy = require('../../lib/node-http-proxy');
-
-try {
-  var io = require('socket.io'),
-      client = require('socket.io-client');
-}
-catch (ex) {
-  console.error('Socket.io is required for this example:');
-  console.error('npm ' + 'install'.green);
-  process.exit(1);
-}
-
-//
-// Create the target HTTP server and setup
-// socket.io on it.
-//
-var server = io.listen(8080);
-server.sockets.on('connection', function (client) {
-  util.debug('Got websocket connection');
-
-  client.on('message', function (msg) {
-    util.debug('Got message from client: ' + msg);
-  });
-
-  client.send('from server');
-});
-
-//
-// Setup our server to proxy standard HTTP requests
-//
-var proxy = new httpProxy.HttpProxy({
-  target: {
-    host: 'localhost', 
-    port: 8080
-  }
-});
-var proxyServer = http.createServer(function (req, res) {
-  proxy.proxyRequest(req, res);
-});
-
-//
-// Listen to the `upgrade` event and proxy the 
-// WebSocket requests as well.
-//
-proxyServer.on('upgrade', function (req, socket, head) {
-  proxy.proxyWebSocketRequest(req, socket, head);
-});
-
-proxyServer.listen(8081);
-
-//
-// Setup the socket.io client against our proxy
-//
-var ws = client.connect('ws://localhost:8081');
-
-ws.on('message', function (msg) {
-  util.debug('Got message: ' + msg);
-});

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js b/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js
deleted file mode 100644
index 4e3cf6f..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-  web-socket-proxy.js: Example of proxying over HTTP and WebSockets.
-
-  Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var util = require('util'),
-    http = require('http'),
-    colors = require('colors'),
-    httpProxy = require('../../lib/node-http-proxy');
-
-try {
-  var io = require('socket.io'),
-      client = require('socket.io-client');
-}
-catch (ex) {
-  console.error('Socket.io is required for this example:');
-  console.error('npm ' + 'install'.green);
-  process.exit(1);
-}
-
-//
-// Create the target HTTP server and setup
-// socket.io on it.
-//
-var server = io.listen(8080);
-server.sockets.on('connection', function (client) {
-  util.debug('Got websocket connection');
-
-  client.on('message', function (msg) {
-    util.debug('Got message from client: ' + msg);
-  });
-
-  client.send('from server');
-});
-
-//
-// Create a proxy server with node-http-proxy
-//
-httpProxy.createServer(8080, 'localhost').listen(8081);
-
-//
-// Setup the socket.io client against our proxy
-//
-var ws = client.connect('ws://localhost:8081');
-
-ws.on('message', function (msg) {
-  util.debug('Got message: ' + msg);
-});

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js
deleted file mode 100644
index b5de6bb..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
-  node-http-proxy.js: http proxy for node.js
-
-  Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Marak Squires, Fedor Indutny
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var util = require('util'),
-    http = require('http'),
-    https = require('https'),
-    events = require('events'),
-    maxSockets = 100;
-
-//
-// Expose version information through `pkginfo`.
-//
-require('pkginfo')(module, 'version');
-
-//
-// ### Export the relevant objects exposed by `node-http-proxy`
-//
-var HttpProxy    = exports.HttpProxy    = require('./node-http-proxy/http-proxy').HttpProxy,
-    ProxyTable   = exports.ProxyTable   = require('./node-http-proxy/proxy-table').ProxyTable,
-    RoutingProxy = exports.RoutingProxy = require('./node-http-proxy/routing-proxy').RoutingProxy;
-
-//
-// ### function createServer ([port, host, options, handler])
-// #### @port {number} **Optional** Port to use on the proxy target host.
-// #### @host {string} **Optional** Host of the proxy target.
-// #### @options {Object} **Optional** Options for the HttpProxy instance used
-// #### @handler {function} **Optional** Request handler for the server
-// Returns a server that manages an instance of HttpProxy. Flexible arguments allow for:
-//
-// * `httpProxy.createServer(9000, 'localhost')`
-// * `httpProxy.createServer(9000, 'localhost', options)
-// * `httpPRoxy.createServer(function (req, res, proxy) { ... })`
-//
-exports.createServer = function () {
-  var args = Array.prototype.slice.call(arguments),
-      handlers = [],
-      callback,
-      options = {},
-      message,
-      handler,
-      server,
-      proxy,
-      host,
-      port;
-
-  //
-  // Liberally parse arguments of the form:
-  //
-  //    httpProxy.createServer('localhost', 9000, callback);
-  //    httpProxy.createServer({ host: 'localhost', port: 9000 }, callback);
-  //    **NEED MORE HERE!!!**
-  //
-  args.forEach(function (arg) {
-    arg = Number(arg) || arg;
-    switch (typeof arg) {
-      case 'string':   host = arg; break;
-      case 'number':   port = arg; break;
-      case 'object':   options = arg || {}; break;
-      case 'function': callback = arg; handlers.push(callback); break;
-    };
-  });
-
-  //
-  // Helper function to create intelligent error message(s)
-  // for the very liberal arguments parsing performed by
-  // `require('http-proxy').createServer()`.
-  //
-  function validArguments() {
-    var conditions = {
-      'port and host': function () {
-        return port && host;
-      },
-      'options.target or options.router': function () {
-        return options && (options.router ||
-          (options.target && options.target.host && options.target.port));
-      },
-      'or proxy handlers': function () {
-        return handlers && handlers.length;
-      }
-    }
-
-    var missing = Object.keys(conditions).filter(function (name) {
-      return !conditions[name]();
-    });
-
-    if (missing.length === 3) {
-      message = 'Cannot proxy without ' + missing.join(', ');
-      return false;
-    }
-
-    return true;
-  }
-
-  if (!validArguments()) {
-    //
-    // If `host`, `port` and `options` are all not passed (with valid
-    // options) then this server is improperly configured.
-    //
-    throw new Error(message);
-    return;
-  }
-
-  //
-  // Hoist up any explicit `host` or `port` arguments
-  // that have been passed in to the options we will
-  // pass to the `httpProxy.HttpProxy` constructor.
-  //
-  options.target      = options.target      || {};
-  options.target.port = options.target.port || port;
-  options.target.host = options.target.host || host;
-
-  if (options.target && options.target.host && options.target.port) {
-    //
-    // If an explicit `host` and `port` combination has been passed
-    // to `.createServer()` then instantiate a hot-path optimized
-    // `HttpProxy` object and add the "proxy" middleware layer.
-    //
-    proxy = new HttpProxy(options);
-    handlers.push(function (req, res) {
-      proxy.proxyRequest(req, res);
-    });
-  }
-  else {
-    //
-    // If no explicit `host` or `port` combination has been passed then
-    // we have to assume that this is a "go-anywhere" Proxy (i.e. a `RoutingProxy`).
-    //
-    proxy = new RoutingProxy(options);
-
-    if (options.router) {
-      //
-      // If a routing table has been supplied than we assume
-      // the user intends us to add the "proxy" middleware layer
-      // for them
-      //
-      handlers.push(function (req, res) {
-        proxy.proxyRequest(req, res);
-      });
-
-      proxy.on('routes', function (routes) {
-        server.emit('routes', routes);
-      });
-    }
-  }
-
-  //
-  // Create the `http[s].Server` instance which will use
-  // an instance of `httpProxy.HttpProxy`.
-  //
-  handler = handlers.length > 1
-    ? exports.stack(handlers, proxy)
-    : function (req, res) { handlers[0](req, res, proxy) };
-
-  server  = options.https
-    ? https.createServer(options.https, handler)
-    : http.createServer(handler);
-
-  server.on('close', function () {
-    proxy.close();
-  });
-
-  if (!callback) {
-    //
-    // If an explicit callback has not been supplied then
-    // automagically proxy the request using the `HttpProxy`
-    // instance we have created.
-    //
-    server.on('upgrade', function (req, socket, head) {
-      proxy.proxyWebSocketRequest(req, socket, head);
-    });
-  }
-
-  //
-  // Set the proxy on the server so it is available
-  // to the consumer of the server
-  //
-  server.proxy = proxy;
-  return server;
-};
-
-//
-// ### function buffer (obj)
-// #### @obj {Object} Object to pause events from
-// Buffer `data` and `end` events from the given `obj`.
-// Consumers of HttpProxy performing async tasks
-// __must__ utilize this utility, to re-emit data once
-// the async operation has completed, otherwise these
-// __events will be lost.__
-//
-//      var buffer = httpProxy.buffer(req);
-//      fs.readFile(path, function () {
-//         httpProxy.proxyRequest(req, res, host, port, buffer);
-//      });
-//
-// __Attribution:__ This approach is based heavily on
-// [Connect](https://github.com/senchalabs/connect/blob/master/lib/utils.js#L157).
-// However, this is not a big leap from the implementation in node-http-proxy < 0.4.0.
-// This simply chooses to manage the scope of the events on a new Object literal as opposed to
-// [on the HttpProxy instance](https://github.com/nodejitsu/node-http-proxy/blob/v0.3.1/lib/node-http-proxy.js#L154).
-//
-exports.buffer = function (obj) {
-  var events = [],
-      onData,
-      onEnd;
-
-  obj.on('data', onData = function (data, encoding) {
-    events.push(['data', data, encoding]);
-  });
-
-  obj.on('end', onEnd = function (data, encoding) {
-    events.push(['end', data, encoding]);
-  });
-
-  return {
-    end: function () {
-      obj.removeListener('data', onData);
-      obj.removeListener('end', onEnd);
-    },
-    destroy: function () {
-      this.end();
-     	this.resume = function () {
-     	  console.error("Cannot resume buffer after destroying it.");
-     	};
-
-     	onData = onEnd = events = obj = null;
-    },
-    resume: function () {
-      this.end();
-      for (var i = 0, len = events.length; i < len; ++i) {
-        obj.emit.apply(obj, events[i]);
-      }
-    }
-  };
-};
-
-//
-// ### function getMaxSockets ()
-// Returns the maximum number of sockets
-// allowed on __every__ outgoing request
-// made by __all__ instances of `HttpProxy`
-//
-exports.getMaxSockets = function () {
-  return maxSockets;
-};
-
-//
-// ### function setMaxSockets ()
-// Sets the maximum number of sockets
-// allowed on __every__ outgoing request
-// made by __all__ instances of `HttpProxy`
-//
-exports.setMaxSockets = function (value) {
-  maxSockets = value;
-};
-
-//
-// ### function stack (middlewares, proxy)
-// #### @middlewares {Array} Array of functions to stack.
-// #### @proxy {HttpProxy|RoutingProxy} Proxy instance to
-// Iteratively build up a single handler to the `http.Server`
-// `request` event (i.e. `function (req, res)`) by wrapping
-// each middleware `layer` into a `child` middleware which
-// is in invoked by the parent (i.e. predecessor in the Array).
-//
-// adapted from https://github.com/creationix/stack
-//
-exports.stack = function stack (middlewares, proxy) {
-  var handle;
-  middlewares.reverse().forEach(function (layer) {
-    var child = handle;
-    handle = function (req, res) {
-      var next = function (err) {
-        if (err) {
-          if (! proxy.emit('middlewareError', err, req, res)) {
-            console.error('Error in middleware(s): %s', err.stack);
-          }
-
-          if (res._headerSent) {
-            res.destroy();
-          }
-          else {
-            res.statusCode = 500;
-            res.setHeader('Content-Type', 'text/plain');
-            res.end('Internal Server Error');
-          }
-
-          return;
-        }
-
-        if (child) {
-          child(req, res);
-        }
-      };
-
-      //
-      // Set the prototype of the `next` function to the instance
-      // of the `proxy` so that in can be used interchangably from
-      // a `connect` style callback and a true `HttpProxy` object.
-      //
-      // e.g. `function (req, res, next)` vs. `function (req, res, proxy)`
-      //
-      next.__proto__ = proxy;
-      layer(req, res, next);
-    };
-  });
-
-  return handle;
-};
-
-//
-// ### function _getAgent (host, port, secure)
-// #### @options {Object} Options to use when creating the agent.
-//
-//    {
-//      host: 'localhost',
-//      port: 9000,
-//      https: true,
-//      maxSockets: 100
-//    }
-//
-// Createsan agent from the `http` or `https` module
-// and sets the `maxSockets` property appropriately.
-//
-exports._getAgent = function _getAgent (options) {
-  if (!options || !options.host) {
-    throw new Error('`options.host` is required to create an Agent.');
-  }
-
-  if (!options.port) {
-    options.port = options.https ? 443 : 80;
-  }
-
-  var Agent = options.https ? https.Agent : http.Agent,
-      agent;
-
-  // require('http-proxy').setMaxSockets() should override http's default
-  // configuration value (which is pretty low).
-  options.maxSockets = options.maxSockets || maxSockets;
-  agent = new Agent(options);
-
-  return agent;
-}
-
-//
-// ### function _getProtocol (options)
-// #### @options {Object} Options for the proxy target.
-// Returns the appropriate node.js core protocol module (i.e. `http` or `https`)
-// based on the `options` supplied.
-//
-exports._getProtocol = function _getProtocol (options) {
-  return options.https ? https : http;
-};
-
-
-//
-// ### function _getBase (options)
-// #### @options {Object} Options for the proxy target.
-// Returns the relevate base object to create on outgoing proxy request.
-// If `options.https` are supplied, this function respond with an object
-// containing the relevant `ca`, `key`, and `cert` properties.
-//
-exports._getBase = function _getBase (options) {
-  var result = function () {};
-
-  if (options.https && typeof options.https === 'object') {
-    ['ca', 'cert', 'key'].forEach(function (key) {
-      if (options.https[key]) {
-        result.prototype[key] = options.https[key];
-      }
-    });
-  }
-
-  return result;
-};

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js
deleted file mode 100644
index 92541ba..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js
+++ /dev/null
@@ -1,983 +0,0 @@
-/*
-  node-http-proxy.js: http proxy for node.js
-
-  Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Marak Squires, Fedor Indutny
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var events = require('events'),
-    http = require('http'),
-    util = require('util'),
-    url = require('url'),
-    httpProxy = require('../node-http-proxy');
-
-//
-// @private {RegExp} extractPort
-// Reusable regular expression for getting the
-// port from a host string.
-//
-var extractPort = /:(\d+)$/;
-
-//
-// ### function HttpProxy (options)
-// #### @options {Object} Options for this instance.
-// Constructor function for new instances of HttpProxy responsible
-// for managing the life-cycle of streaming reverse proxyied HTTP requests.
-//
-// Example options:
-//
-//      {
-//        target: {
-//          host: 'localhost',
-//          port: 9000
-//        },
-//        forward: {
-//          host: 'localhost',
-//          port: 9001
-//        }
-//      }
-//
-var HttpProxy = exports.HttpProxy = function (options) {
-  if (!options || !options.target) {
-    throw new Error('Both `options` and `options.target` are required.');
-  }
-
-  events.EventEmitter.call(this);
-
-  var self  = this;
-
-  //
-  // Setup basic proxying options:
-  //
-  // * forward {Object} Options for a forward-proxy (if-any)
-  // * target {Object} Options for the **sole** proxy target of this instance
-  //
-  this.forward  = options.forward;
-  this.target   = options.target;
-  this.timeout = options.timeout;
-
-  //
-  // Setup the necessary instances instance variables for
-  // the `target` and `forward` `host:port` combinations
-  // used by this instance.
-  //
-  // * agent {http[s].Agent} Agent to be used by this instance.
-  // * protocol {http|https} Core node.js module to make requests with.
-  // * base {Object} Base object to create when proxying containing any https settings.
-  //
-  function setupProxy (key) {
-    self[key].agent    = httpProxy._getAgent(self[key]);
-    self[key].protocol = httpProxy._getProtocol(self[key]);
-    self[key].base     = httpProxy._getBase(self[key]);
-  }
-
-  setupProxy('target');
-  if (this.forward) {
-    setupProxy('forward');
-  }
-
-  //
-  // Setup opt-in features
-  //
-  this.enable          = options.enable || {};
-  this.enable.xforward = typeof this.enable.xforward === 'boolean'
-    ? this.enable.xforward
-    : true;
-
-  // if event listener is set then  use it else unlimited.
-  this.eventListenerCount = typeof options.eventListenerCount === 'number'? options.eventListenerCount : 0 ; 
-
-  //
-  // Setup additional options for WebSocket proxying. When forcing
-  // the WebSocket handshake to change the `sec-websocket-location`
-  // and `sec-websocket-origin` headers `options.source` **MUST**
-  // be provided or the operation will fail with an `origin mismatch`
-  // by definition.
-  //
-  this.source       = options.source       || { host: 'localhost', port: 80 };
-  this.source.https = this.source.https    || options.https;
-  this.changeOrigin = options.changeOrigin || false;
-};
-
-// Inherit from events.EventEmitter
-util.inherits(HttpProxy, events.EventEmitter);
-
-//
-// ### function proxyRequest (req, res, buffer)
-// #### @req {ServerRequest} Incoming HTTP Request to proxy.
-// #### @res {ServerResponse} Outgoing HTTP Request to write proxied data to.
-// #### @buffer {Object} Result from `httpProxy.buffer(req)`
-//
-HttpProxy.prototype.proxyRequest = function (req, res, buffer) {
-  var self = this,
-      errState = false,
-      outgoing = new(this.target.base),
-      reverseProxy,
-      location;
-
-  // If this is a DELETE request then set the "content-length"
-  // header (if it is not already set)
-  if (req.method === 'DELETE') {
-    req.headers['content-length'] = req.headers['content-length'] || '0';
-  }
-
-  //
-  // Add common proxy headers to the request so that they can
-  // be availible to the proxy target server. If the proxy is
-  // part of proxy chain it will append the address:
-  //
-  // * `x-forwarded-for`: IP Address of the original request
-  // * `x-forwarded-proto`: Protocol of the original request
-  // * `x-forwarded-port`: Port of the original request.
-  //
-  if (this.enable.xforward && req.connection && req.socket) {
-    if (req.headers['x-forwarded-for']) {
-      var addressToAppend = "," + req.connection.remoteAddress || req.socket.remoteAddress;
-      req.headers['x-forwarded-for'] += addressToAppend;
-    }
-    else {
-      req.headers['x-forwarded-for'] = req.connection.remoteAddress || req.socket.remoteAddress;
-    }
-
-    if (req.headers['x-forwarded-port']) {
-      var portToAppend = "," + getPortFromHostHeader(req);
-      req.headers['x-forwarded-port'] += portToAppend;
-    }
-    else {
-      req.headers['x-forwarded-port'] = getPortFromHostHeader(req);
-    }
-
-    if (req.headers['x-forwarded-proto']) {
-      var protoToAppend = "," + getProto(req);
-      req.headers['x-forwarded-proto'] += protoToAppend;
-    }
-    else {
-      req.headers['x-forwarded-proto'] = getProto(req);
-    }
-  }
-
-  if (this.timeout) {
-    req.socket.setTimeout(this.timeout);
-  }
-
-  //
-  // Emit the `start` event indicating that we have begun the proxy operation.
-  //
-  this.emit('start', req, res, this.target);
-
-  //
-  // If forwarding is enabled for this instance, foward proxy the
-  // specified request to the address provided in `this.forward`
-  //
-  if (this.forward) {
-    this.emit('forward', req, res, this.forward);
-    this._forwardRequest(req);
-  }
-
-  //
-  // #### function proxyError (err)
-  // #### @err {Error} Error contacting the proxy target
-  // Short-circuits `res` in the event of any error when
-  // contacting the proxy target at `host` / `port`.
-  //
-  function proxyError(err) {
-    errState = true;
-
-    //
-    // Emit an `error` event, allowing the application to use custom
-    // error handling. The error handler should end the response.
-    //
-    if (self.emit('proxyError', err, req, res)) {
-      return;
-    }
-
-    res.writeHead(500, { 'Content-Type': 'text/plain' });
-
-    if (req.method !== 'HEAD') {
-      //
-      // This NODE_ENV=production behavior is mimics Express and
-      // Connect.
-      //
-      if (process.env.NODE_ENV === 'production') {
-        res.write('Internal Server Error');
-      }
-      else {
-        res.write('An error has occurred: ' + JSON.stringify(err));
-      }
-    }
-
-    try { res.end() }
-    catch (ex) { console.error("res.end error: %s", ex.message) }
-  }
-
-  //
-  // Setup outgoing proxy with relevant properties.
-  //
-  outgoing.host       = this.target.host;
-  outgoing.hostname   = this.target.hostname;
-  outgoing.port       = this.target.port;
-  outgoing.socketPath = this.target.socketPath;
-  outgoing.agent      = this.target.agent;
-  outgoing.method     = req.method;
-  outgoing.path       = url.parse(req.url).path;
-  outgoing.headers    = req.headers;
-
-  //
-  // If the changeOrigin option is specified, change the
-  // origin of the host header to the target URL! Please
-  // don't revert this without documenting it!
-  //
-  if (this.changeOrigin) {
-    outgoing.headers.host = this.target.host;
-    // Only add port information to the header if not default port
-    // for this protocol.
-    // See https://github.com/nodejitsu/node-http-proxy/issues/458
-    if (this.target.port !== 443 && this.target.https ||
-        this.target.port !== 80 && !this.target.https) {
-      outgoing.headers.host += ':' + this.target.port;
-    }
-  }
-
-  //
-  // Open new HTTP request to internal resource with will act
-  // as a reverse proxy pass
-  //
-  reverseProxy = this.target.protocol.request(outgoing, function (response) {
-    //
-    // Process the `reverseProxy` `response` when it's received.
-    //
-    if (req.httpVersion === '1.0') {
-      if (req.headers.connection) {
-        response.headers.connection = req.headers.connection
-      } else {
-        response.headers.connection = 'close'
-      }
-    } else if (!response.headers.connection) {
-      if (req.headers.connection) { response.headers.connection = req.headers.connection }
-      else {
-        response.headers.connection = 'keep-alive'
-      }
-    }
-
-    // Remove `Transfer-Encoding` header if client's protocol is HTTP/1.0
-    // or if this is a DELETE request with no content-length header.
-    // See: https://github.com/nodejitsu/node-http-proxy/pull/373
-    if (req.httpVersion === '1.0' || (req.method === 'DELETE'
-      && !req.headers['content-length'])) {
-      delete response.headers['transfer-encoding'];
-    }
-
-    if ((response.statusCode === 301 || response.statusCode === 302)
-      && typeof response.headers.location !== 'undefined') {
-      location = url.parse(response.headers.location);
-      if (location.host === req.headers.host) {
-        if (self.source.https && !self.target.https) {
-          response.headers.location = response.headers.location.replace(/^http\:/, 'https:');
-        }
-        if (self.target.https && !self.source.https) {
-          response.headers.location = response.headers.location.replace(/^https\:/, 'http:');
-        }
-      }
-    }
-
-    //
-    // When the `reverseProxy` `response` ends, end the
-    // corresponding outgoing `res` unless we have entered
-    // an error state. In which case, assume `res.end()` has
-    // already been called and the 'error' event listener
-    // removed.
-    //
-    var ended = false;
-    response.on('close', function () {
-      if (!ended) { response.emit('end') }
-    });
-
-    //
-    // After reading a chunked response, the underlying socket
-    // will hit EOF and emit a 'end' event, which will abort
-    // the request. If the socket was paused at that time,
-    // pending data gets discarded, truncating the response.
-    // This code makes sure that we flush pending data.
-    //
-    response.connection.on('end', function () {
-      if (response.readable && response.resume) {
-        response.resume();
-      }
-    });
-
-    response.on('end', function () {
-      ended = true;
-      if (!errState) {
-        try { res.end() }
-        catch (ex) { console.error("res.end error: %s", ex.message) }
-
-        // Emit the `end` event now that we have completed proxying
-        self.emit('end', req, res, response);
-      }
-    });
-
-    // Allow observer to modify headers or abort response
-    try { self.emit('proxyResponse', req, res, response) }
-    catch (ex) {
-      errState = true;
-      return;
-    }
-
-    // Set the headers of the client response
-    if (res.sentHeaders !== true) {
-      Object.keys(response.headers).forEach(function (key) {
-        res.setHeader(key, response.headers[key]);
-      });
-      res.writeHead(response.statusCode);
-    }
-
-    function ondata(chunk) {
-      if (res.writable) {
-        // Only pause if the underlying buffers are full,
-        // *and* the connection is not in 'closing' state.
-        // Otherwise, the pause will cause pending data to
-        // be discarded and silently lost.
-        if (false === res.write(chunk) && response.pause
-            && response.connection.readable) {
-          response.pause();
-        }
-      }
-    }
-
-    response.on('data', ondata);
-
-    function ondrain() {
-      if (response.readable && response.resume) {
-        response.resume();
-      }
-    }
-
-    res.on('drain', ondrain);
-  });
-
-  // allow unlimited listeners ... 
-  reverseProxy.setMaxListeners(this.eventListenerCount);
-
-  //
-  // Handle 'error' events from the `reverseProxy`. Setup timeout override if needed
-  //
-  reverseProxy.once('error', proxyError);
-
-  // Set a timeout on the socket if `this.timeout` is specified.
-  reverseProxy.once('socket', function (socket) {
-    if (self.timeout) {
-      socket.setTimeout(self.timeout);
-    }
-  });
-
-  //
-  // Handle 'error' events from the `req` (e.g. `Parse Error`).
-  //
-  req.on('error', proxyError);
-
-  //
-  // If `req` is aborted, we abort our `reverseProxy` request as well.
-  //
-  req.on('aborted', function () {
-    reverseProxy.abort();
-  });
-
-  //
-  // For each data `chunk` received from the incoming
-  // `req` write it to the `reverseProxy` request.
-  //
-  req.on('data', function (chunk) {
-    if (!errState) {
-      var flushed = reverseProxy.write(chunk);
-      if (!flushed) {
-        req.pause();
-        reverseProxy.once('drain', function () {
-          try { req.resume() }
-          catch (er) { console.error("req.resume error: %s", er.message) }
-        });
-
-        //
-        // Force the `drain` event in 100ms if it hasn't
-        // happened on its own.
-        //
-        setTimeout(function () {
-          reverseProxy.emit('drain');
-        }, 100);
-      }
-    }
-  });
-
-  //
-  // When the incoming `req` ends, end the corresponding `reverseProxy`
-  // request unless we have entered an error state.
-  //
-  req.on('end', function () {
-    if (!errState) {
-      reverseProxy.end();
-    }
-  });
-
-  //Aborts reverseProxy if client aborts the connection.
-  req.on('close', function () {
-    if (!errState) {
-      reverseProxy.abort();
-    }
-  });
-
-  //
-  // If we have been passed buffered data, resume it.
-  //
-  if (buffer) {
-    return !errState
-      ? buffer.resume()
-      : buffer.destroy();
-  }
-};
-
-//
-// ### function proxyWebSocketRequest (req, socket, head, buffer)
-// #### @req {ServerRequest} Websocket request to proxy.
-// #### @socket {net.Socket} Socket for the underlying HTTP request
-// #### @head {string} Headers for the Websocket request.
-// #### @buffer {Object} Result from `httpProxy.buffer(req)`
-// Performs a WebSocket proxy operation to the location specified by
-// `this.target`.
-//
-HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, upgradeHead, buffer) {
-  var self      = this,
-      outgoing  = new(this.target.base),
-      listeners = {},
-      errState  = false,
-      CRLF      = '\r\n',
-      //copy upgradeHead to avoid retention of large slab buffers used in node core
-      head = new Buffer(upgradeHead.length);
-      upgradeHead.copy(head);
-
-  //
-  // WebSocket requests must have the `GET` method and
-  // the `upgrade:websocket` header
-  //
-  if (req.method !== 'GET' || req.headers.upgrade.toLowerCase() !== 'websocket') {
-    //
-    // This request is not WebSocket request
-    //
-    return socket.destroy();
-  }
-
-  //
-  // Add common proxy headers to the request so that they can
-  // be availible to the proxy target server. If the proxy is
-  // part of proxy chain it will append the address:
-  //
-  // * `x-forwarded-for`: IP Address of the original request
-  // * `x-forwarded-proto`: Protocol of the original request
-  // * `x-forwarded-port`: Port of the original request.
-  //
-  if (this.enable.xforward && req.connection) {
-    if (req.headers['x-forwarded-for']) {
-      var addressToAppend = "," + req.connection.remoteAddress || socket.remoteAddress;
-      req.headers['x-forwarded-for'] += addressToAppend;
-    }
-    else {
-      req.headers['x-forwarded-for'] = req.connection.remoteAddress || socket.remoteAddress;
-    }
-
-    if (req.headers['x-forwarded-port']) {
-      var portToAppend = "," + getPortFromHostHeader(req);
-      req.headers['x-forwarded-port'] += portToAppend;
-    }
-    else {
-      req.headers['x-forwarded-port'] = getPortFromHostHeader(req);
-    }
-
-    if (req.headers['x-forwarded-proto']) {
-      var protoToAppend = "," + (req.connection.pair ? 'wss' : 'ws');
-      req.headers['x-forwarded-proto'] += protoToAppend;
-    }
-    else {
-      req.headers['x-forwarded-proto'] = req.connection.pair ? 'wss' : 'ws';
-    }
-  }
-
-  self.emit('websocket:start', req, socket, head, this.target);
-
-  //
-  // Helper function for setting appropriate socket values:
-  // 1. Turn of all bufferings
-  // 2. For server set KeepAlive
-  //
-  function _socket(socket, keepAlive) {
-    socket.setTimeout(0);
-    socket.setNoDelay(true);
-
-    if (keepAlive) {
-      if (socket.setKeepAlive) {
-        socket.setKeepAlive(true, 0);
-      }
-      else if (socket.pair.cleartext.socket.setKeepAlive) {
-        socket.pair.cleartext.socket.setKeepAlive(true, 0);
-      }
-    }
-  }
-
-  //
-  // Setup the incoming client socket.
-  //
-  _socket(socket, true);
-
-  //
-  // On `upgrade` from the Agent socket, listen to
-  // the appropriate events.
-  //
-  function onUpgrade (reverseProxy, proxySocket) {
-    if (!reverseProxy) {
-      proxySocket.end();
-      socket.end();
-      return;
-    }
-
-    //
-    // Any incoming data on this WebSocket to the proxy target
-    // will be written to the `reverseProxy` socket.
-    //
-    proxySocket.on('data', listeners.onIncoming = function (data) {
-      if (reverseProxy.incoming.socket.writable) {
-        try {
-          self.emit('websocket:outgoing', req, socket, head, data);
-          var flushed = reverseProxy.incoming.socket.write(data);
-          if (!flushed) {
-            proxySocket.pause();
-            reverseProxy.incoming.socket.once('drain', function () {
-              try { proxySocket.resume() }
-              catch (er) { console.error("proxySocket.resume error: %s", er.message) }
-            });
-
-            //
-            // Force the `drain` event in 100ms if it hasn't
-            // happened on its own.
-            //
-            setTimeout(function () {
-              reverseProxy.incoming.socket.emit('drain');
-            }, 100);
-          }
-        }
-        catch (ex) {
-          detach();
-        }
-      }
-    });
-
-    //
-    // Any outgoing data on this Websocket from the proxy target
-    // will be written to the `proxySocket` socket.
-    //
-    reverseProxy.incoming.socket.on('data', listeners.onOutgoing = function (data) {
-      try {
-        self.emit('websocket:incoming', reverseProxy, reverseProxy.incoming, head, data);
-        var flushed = proxySocket.write(data);
-        if (!flushed) {
-          reverseProxy.incoming.socket.pause();
-          proxySocket.once('drain', function () {
-            try { reverseProxy.incoming.socket.resume() }
-            catch (er) { console.error("reverseProxy.incoming.socket.resume error: %s", er.message) }
-          });
-
-          //
-          // Force the `drain` event in 100ms if it hasn't
-          // happened on its own.
-          //
-          setTimeout(function () {
-            proxySocket.emit('drain');
-          }, 100);
-        }
-      }
-      catch (ex) {
-        detach();
-      }
-    });
-
-    //
-    // Helper function to detach all event listeners
-    // from `reverseProxy` and `proxySocket`.
-    //
-    function detach() {
-      proxySocket.destroySoon();
-      proxySocket.removeListener('end', listeners.onIncomingClose);
-      proxySocket.removeListener('data', listeners.onIncoming);
-      reverseProxy.incoming.socket.destroySoon();
-      reverseProxy.incoming.socket.removeListener('end', listeners.onOutgoingClose);
-      reverseProxy.incoming.socket.removeListener('data', listeners.onOutgoing);
-    }
-
-   //
-    // If the incoming `proxySocket` socket closes, then
-    // detach all event listeners.
-    //
-    listeners.onIncomingClose = function () {
-      reverseProxy.incoming.socket.destroy();
-      detach();
-
-      // Emit the `end` event now that we have completed proxying
-      self.emit('websocket:end', req, socket, head);
-    }
-
-    //
-    // If the `reverseProxy` socket closes, then detach all
-    // event listeners.
-    //
-    listeners.onOutgoingClose = function () {
-      proxySocket.destroy();
-      detach();
-    }
-
-    proxySocket.on('end', listeners.onIncomingClose);
-    proxySocket.on('close', listeners.onIncomingClose);
-    reverseProxy.incoming.socket.on('end', listeners.onOutgoingClose);
-    reverseProxy.incoming.socket.on('close', listeners.onOutgoingClose);
-  }
-
-  function getPort (port) {
-    port = port || 80;
-    return port - 80 === 0 ? '' : ':' + port;
-  }
-
-  //
-  // Get the protocol, and host for this request and create an instance
-  // of `http.Agent` or `https.Agent` from the pool managed by `node-http-proxy`.
-  //
-  var agent        = this.target.agent,
-      protocolName = this.target.https ? 'https' : 'http',
-      portUri      = getPort(this.source.port),
-      remoteHost   = this.target.host + portUri;
-
-  //
-  // Change headers (if requested).
-  //
-  if (this.changeOrigin) {
-    req.headers.host   = remoteHost;
-    req.headers.origin = protocolName + '://' + remoteHost;
-  }
-
-  //
-  // Make the outgoing WebSocket request
-  //
-  outgoing.host    = this.target.host;
-  outgoing.port    = this.target.port;
-  outgoing.agent   = agent;
-  outgoing.method  = 'GET';
-  outgoing.path    = req.url;
-  outgoing.headers = req.headers;
-  outgoing.agent   = agent;
-
-  var reverseProxy = this.target.protocol.request(outgoing);
-
-  //
-  // On any errors from the `reverseProxy` emit the
-  // `webSocketProxyError` and close the appropriate
-  // connections.
-  //
-  function proxyError (err) {
-    reverseProxy.destroy();
-
-    process.nextTick(function () {
-      //
-      // Destroy the incoming socket in the next tick, in case the error handler
-      // wants to write to it.
-      //
-      socket.destroy();
-    });
-
-    self.emit('webSocketProxyError', err, req, socket, head);
-  }
-
-  //
-  // Here we set the incoming `req`, `socket` and `head` data to the outgoing
-  // request so that we can reuse this data later on in the closure scope
-  // available to the `upgrade` event. This bookkeeping is not tracked anywhere
-  // in nodejs core and is **very** specific to proxying WebSockets.
-  //
-  reverseProxy.incoming = {
-    request: req,
-    socket: socket,
-    head: head
-  };
-
-  //
-  // Here we set the handshake `headers` and `statusCode` data to the outgoing
-  // request so that we can reuse this data later.
-  //
-  reverseProxy.handshake = {
-    headers: {},
-    statusCode: null,
-  }
-
-  //
-  // If the agent for this particular `host` and `port` combination
-  // is not already listening for the `upgrade` event, then do so once.
-  // This will force us not to disconnect.
-  //
-  // In addition, it's important to note the closure scope here. Since
-  // there is no mapping of the socket to the request bound to it.
-  //
-  reverseProxy.on('upgrade', function (res, remoteSocket, head) {
-    //
-    // Prepare handshake response 'headers' and 'statusCode'.
-    //
-    reverseProxy.handshake = {
-      headers: res.headers,
-      statusCode: res.statusCode,
-    }
-
-    //
-    // Prepare the socket for the reverseProxy request and begin to
-    // stream data between the two sockets. Here it is important to
-    // note that `remoteSocket._httpMessage === reverseProxy`.
-    //
-    _socket(remoteSocket, true);
-    onUpgrade(remoteSocket._httpMessage, remoteSocket);
-  });
-
-  //
-  // If the reverseProxy connection has an underlying socket,
-  // then execute the WebSocket handshake.
-  //
-  reverseProxy.once('socket', function (revSocket) {
-    revSocket.on('data', function handshake (data) {
-      // Set empty headers
-      var headers = '';
-
-      //
-      // If the handshake statusCode 101, concat headers.
-      //
-      if (reverseProxy.handshake.statusCode && reverseProxy.handshake.statusCode == 101) {
-        headers = [
-          'HTTP/1.1 101 Switching Protocols',
-          'Upgrade: websocket',
-          'Connection: Upgrade',
-          'Sec-WebSocket-Accept: ' + reverseProxy.handshake.headers['sec-websocket-accept']
-        ];
-
-        headers = headers.concat('', '').join('\r\n');
-      }
-
-      //
-      // Ok, kind of harmfull part of code. Socket.IO sends a hash
-      // at the end of handshake if protocol === 76, but we need
-      // to replace 'host' and 'origin' in response so we split
-      // data to printable data and to non-printable. (Non-printable
-      // will come after double-CRLF).
-      //
-      var sdata = data.toString();
-
-      // Get the Printable data
-      sdata = sdata.substr(0, sdata.search(CRLF + CRLF));
-
-      // Get the Non-Printable data
-      data = data.slice(Buffer.byteLength(sdata), data.length);
-
-      if (self.source.https && !self.target.https) {
-        //
-        // If the proxy server is running HTTPS but the client is running
-        // HTTP then replace `ws` with `wss` in the data sent back to the client.
-        //
-        sdata = sdata.replace('ws:', 'wss:');
-      }
-
-      try {
-        //
-        // Write the printable and non-printable data to the socket
-        // from the original incoming request.
-        //
-        self.emit('websocket:handshake', req, socket, head, sdata, data);
-        // add headers to the socket
-        socket.write(headers + sdata);
-        var flushed = socket.write(data);
-        if (!flushed) {
-          revSocket.pause();
-          socket.once('drain', function () {
-            try { revSocket.resume() }
-            catch (er) { console.error("reverseProxy.socket.resume error: %s", er.message) }
-          });
-
-          //
-          // Force the `drain` event in 100ms if it hasn't
-          // happened on its own.
-          //
-          setTimeout(function () {
-            socket.emit('drain');
-          }, 100);
-        }
-      }
-      catch (ex) {
-        //
-        // Remove data listener on socket error because the
-        // 'handshake' has failed.
-        //
-        revSocket.removeListener('data', handshake);
-        return proxyError(ex);
-      }
-
-      //
-      // Remove data listener now that the 'handshake' is complete
-      //
-      revSocket.removeListener('data', handshake);
-    });
-  });
-
-  //
-  // Handle 'error' events from the `reverseProxy`.
-  //
-  reverseProxy.on('error', proxyError);
-
-  //
-  // Handle 'error' events from the `req` (e.g. `Parse Error`).
-  //
-  req.on('error', proxyError);
-
-  try {
-    //
-    // Attempt to write the upgrade-head to the reverseProxy
-    // request. This is small, and there's only ever one of
-    // it; no need for pause/resume.
-    //
-    // XXX This is very wrong and should be fixed in node's core
-    //
-    reverseProxy.write(head);
-    if (head && head.length === 0) {
-      reverseProxy._send('');
-    }
-  }
-  catch (ex) {
-    return proxyError(ex);
-  }
-
-  //
-  // If we have been passed buffered data, resume it.
-  //
-  if (buffer) {
-    return !errState
-      ? buffer.resume()
-      : buffer.destroy();
-  }
-};
-
-//
-// ### function close()
-// Closes all sockets associated with the Agents
-// belonging to this instance.
-//
-HttpProxy.prototype.close = function () {
-  [this.forward, this.target].forEach(function (proxy) {
-    if (proxy && proxy.agent) {
-      for (var host in proxy.agent.sockets) {
-        proxy.agent.sockets[host].forEach(function (socket) {
-          socket.end();
-        });
-      }
-    }
-  });
-};
-
-//
-// ### @private function _forwardRequest (req)
-// #### @req {ServerRequest} Incoming HTTP Request to proxy.
-// Forwards the specified `req` to the location specified
-// by `this.forward` ignoring errors and the subsequent response.
-//
-HttpProxy.prototype._forwardRequest = function (req) {
-  var self = this,
-      outgoing = new(this.forward.base),
-      forwardProxy;
-
-  //
-  // Setup outgoing proxy with relevant properties.
-  //
-  outgoing.host    = this.forward.host;
-  outgoing.port    = this.forward.port,
-  outgoing.agent   = this.forward.agent;
-  outgoing.method  = req.method;
-  outgoing.path    = req.url;
-  outgoing.headers = req.headers;
-
-  //
-  // Open new HTTP request to internal resource with will
-  // act as a reverse proxy pass.
-  //
-  forwardProxy = this.forward.protocol.request(outgoing, function (response) {
-    //
-    // Ignore the response from the forward proxy since this is a 'fire-and-forget' proxy.
-    // Remark (indexzero): We will eventually emit a 'forward' event here for performance tuning.
-    //
-  });
-
-  //
-  // Add a listener for the connection timeout event.
-  //
-  // Remark: Ignoring this error in the event
-  //         forward target doesn't exist.
-  //
-  forwardProxy.once('error', function (err) { });
-
-  //
-  // Chunk the client request body as chunks from
-  // the proxied request come in
-  //
-  req.on('data', function (chunk) {
-    var flushed = forwardProxy.write(chunk);
-    if (!flushed) {
-      req.pause();
-      forwardProxy.once('drain', function () {
-        try { req.resume() }
-        catch (er) { console.error("req.resume error: %s", er.message) }
-      });
-
-      //
-      // Force the `drain` event in 100ms if it hasn't
-      // happened on its own.
-      //
-      setTimeout(function () {
-        forwardProxy.emit('drain');
-      }, 100);
-    }
-  });
-
-  //
-  // At the end of the client request, we are going to
-  // stop the proxied request
-  //
-  req.on('end', function () {
-    forwardProxy.end();
-  });
-};
-
-function getPortFromHostHeader(req) {
-  var match;
-  if ((match = extractPort.exec(req.headers.host))) {
-    return parseInt(match[1]);
-  }
-
-  return getProto(req) === 'https' ? 443 : 80;
-}
-
-function getProto(req) {
-  return req.isSpdy ? 'https' : (req.connection.pair ? 'https' : 'http');
-}

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js
deleted file mode 100644
index 320396f..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
-  node-http-proxy.js: Lookup table for proxy targets in node.js
-
-  Copyright (c) 2010 Charlie Robbins
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-var util = require('util'),
-    events = require('events'),
-    fs = require('fs'),
-    url = require('url');
-
-//
-// ### function ProxyTable (router, silent)
-// #### @router {Object} Object containing the host based routes
-// #### @silent {Boolean} Value indicating whether we should suppress logs
-// #### @hostnameOnly {Boolean} Value indicating if we should route based on __hostname string only__
-// #### @pathnameOnly {Boolean} Value indicating if we should route based on only the pathname.  __This causes hostnames to be ignored.__.  Using this along with hostnameOnly wont work at all.
-// Constructor function for the ProxyTable responsible for getting
-// locations of proxy targets based on ServerRequest headers; specifically
-// the HTTP host header.
-//
-var ProxyTable = exports.ProxyTable = function (options) {
-  events.EventEmitter.call(this);
-
-  this.silent       = options.silent || options.silent !== true;
-  this.target       = options.target || {};
-  this.pathnameOnly = options.pathnameOnly === true;
-  this.hostnameOnly = options.hostnameOnly === true;
-
-  if (typeof options.router === 'object') {
-    //
-    // If we are passed an object literal setup
-    // the routes with RegExps from the router
-    //
-    this.setRoutes(options.router);
-  }
-  else if (typeof options.router === 'string') {
-    //
-    // If we are passed a string then assume it is a
-    // file path, parse that file and watch it for changes
-    //
-    var self = this;
-    this.routeFile = options.router;
-    this.setRoutes(JSON.parse(fs.readFileSync(options.router)).router);
-
-    fs.watchFile(this.routeFile, function () {
-      fs.readFile(self.routeFile, function (err, data) {
-        if (err) {
-          self.emit('error', err);
-        }
-
-        self.setRoutes(JSON.parse(data).router);
-        self.emit('routes', self.hostnameOnly === false ? self.routes : self.router);
-      });
-    });
-  }
-  else {
-    throw new Error('Cannot parse router with unknown type: ' + typeof router);
-  }
-};
-
-//
-// Inherit from `events.EventEmitter`
-//
-util.inherits(ProxyTable, events.EventEmitter);
-
-//
-// ### function addRoute (route, target)
-// #### @route {String} String containing route coming in
-// #### @target {String} String containing the target
-// Adds a host-based route to this instance.
-//
-ProxyTable.prototype.addRoute = function (route, target) {
-  if (!this.router) {
-    throw new Error('Cannot update ProxyTable routes without router.');
-  }
-
-  this.router[route] = target;
-  this.setRoutes(this.router);
-};
-
-//
-// ### function removeRoute (route)
-// #### @route {String} String containing route to remove
-// Removes a host-based route from this instance.
-//
-ProxyTable.prototype.removeRoute = function (route) {
-  if (!this.router) {
-    throw new Error('Cannot update ProxyTable routes without router.');
-  }
-
-  delete this.router[route];
-  this.setRoutes(this.router);
-};
-
-//
-// ### function setRoutes (router)
-// #### @router {Object} Object containing the host based routes
-// Sets the host-based routes to be used by this instance.
-//
-ProxyTable.prototype.setRoutes = function (router) {
-  if (!router) {
-    throw new Error('Cannot update ProxyTable routes without router.');
-  }
-
-  var self = this;
-  this.router = router;
-
-  if (this.hostnameOnly === false) {
-    this.routes = [];
-
-    Object.keys(router).forEach(function (path) {
-      if (!/http[s]?/.test(router[path])) {
-        router[path] = (self.target.https ? 'https://' : 'http://')
-          + router[path];
-      }
-
-      var target = url.parse(router[path]),
-          defaultPort = self.target.https ? 443 : 80;
-
-      //
-      // Setup a robust lookup table for the route:
-      //
-      //    {
-      //      source: {
-      //        regexp: /^foo.com/i,
-      //        sref: 'foo.com',
-      //        url: {
-      //          protocol: 'http:',
-      //          slashes: true,
-      //          host: 'foo.com',
-      //          hostname: 'foo.com',
-      //          href: 'http://foo.com/',
-      //          pathname: '/',
-      //          path: '/'
-      //        }
-      //    },
-      //    {
-      //      target: {
-      //        sref: '127.0.0.1:8000/',
-      //        url: {
-      //          protocol: 'http:',
-      //          slashes: true,
-      //          host: '127.0.0.1:8000',
-      //          hostname: '127.0.0.1',
-      //          href: 'http://127.0.0.1:8000/',
-      //          pathname: '/',
-      //          path: '/'
-      //        }
-      //    },
-      //
-      self.routes.push({
-        source: {
-          regexp: new RegExp('^' + path, 'i'),
-          sref: path,
-          url: url.parse('http://' + path)
-        },
-        target: {
-          sref: target.hostname + ':' + (target.port || defaultPort) + target.path,
-          url: target
-        }
-      });
-    });
-  }
-};
-
-//
-// ### function getProxyLocation (req)
-// #### @req {ServerRequest} The incoming server request to get proxy information about.
-// Returns the proxy location based on the HTTP Headers in the  ServerRequest `req`
-// available to this instance.
-//
-ProxyTable.prototype.getProxyLocation = function (req) {
-  if (!req || !req.headers || !req.headers.host) {
-    return null;
-  }
-
-  var targetHost = req.headers.host.split(':')[0];
-  if (this.hostnameOnly === true) {
-    var target = targetHost;
-    if (this.router.hasOwnProperty(target)) {
-      var location = this.router[target].split(':'),
-          host = location[0],
-          port = location.length === 1 ? 80 : location[1];
-
-      return {
-        port: port,
-        host: host
-      };
-    }
-  }
-  else if (this.pathnameOnly === true) {
-    var target = req.url;
-    for (var i in this.routes) {
-      var route = this.routes[i];
-      //
-      // If we are matching pathname only, we remove the matched pattern.
-      //
-      // IE /wiki/heartbeat
-      // is redirected to
-      // /heartbeat
-      //
-      // for the route "/wiki" : "127.0.0.1:8020"
-      //
-      if (target.match(route.source.regexp)) {
-        req.url = url.format(target.replace(route.source.regexp, ''));
-        return {
-          protocol: route.target.url.protocol.replace(':', ''),
-          host: route.target.url.hostname,
-          port: route.target.url.port
-            || (this.target.https ? 443 : 80)
-        };
-      }
-    }
-
-  }
-  else {
-    var target = targetHost + req.url;
-    for (var i in this.routes) {
-      var route = this.routes[i];
-      if (target.match(route.source.regexp)) {
-        //
-        // Attempt to perform any path replacement for differences
-        // between the source path and the target path. This replaces the
-        // path's part of the URL to the target's part of the URL.
-        //
-        // 1. Parse the request URL
-        // 2. Replace any portions of the source path with the target path
-        // 3. Set the request URL to the formatted URL with replacements.
-        //
-        var parsed = url.parse(req.url);
-
-        parsed.pathname = parsed.pathname.replace(
-          route.source.url.pathname,
-          route.target.url.pathname
-        );
-
-        req.url = url.format(parsed);
-
-        return {
-          protocol: route.target.url.protocol.replace(':', ''),
-          host: route.target.url.hostname,
-          port: route.target.url.port
-            || (this.target.https ? 443 : 80)
-        };
-      }
-    }
-  }
-
-  return null;
-};
-
-//
-// ### close function ()
-// Cleans up the event listeneners maintained
-// by this instance.
-//
-ProxyTable.prototype.close = function () {
-  if (typeof this.routeFile === 'string') {
-    fs.unwatchFile(this.routeFile);
-  }
-};

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js
deleted file mode 100644
index b294fb1..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * routing-proxy.js: A routing proxy consuming a RoutingTable and multiple HttpProxy instances
- *
- * (C) 2011 Nodejitsu Inc.
- * MIT LICENCE
- *
- */
-
-var events = require('events'),
-    utile = require('utile'),
-    HttpProxy = require('./http-proxy').HttpProxy,
-    ProxyTable = require('./proxy-table').ProxyTable;
-
-//
-// ### function RoutingProxy (options)
-// #### @options {Object} Options for this instance
-// Constructor function for the RoutingProxy object, a higher level
-// reverse proxy Object which can proxy to multiple hosts and also interface
-// easily with a RoutingTable instance.
-//
-var RoutingProxy = exports.RoutingProxy = function (options) {
-  events.EventEmitter.call(this);
-
-  var self = this;
-  options = options || {};
-
-  if (options.router) {
-    this.proxyTable = new ProxyTable(options);
-    this.proxyTable.on('routes', function (routes) {
-      self.emit('routes', routes);
-    });
-  }
-
-  //
-  // Create a set of `HttpProxy` objects to be used later on calls
-  // to `.proxyRequest()` and `.proxyWebSocketRequest()`.
-  //
-  this.proxies = {};
-
-  //
-  // Setup default target options (such as `https`).
-  //
-  this.target = {};
-  this.target.https = options.target && options.target.https;
-  this.target.maxSockets = options.target && options.target.maxSockets;
-
-  //
-  // Setup other default options to be used for instances of
-  // `HttpProxy` created by this `RoutingProxy` instance.
-  //
-  this.source  = options.source    || { host: 'localhost', port: 8000 };
-  this.https   = this.source.https || options.https;
-  this.enable  = options.enable;
-  this.forward = options.forward;
-  this.changeOrigin = options.changeOrigin || false;
-
-  //
-  // Listen for 'newListener' events so that we can bind 'proxyError'
-  // listeners to each HttpProxy's 'proxyError' event.
-  //
-  this.on('newListener', function (evt) {
-    if (evt === 'proxyError' || evt === 'webSocketProxyError') {
-      Object.keys(self.proxies).forEach(function (key) {
-        self.proxies[key].on(evt, self.emit.bind(self, evt));
-      });
-    }
-  });
-};
-
-
-//
-// Inherit from `events.EventEmitter`.
-//
-utile.inherits(RoutingProxy, events.EventEmitter);
-
-//
-// ### function add (options)
-// #### @options {Object} Options for the `HttpProxy` to add.
-// Adds a new instance of `HttpProxy` to this `RoutingProxy` instance
-// for the specified `options.host` and `options.port`.
-//
-RoutingProxy.prototype.add = function (options) {
-  var self = this,
-      key = this._getKey(options);
-
-  //
-  // TODO: Consume properties in `options` related to the `ProxyTable`.
-  //
-  options.target            = options.target       || {};
-  options.target.host       = options.target.host  || options.host;
-  options.target.port       = options.target.port  || options.port;
-  options.target.socketPath = options.target.socketPath || options.socketPath;
-  options.target.https      = this.target && this.target.https ||
-                              options.target && options.target.https;
-  options.target.maxSockets = this.target && this.target.maxSockets;
-
-  //
-  // Setup options to pass-thru to the new `HttpProxy` instance
-  // for the specified `options.host` and `options.port` pair.
-  //
-  ['https', 'enable', 'forward', 'changeOrigin'].forEach(function (key) {
-    if (options[key] !== false && self[key]) {
-      options[key] = self[key];
-    }
-  });
-
-  this.proxies[key] = new HttpProxy(options);
-
-  if (this.listeners('proxyError').length > 0) {
-    this.proxies[key].on('proxyError', this.emit.bind(this, 'proxyError'));
-  }
-
-  if (this.listeners('webSocketProxyError').length > 0) {
-    this.proxies[key].on('webSocketProxyError', this.emit.bind(this, 'webSocketProxyError'));
-  }
-
-  [
-    'start',
-    'forward',
-    'end',
-    'proxyResponse',
-    'websocket:start',
-    'websocket:end',
-    'websocket:incoming',
-    'websocket:outgoing'
-  ].forEach(function (event) {
-    this.proxies[key].on(event, this.emit.bind(this, event));
-  }, this);
-};
-
-//
-// ### function remove (options)
-// #### @options {Object} Options mapping to the `HttpProxy` to remove.
-// Removes an instance of `HttpProxy` from this `RoutingProxy` instance
-// for the specified `options.host` and `options.port` (if they exist).
-//
-RoutingProxy.prototype.remove = function (options) {
-  var key = this._getKey(options),
-      proxy = this.proxies[key];
-
-  delete this.proxies[key];
-  return proxy;
-};
-
-//
-// ### function close()
-// Cleans up any state left behind (sockets, timeouts, etc)
-// associated with this instance.
-//
-RoutingProxy.prototype.close = function () {
-  var self = this;
-
-  if (this.proxyTable) {
-    //
-    // Close the `RoutingTable` associated with
-    // this instance (if any).
-    //
-    this.proxyTable.close();
-  }
-
-  //
-  // Close all sockets for all `HttpProxy` object(s)
-  // associated with this instance.
-  //
-  Object.keys(this.proxies).forEach(function (key) {
-    self.proxies[key].close();
-  });
-};
-
-//
-// ### function proxyRequest (req, res, [port, host, paused])
-// #### @req {ServerRequest} Incoming HTTP Request to proxy.
-// #### @res {ServerResponse} Outgoing HTTP Request to write proxied data to.
-// #### @options {Object} Options for the outgoing proxy request.
-//
-//     options.port {number} Port to use on the proxy target host.
-//     options.host {string} Host of the proxy target.
-//     options.buffer {Object} Result from `httpProxy.buffer(req)`
-//     options.https {Object|boolean} Settings for https.
-//
-RoutingProxy.prototype.proxyRequest = function (req, res, options) {
-  options = options || {};
-
-  var location;
-
-  //
-  // Check the proxy table for this instance to see if we need
-  // to get the proxy location for the request supplied. We will
-  // always ignore the proxyTable if an explicit `port` and `host`
-  // arguments are supplied to `proxyRequest`.
-  //
-  if (this.proxyTable && !options.host) {
-    location = this.proxyTable.getProxyLocation(req);
-
-    //
-    // If no location is returned from the ProxyTable instance
-    // then respond with `404` since we do not have a valid proxy target.
-    //
-    if (!location) {
-      try {
-        if (!this.emit('notFound', req, res)) {
-          res.writeHead(404);
-          res.end();
-        }
-      }
-      catch (er) {
-        console.error("res.writeHead/res.end error: %s", er.message);
-      }
-
-      return;
-    }
-
-    //
-    // When using the ProxyTable in conjunction with an HttpProxy instance
-    // only the following arguments are valid:
-    //
-    // * `proxy.proxyRequest(req, res, { host: 'localhost' })`: This will be skipped
-    // * `proxy.proxyRequest(req, res, { buffer: buffer })`: Buffer will get updated appropriately
-    // * `proxy.proxyRequest(req, res)`: Options will be assigned appropriately.
-    //
-    options.port = location.port;
-    options.host = location.host;
-  }
-
-  var key = this._getKey(options),
-      proxy;
-
-  if ((this.target && this.target.https)
-    || (location && location.protocol === 'https')) {
-    options.target = options.target || {};
-    options.target.https = true;
-  }
-
-  if (!this.proxies[key]) {
-    this.add(utile.clone(options));
-  }
-
-  proxy = this.proxies[key];
-  proxy.proxyRequest(req, res, options.buffer);
-};
-
-//
-// ### function proxyWebSocketRequest (req, socket, head, options)
-// #### @req {ServerRequest} Websocket request to proxy.
-// #### @socket {net.Socket} Socket for the underlying HTTP request
-// #### @head {string} Headers for the Websocket request.
-// #### @options {Object} Options to use when proxying this request.
-//
-//     options.port {number} Port to use on the proxy target host.
-//     options.host {string} Host of the proxy target.
-//     options.buffer {Object} Result from `httpProxy.buffer(req)`
-//     options.https {Object|boolean} Settings for https.
-//
-RoutingProxy.prototype.proxyWebSocketRequest = function (req, socket, head, options) {
-  options = options || {};
-
-  var location,
-      proxy,
-      key;
-
-  if (this.proxyTable && !options.host) {
-    location = this.proxyTable.getProxyLocation(req);
-
-    if (!location) {
-      return socket.destroy();
-    }
-
-    options.port = location.port;
-    options.host = location.host;
-  }
-
-  key = this._getKey(options);
-
-  if (!this.proxies[key]) {
-    this.add(utile.clone(options));
-  }
-
-  proxy = this.proxies[key];
-  proxy.proxyWebSocketRequest(req, socket, head, options.buffer);
-};
-
-//
-// ### function addHost (host, target)
-// #### @host {String} Host to add to proxyTable
-// #### @target {String} Target to add to proxyTable
-// Adds a host to proxyTable
-//
-RoutingProxy.prototype.addHost = function (host, target) {
-  if (this.proxyTable) {
-    this.proxyTable.addRoute(host, target);
-  }
-};
-
-//
-// ### function removeHost (host)
-// #### @host {String} Host to remove from proxyTable
-// Removes a host to proxyTable
-//
-RoutingProxy.prototype.removeHost = function (host) {
-  if (this.proxyTable) {
-    this.proxyTable.removeRoute(host);
-  }
-};
-
-//
-// ### @private function _getKey (options)
-// #### @options {Object} Options to extract the key from
-// Ensures that the appropriate options are present in the `options`
-// provided and responds with a string key representing the `host`, `port`
-// combination contained within.
-//
-RoutingProxy.prototype._getKey = function (options) {
-  if (!options || ((!options.host || !options.port)
-    && (!options.target || !options.target.host || !options.target.port))) {
-    throw new Error('options.host and options.port or options.target are required.');
-  }
-
-  return [
-    options.host || options.target.host,
-    options.port || options.target.port
-  ].join(':');
-};

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt b/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt
deleted file mode 100644
index 7dca107..0000000
--- a/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2010 
-
-Marak Squires
-Alexis Sellier (cloudhead)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md b/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md
deleted file mode 100644
index 0eda52d..0000000
--- a/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# colors.js - get color and style in your node.js console ( and browser ) like what
-
-<img src="http://i.imgur.com/goJdO.png" border = "0"/>
-
-
-## Installation
-
-    npm install colors
-
-## colors and styles!
-
-- bold
-- italic
-- underline
-- inverse
-- yellow
-- cyan
-- white
-- magenta
-- green
-- red
-- grey
-- blue
-- rainbow
-- zebra
-- random
-
-## Usage
-
-``` js
-var colors = require('./colors');
-
-console.log('hello'.green); // outputs green text
-console.log('i like cake and pies'.underline.red) // outputs red underlined text
-console.log('inverse the color'.inverse); // inverses the color
-console.log('OMG Rainbows!'.rainbow); // rainbow (ignores spaces)
-```
-
-# Creating Custom themes
-
-```js
-
-var colors = require('colors');
-
-colors.setTheme({
-  silly: 'rainbow',
-  input: 'grey',
-  verbose: 'cyan',
-  prompt: 'grey',
-  info: 'green',
-  data: 'grey',
-  help: 'cyan',
-  warn: 'yellow',
-  debug: 'blue',
-  error: 'red'
-});
-
-// outputs red text
-console.log("this is an error".error);
-
-// outputs yellow text
-console.log("this is a warning".warn);
-```
-
-
-### Contributors 
-
-Marak (Marak Squires)
-Alexis Sellier (cloudhead)
-mmalecki (Maciej MaƂecki)
-nicoreed (Nico Reed)
-morganrallen (Morgan Allen)
-JustinCampbell (Justin Campbell)
-ded (Dustin Diaz)
-
-
-####  , Marak Squires , Justin Campbell, Dustin Diaz (@ded)