aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/infrastructure/ace/bin/serve
blob: e02e04233bb751b93b6e454f5a53ae8e54375c39 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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();