From b0569609d29217887d55803368abeb9a1f71a70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Tue, 28 Feb 2012 17:24:27 +0100 Subject: Begin support for TJWS. Add TjwsServerContainer. Rename Jetty specific containers. --- .../com/orbekk/same/http/JettyServerBuilder.java | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 same/src/main/java/com/orbekk/same/http/JettyServerBuilder.java (limited to 'same/src/main/java/com/orbekk/same/http/JettyServerBuilder.java') diff --git a/same/src/main/java/com/orbekk/same/http/JettyServerBuilder.java b/same/src/main/java/com/orbekk/same/http/JettyServerBuilder.java new file mode 100644 index 0000000..91d2725 --- /dev/null +++ b/same/src/main/java/com/orbekk/same/http/JettyServerBuilder.java @@ -0,0 +1,48 @@ +package com.orbekk.same.http; + +import javax.servlet.http.HttpServlet; + +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.googlecode.jsonrpc4j.JsonRpcServer; + +public class JettyServerBuilder { + Logger logger = LoggerFactory.getLogger(getClass()); + int port; + ServletContextHandler context = null; + + public JettyServerBuilder(int port) { + this.port = port; + } + + public JettyServerBuilder withServlet(HttpServlet servlet, String pathSpec) { + logger.info("Servlet binding: {} → {}", pathSpec, servlet); + getServletContextHandler().addServlet(new ServletHolder(servlet), + pathSpec); + return this; + } + + public JettyServerBuilder withService(T service, Class clazz) { + JsonRpcServer server = new JsonRpcServer(service, clazz); + String pathSpec = "/" + clazz.getSimpleName() + ".json"; + return withServlet(new RpcServlet(server), pathSpec); + } + + public JettyServerContainer build() { + JettyServerContainer server = JettyServerContainer.create(port); + server.setReuseAddress(true); + server.setContext(getServletContextHandler()); + return server; + } + + private ServletContextHandler getServletContextHandler() { + if (context == null) { + context = new ServletContextHandler(); + context.setContextPath("/"); + } + return context; + } +} -- cgit v1.2.3