summaryrefslogtreecommitdiff
path: root/api/src/main/java/mancala/App.java
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/main/java/mancala/App.java')
-rw-r--r--api/src/main/java/mancala/App.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/api/src/main/java/mancala/App.java b/api/src/main/java/mancala/App.java
new file mode 100644
index 0000000..062e8e1
--- /dev/null
+++ b/api/src/main/java/mancala/App.java
@@ -0,0 +1,48 @@
+package mancala;
+
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.*;
+import org.eclipse.jetty.webapp.*;
+import org.eclipse.jetty.servlet.ServletHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.glassfish.jersey.servlet.ServletContainer;
+
+import mancala.api.*;
+
+public class App {
+ public static void main(String[] args) throws Exception {
+ Server server = startServer(8080);
+ ServletContextHandler context = createStatefulContext(server);
+ registerServlets(context);
+
+ server.start();
+ System.out.println("Started server.");
+ System.out.println("Listening on http://localhost:8080/");
+ System.out.println("Press CTRL+C to exit.");
+ server.join();
+ }
+
+ private static Server startServer(int port) {
+ return new Server(8080);
+ }
+
+ private static ServletContextHandler createStatefulContext(Server server) {
+ ServletContextHandler context =
+ new ServletContextHandler(ServletContextHandler.SESSIONS);
+ context.setContextPath("/");
+ server.setHandler(context);
+ }
+
+ private static void registerServlets(ServletContextHandler context) {
+ // Use the Jersey framework to translate the classes in the
+ // mancala.api package to server endpoints (servlets).
+ // For example, the StartMancala class will become an endpoint at
+ // http://localost:8080/start
+ ServletHolder serverHolder = context.addServlet(ServletContainer.class, "/mancala/api/*");
+ serverHolder.setInitOrder(1);
+ serverHolder.setInitParameter("jersey.config.server.provider.packages",
+ "mancala.api");
+ }
+}