Jalview-JS/JAL-3253-applet adds AlignFrameI empty interface to allow
[jalview.git] / src / jalview / httpserver / HttpServer.java
index 58e792d..8cb1846 100644 (file)
@@ -20,7 +20,8 @@
  */
 package jalview.httpserver;
 
-import jalview.bin.Jalview;
+import jalview.bin.ApplicationSingletonProvider;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
 import jalview.rest.RestHandler;
 
 import java.net.BindException;
@@ -50,13 +51,8 @@ import org.eclipse.jetty.util.thread.QueuedThreadPool;
  * @author gmcarstairs
  * @see http://eclipse.org/jetty/documentation/current/embedding-jetty.html
  */
-public class HttpServer
+public class HttpServer implements ApplicationSingletonI
 {
-  /*
-   * 'context root' - actually just prefixed to the path for each handler for
-   * now - see registerHandler
-   */
-  private static final String JALVIEW_PATH = "jalview";
 
   /**
    * Returns the singleton instance of this class.
@@ -68,12 +64,34 @@ public class HttpServer
   {
     synchronized (HttpServer.class)
     {
-      Jalview j = Jalview.getInstance();
-      return (j.httpServer == null ? j.httpServer = new HttpServer()
-              : j.httpServer);
+      return (HttpServer) ApplicationSingletonProvider.getInstance(HttpServer.class);
     }
   }
 
+  /**
+   * Private constructor to enforce use of singleton; use getInstance().
+   * 
+   * @throws BindException
+   *           if no free port can be assigned
+   */
+  private HttpServer() throws BindException
+  {
+    // use getInstance()
+
+    startServer();
+
+    /*
+     * Provides a REST server by default; add more programmatically as required
+     */
+    registerHandler(RestHandler.getInstance());
+  }
+
+  /*
+   * 'context root' - actually just prefixed to the path for each handler for
+   * now - see registerHandler
+   */
+  private static final String JALVIEW_PATH = "jalview";
+
   /*
    * The Http server
    */
@@ -95,22 +113,6 @@ public class HttpServer
   private URI contextRoot;
 
   /**
-   * Private constructor to enforce use of singleton
-   * 
-   * @throws BindException
-   *           if no free port can be assigned
-   */
-  private HttpServer() throws BindException
-  {
-    startServer();
-
-    /*
-     * Provides a REST server by default; add more programmatically as required
-     */
-    registerHandler(RestHandler.getInstance());
-  }
-
-  /**
    * Start the http server
    * 
    * @throws BindException