Java libraries for Thrift

Summary: The basic Thrift stack implemented in Java, still in need of a lot of work but fully functional.

Reviewed By: aditya

Test Plan: Unit tests are the NEXT checkin, I swear

Notes: Perf on the Java stuff actually isn't that bad, and it's far from optimized at the moment. Barely any tweaking has been done. Testing shows that a Java server with the C++ client has RPC performance within 2x of the pure C++ implementations. This is pretty sweet, since this cost will be eclipsed by the cost of whatever processing is being done on an actual server doing real work.




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664715 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/java/src/server/TServer.java b/lib/java/src/server/TServer.java
new file mode 100644
index 0000000..38ef81f
--- /dev/null
+++ b/lib/java/src/server/TServer.java
@@ -0,0 +1,38 @@
+package com.facebook.thrift.server;
+
+import com.facebook.thrift.TProcessor;
+
+/**
+ * Generic interface for a Thrift server.
+ *
+ * @author Mark Slee <mcslee@facebook.com>
+ */
+public abstract class TServer {
+
+  /**
+   * The options class should be subclassed by particular servers which have
+   * specific options needs, while the general options should live here.
+   */
+  public static class Options {
+    public Options() {}
+  }
+
+  /** Core processor */
+  protected TProcessor processor_;
+
+  /** Server options */
+  protected Options options_;
+
+  /**
+   * Default constructor, all servers take a processor and some options.
+   */
+  protected TServer(TProcessor processor, Options options) {
+    processor_ = processor;
+    options_ = options;
+  }
+  
+  /**
+   * The run method fires up the server and gets things going.
+   */
+  public abstract void run();
+}