1 package com.ziesemer.utils.web;
2
3 import java.text.DateFormat;
4 import java.text.SimpleDateFormat;
5 import java.util.TimeZone;
6
7 import org.eclipse.jetty.server.Connector;
8 import org.eclipse.jetty.server.Server;
9 import org.eclipse.jetty.server.nio.AbstractNIOConnector;
10 import org.eclipse.jetty.server.nio.BlockingChannelConnector;
11 import org.eclipse.jetty.servlet.ServletContextHandler;
12 import org.eclipse.jetty.webapp.WebAppContext;
13
14
15
16
17
18 public class ServletTester{
19 protected final Server server;
20 protected final AbstractNIOConnector connector;
21 protected final ServletContextHandler handler;
22 protected final String baseUrl;
23
24
25
26
27 protected final DateFormat rfc1123DateFormat;
28
29 public ServletTester() throws Exception{
30 rfc1123DateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
31 rfc1123DateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
32
33 server = new Server();
34
35
36 connector = new BlockingChannelConnector();
37 connector.setHost("127.0.0.1");
38 server.addConnector(connector);
39 handler = initHandler();
40 server.setHandler(handler);
41 server.start();
42 baseUrl = "http://localhost:" + connector.getLocalPort() + "/";
43 }
44
45 protected ServletContextHandler initHandler(){
46 return new WebAppContext();
47 }
48
49 public Server getServer(){
50 return server;
51 }
52
53 public Connector getConnector(){
54 return connector;
55 }
56
57 public ServletContextHandler getHandler(){
58 return handler;
59 }
60
61 public String getBaseUrl(){
62 return baseUrl;
63 }
64
65 public void close() throws Exception{
66 server.stop();
67 }
68
69
70
71
72 public DateFormat getDateFormat(){
73 return rfc1123DateFormat;
74 }
75 }