blob: 5d5d34c9aef4928f94ffb276aafff6d40d00fc4e (
plain)
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
46
47
48
49
50
|
package com.orbekk.same.http;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.handler.ContextHandler.Context;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.googlecode.jsonrpc4j.JsonRpcServer;
import com.orbekk.paxos.PaxosService;
import com.orbekk.same.ClientService;
import com.orbekk.same.MasterService;
public class HandlerFactory {
Logger logger = LoggerFactory.getLogger(getClass());
public Handler createServletHandler() {
logger.info("Creating servlet handler.");
ServletContextHandler context = new ServletContextHandler(
ServletContextHandler.SESSIONS);
context.setContextPath("/*");
context.addServlet(new ServletHolder(new StateServlet()), "/*");
return context;
}
public RpcHandler createRpcHandler(MasterService master,
ClientService client, PaxosService paxos) {
RpcHandler rpcHandler = new RpcHandler(null);
rpcHandler.addRpcServer("/MasterService.json",
new JsonRpcServer(master, MasterService.class));
rpcHandler.addRpcServer("/ClientService.json",
new JsonRpcServer(client, ClientService.class));
rpcHandler.addRpcServer("/PaxosService.json",
new JsonRpcServer(paxos, PaxosService.class));
return rpcHandler;
}
public Handler createMainHandler(RpcHandler rpcHandler,
Handler servletHandler) {
HandlerList handler = new HandlerList();
handler.addHandler(rpcHandler);
handler.addHandler(servletHandler);
return handler;
}
}
|