diff options
Diffstat (limited to 'infrastructure/ace/bin/serve')
-rwxr-xr-x | infrastructure/ace/bin/serve | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/infrastructure/ace/bin/serve b/infrastructure/ace/bin/serve new file mode 100755 index 0000000..e02e042 --- /dev/null +++ b/infrastructure/ace/bin/serve @@ -0,0 +1,45 @@ +#!/bin/bash +scala -nocompdaemon -Dlog4j.mortbay.loglevel=WARN -classpath lib/jetty-6.1.7.jar:lib/jetty-util-6.1.7.jar:lib/servlet-api-2.5-6.1.3.jar $0 $@ & +exit +!# + +import org.mortbay.jetty.Server; +import org.mortbay.jetty.servlet.Context; +import org.mortbay.jetty.servlet.ServletHolder; +import org.mortbay.jetty.servlet.DefaultServlet; +import javax.servlet.http.{HttpServletRequest, HttpServletResponse}; + +object NonCachingDefaultServlet extends DefaultServlet() { + + private def setHeaders(response:HttpServletResponse) { + response.setHeader("Cache-Control","no-cache"); // for HTTP 1.1 + response.setHeader("Pragma","no-cache"); //for HTTP 1.0 + response.setDateHeader ("Expires", 0); //for proxy server + response.setHeader("Cache-Control","no-store"); //HTTP 1.1 + } + + override def doGet(request:HttpServletRequest, response:HttpServletResponse) { + setHeaders(response); + super.doGet(request, response); + } + + override def doHead(request:HttpServletRequest, response:HttpServletResponse) { + setHeaders(response); + super.doHead(request, response); + } +} + +val port = if (args.length >= 1) args(0).toInt else 80; +val dir = if (args.length >= 2) args(1) else "www"; + +val server = new Server(port); + +val context = new Context(server, "/", Context.SESSIONS); +context.setResourceBase(dir+"/"); +context.addServlet(new ServletHolder(NonCachingDefaultServlet), "/"); +context.setWelcomeFiles(Array[String]("index.html")); + +println("pid: "+java.lang.management.ManagementFactory.getRuntimeMXBean.getName.split("@")(0)); + +server.start(); +server.join(); |