JAL-3851 API handling of rest calls
[jalview.git] / src / jalview / bin / Jalview.java
index 4c21624..3810d3f 100755 (executable)
@@ -27,6 +27,7 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
+import java.net.BindException;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -54,6 +55,7 @@ import jalview.ext.so.SequenceOntology;
 import jalview.gui.AlignFrame;
 import jalview.gui.Desktop;
 import jalview.gui.PromptUserConfig;
+import jalview.httpserver.HttpServer;
 import jalview.io.AppletFormatAdapter;
 import jalview.io.BioJsHTMLOutput;
 import jalview.io.DataSourceType;
@@ -66,6 +68,7 @@ import jalview.io.HtmlSvgOutput;
 import jalview.io.IdentifyFile;
 import jalview.io.NewickFile;
 import jalview.io.gff.SequenceOntologyFactory;
+import jalview.rest.API;
 import jalview.schemes.ColourSchemeI;
 import jalview.schemes.ColourSchemeProperty;
 import jalview.util.ChannelProperties;
@@ -475,6 +478,36 @@ public class Jalview
       }
     }
 
+    // set the jetty port if suggested
+    String sPort = aparser.getValue("serverport");
+    if (sPort != null)
+    {
+      int port = 0;
+      try
+      {
+        port = Integer.parseInt(sPort);
+        HttpServer.setSuggestedPort(port);
+        Cache.info("Set suggested server port to " + port);
+      } catch (NumberFormatException e)
+      {
+        Cache.warn("server_port '" + sPort + "' not parseable as Integer");
+      }
+    }
+    // Start a TestListener
+    if (aparser.contains("genomeapi"))
+    {
+      try
+      {
+        API gb = API.getInstance();
+        Cache.info(gb.getName() + " started at "
+                + HttpServer.getInstance().getUri().toString());
+      } catch (BindException e)
+      {
+        Cache.warn("Could not open a genomeapi");
+        Cache.error(e);
+      }
+    }
+
     // Move any new getdown-launcher-new.jar into place over old
     // getdown-launcher.jar
     String appdirString = System.getProperty("getdownappdir");