From 669c6735bcdae65e15938b82ddf7e2944bf9755f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= <kjetil.orbekk@gmail.com>
Date: Tue, 28 Feb 2012 17:40:52 +0100
Subject: Extract ServerContainer interface.

---
 same/src/main/java/com/orbekk/same/TjwsApp.java        | 12 ++++++++----
 .../com/orbekk/same/http/JettyServerContainer.java     |  2 +-
 .../java/com/orbekk/same/http/ServerContainer.java     |  8 ++++++++
 .../java/com/orbekk/same/http/TjwsServerBuilder.java   |  2 +-
 .../java/com/orbekk/same/http/TjwsServerContainer.java | 18 +++++++++++++++++-
 5 files changed, 35 insertions(+), 7 deletions(-)
 create mode 100644 same/src/main/java/com/orbekk/same/http/ServerContainer.java

(limited to 'same/src/main/java/com')

diff --git a/same/src/main/java/com/orbekk/same/TjwsApp.java b/same/src/main/java/com/orbekk/same/TjwsApp.java
index b06322b..c3f1a78 100644
--- a/same/src/main/java/com/orbekk/same/TjwsApp.java
+++ b/same/src/main/java/com/orbekk/same/TjwsApp.java
@@ -1,15 +1,19 @@
 package com.orbekk.same;
 
 import com.orbekk.same.http.HelloServlet;
+import com.orbekk.same.http.ServerContainer;
 import com.orbekk.same.http.TjwsServerBuilder;
-import com.orbekk.same.http.TjwsServerContainer;
 
 public class TjwsApp {
     public static void main(String[] args) {
-        TjwsServerContainer server = new TjwsServerBuilder(8080)
+        ServerContainer server = new TjwsServerBuilder(8080)
                 .withServlet(new HelloServlet(), "/hello")
                 .build();
-        server.start();
-        server.join();
+        try {
+            server.start();
+            server.join();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 }
diff --git a/same/src/main/java/com/orbekk/same/http/JettyServerContainer.java b/same/src/main/java/com/orbekk/same/http/JettyServerContainer.java
index 34db226..c15d94d 100644
--- a/same/src/main/java/com/orbekk/same/http/JettyServerContainer.java
+++ b/same/src/main/java/com/orbekk/same/http/JettyServerContainer.java
@@ -7,7 +7,7 @@ import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class JettyServerContainer {
+public class JettyServerContainer implements ServerContainer {
     Logger logger = LoggerFactory.getLogger(getClass());
     Server server;
     int port;
diff --git a/same/src/main/java/com/orbekk/same/http/ServerContainer.java b/same/src/main/java/com/orbekk/same/http/ServerContainer.java
new file mode 100644
index 0000000..6f87910
--- /dev/null
+++ b/same/src/main/java/com/orbekk/same/http/ServerContainer.java
@@ -0,0 +1,8 @@
+package com.orbekk.same.http;
+
+public interface ServerContainer {
+    public abstract int getPort();
+    public abstract void start() throws Exception;
+    public abstract void stop() throws Exception;
+    public abstract void join() throws Exception;
+}
\ No newline at end of file
diff --git a/same/src/main/java/com/orbekk/same/http/TjwsServerBuilder.java b/same/src/main/java/com/orbekk/same/http/TjwsServerBuilder.java
index c0aed5a..7a07dbd 100644
--- a/same/src/main/java/com/orbekk/same/http/TjwsServerBuilder.java
+++ b/same/src/main/java/com/orbekk/same/http/TjwsServerBuilder.java
@@ -29,7 +29,7 @@ public class TjwsServerBuilder {
         return withServlet(new RpcServlet(server), pathSpec);
     }
     
-    public TjwsServerContainer build() {
+    public ServerContainer build() {
         TjwsServerContainer server = TjwsServerContainer.create(port);
         for (int i = 0; i < servletPaths.size(); i++) {
             String path = servletPaths.get(i);
diff --git a/same/src/main/java/com/orbekk/same/http/TjwsServerContainer.java b/same/src/main/java/com/orbekk/same/http/TjwsServerContainer.java
index a38cfac..ec2f2a2 100644
--- a/same/src/main/java/com/orbekk/same/http/TjwsServerContainer.java
+++ b/same/src/main/java/com/orbekk/same/http/TjwsServerContainer.java
@@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory;
 
 import Acme.Serve.Serve;
 
-public class TjwsServerContainer {
+public class TjwsServerContainer implements ServerContainer {
     private static class MyServer extends Serve {
         public void join() {
             try {
@@ -31,18 +31,34 @@ public class TjwsServerContainer {
         this.server = server;
     }
     
+    /* (non-Javadoc)
+     * @see com.orbekk.same.http.ServerContainer#getPort()
+     */
+    @Override
     public int getPort() {
         return (Integer)this.server.getAttribute(Serve.ARG_PORT);
     }
     
+    /* (non-Javadoc)
+     * @see com.orbekk.same.http.ServerContainer#start()
+     */
+    @Override
     public void start() {
         server.runInBackground();
     }
     
+    /* (non-Javadoc)
+     * @see com.orbekk.same.http.ServerContainer#stop()
+     */
+    @Override
     public void stop() {
         server.stopBackground();
     }
     
+    /* (non-Javadoc)
+     * @see com.orbekk.same.http.ServerContainer#join()
+     */
+    @Override
     public void join() {
         server.join();
     }
-- 
cgit v1.2.3