aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/infrastructure/ace/bin/serve
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/infrastructure/ace/bin/serve')
-rwxr-xr-xtrunk/infrastructure/ace/bin/serve45
1 files changed, 45 insertions, 0 deletions
diff --git a/trunk/infrastructure/ace/bin/serve b/trunk/infrastructure/ace/bin/serve
new file mode 100755
index 0000000..e02e042
--- /dev/null
+++ b/trunk/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();