*/
package jalview.httpserver;
+import jalview.bin.ApplicationSingletonProvider;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
import jalview.rest.RestHandler;
import java.net.BindException;
* @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
private static final String JALVIEW_PATH = "jalview";
/*
- * Singleton instance of this server
- */
- private static HttpServer instance;
-
- /*
* The Http server
*/
private Server server;
/*
* Lookup of ContextHandler by its wrapped handler
*/
- Map<Handler, ContextHandler> myHandlers = new HashMap<Handler, ContextHandler>();
+ Map<Handler, ContextHandler> myHandlers = new HashMap<>();
/*
* The context root for the server
{
synchronized (HttpServer.class)
{
- if (instance == null)
- {
- instance = new HttpServer();
- }
- return instance;
+ return (HttpServer) ApplicationSingletonProvider.getInstance(HttpServer.class);
}
}
/**
- * Private constructor to enforce use of singleton
+ * 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();
/*