@@ -0,0 +1,1298 @@
+import logging%0Aimport sys%0A%0Aimport tornado.ioloop%0Aimport tornado.httpserver%0Aimport tornado.ioloop%0Aimport tornado.web%0A%0Afrom threading import Thread%0Afrom lettuce import before, after, world%0A%0A%0A%0Aclass Server(Thread):%0A    def __init__(self, app):%0A        self.http = tornado.httpserver.HTTPServer(app)%0A        Thread.__init__(self)%0A%0A    def run(self):%0A        logger = logging.getLogger(%22%22)%0A        logger.info(%22Newebe started on port 8888.%22)%0A        try:%0A            self.http.listen(8888)%0A            tornado.ioloop.IOLoop.instance().start()%0A%0A        except KeyboardInterrupt:%0A            self.http.stop()%0A            tornado.ioloop.IOLoop.instance().stop()%0A            print %22%22%0A            logger.info(%22Newebe stopped.%22)%0A%0A@before.all%0Adef run_server():%0A    for i, path in enumerate(sys.path):%0A        if path.endswith('bin'):%0A            del sys.path%5Bi%5D%0A%0A    from newebe.newebe_server import Newebe%0A    app = Newebe()%0A    world.server = Server(app)%0A    try:%0A        world.server.start()%0A        %0A    except KeyboardInterrupt:%0A        world.server.http.stop()%0A        tornado.ioloop.IOLoop.instance().stop()%0A%0A@after.all%0Adef kill_server(total):%0A    logger = logging.getLogger(%22%22)%0A%0A    logger.info(%22Stop server.%22)%0A%0A    world.server.http.stop()%0A    tornado.ioloop.IOLoop.instance().stop()%0A    sys.exit()%0A%0A%0A

add terrain for profile tests