1 package ch.qos.logback.access.sift;
2
3 import java.io.IOException;
4 import java.io.OutputStream;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import org.mortbay.jetty.Handler;
11 import org.mortbay.jetty.HttpConnection;
12 import org.mortbay.jetty.Request;
13 import org.mortbay.jetty.handler.AbstractHandler;
14 import org.mortbay.util.ByteArrayISO8859Writer;
15
16 import ch.qos.logback.access.jetty.JettyFixtureBase;
17 import ch.qos.logback.access.jetty.RequestLogImpl;
18
19 public class JettyFixture extends JettyFixtureBase {
20
21 Handler handler = new BasicHandler();
22
23 public JettyFixture(RequestLogImpl impl, int port) {
24 super(impl, port);
25 }
26
27 @Override
28 protected void buildContext() {
29 requestLogImpl.start();
30 }
31
32 @Override
33 protected Handler getHandler() {
34 return handler;
35 }
36
37 class BasicHandler extends AbstractHandler {
38 public void handle(String target, HttpServletRequest request,
39 HttpServletResponse response, int dispatch) throws IOException,
40 ServletException {
41
42
43
44
45 OutputStream out = response.getOutputStream();
46 ByteArrayISO8859Writer writer = new ByteArrayISO8859Writer();
47 writer.write("hello world");
48 writer.flush();
49 response.setContentLength(writer.size());
50 writer.writeTo(out);
51 out.flush();
52
53 Request base_request = (request instanceof Request) ? (Request) request
54 : HttpConnection.getCurrentConnection().getRequest();
55 base_request.setHandled(true);
56
57 }
58 }
59 }