JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git] / src / jalview / ws / jws1 / Discoverer.java
index bee9fad..74263b1 100644 (file)
@@ -20,6 +20,8 @@
  */
 package jalview.ws.jws1;
 
+import jalview.bin.ApplicationSingletonProvider;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
 import jalview.gui.JvOptionPane;
 import jalview.util.MessageManager;
 
@@ -34,9 +36,36 @@ import ext.vamsas.RegistryServiceSoapBindingStub;
 import ext.vamsas.ServiceHandle;
 import ext.vamsas.ServiceHandles;
 
-public class Discoverer implements Runnable
+public class Discoverer implements Runnable, ApplicationSingletonI
 {
-  ext.vamsas.IRegistry registry; // the root registry service.
+
+  public static Discoverer getInstance()
+  {
+    return (Discoverer) ApplicationSingletonProvider.getInstance(Discoverer.class);
+  }
+
+  private Discoverer()
+  {
+    // use getInstance()
+  }
+
+  private java.net.URL RootServiceURL = null;
+
+  private Vector<URL> ServiceURLList = null;
+
+  private boolean reallyDiscoverServices = true;
+
+  private Hashtable<String, Vector<ServiceHandle>> services = null;
+
+  public Hashtable<String, Vector<ServiceHandle>> getServices()
+  {
+    return services;
+  }
+
+  private Vector<ServiceHandle> serviceList = null;
+
+  // private ext.vamsas.IRegistry registry; // the root registry service.
+
 
   private java.beans.PropertyChangeSupport changeSupport = new java.beans.PropertyChangeSupport(
           this);
@@ -110,19 +139,6 @@ public class Discoverer implements Runnable
     return server;
   }
 
-  static private java.net.URL RootServiceURL = null;
-
-  static public Vector<URL> ServiceURLList = null;
-
-  static private boolean reallyDiscoverServices = true;
-
-  public static java.util.Hashtable<String, Vector<ServiceHandle>> services = null;
-  // stored by
-  // abstractServiceType
-  // string
-
-  public static java.util.Vector<ServiceHandle> serviceList = null;
-
   static private Vector<URL> getDiscoveryURLS()
   {
     Vector<URL> urls = new Vector<>();
@@ -178,18 +194,19 @@ public class Discoverer implements Runnable
   {
     jalview.bin.Cache.log
             .debug("(Re)-Initialising the discovery URL list.");
+    Discoverer d = getInstance();
     try
     {
-      reallyDiscoverServices = jalview.bin.Cache
+      d.reallyDiscoverServices = jalview.bin.Cache
               .getDefault("DISCOVERY_START", false);
-      if (reallyDiscoverServices)
+      if (d.reallyDiscoverServices)
       {
-        ServiceURLList = getDiscoveryURLS();
+        d.ServiceURLList = getDiscoveryURLS();
       }
       else
       {
         jalview.bin.Cache.log.debug("Setting default services");
-        services = new Hashtable<>();
+        d.services = new Hashtable<>();
         // Muscle, Clustal and JPred.
         ServiceHandle[] defServices = { new ServiceHandle("MsaWS",
                 "Edgar, Robert C. (2004), MUSCLE: multiple sequence alignment "
@@ -217,16 +234,16 @@ public class Discoverer implements Runnable
                             + "\ndoi://10.1093/nar/gkv332",
                     "http://www.compbio.dundee.ac.uk/JalviewWS/services/jpred",
                     "JPred Secondary Structure Prediction") };
-        services = new Hashtable<>();
-        serviceList = new Vector<>();
-        buildServiceLists(defServices, serviceList, services);
+        d.services = new Hashtable<>();
+        d.serviceList = new Vector<>();
+        buildServiceLists(defServices, d.serviceList, d.services);
       }
 
     } catch (Exception e)
     {
       System.err.println(
               "jalview.rootRegistry is not a proper url!\nWas set to "
-                      + RootServiceURL + "\n" + e);
+                      + d.RootServiceURL + "\n" + e);
     }
 
   }
@@ -246,9 +263,9 @@ public class Discoverer implements Runnable
       // JBPNote - should do this a better way!
       if (f.getFaultReason().indexOf("(407)") > -1)
       {
-        if (jalview.gui.Desktop.desktop != null)
+        if (jalview.gui.Desktop.getDesktopPane() != null)
         {
-          JvOptionPane.showMessageDialog(jalview.gui.Desktop.desktop,
+          JvOptionPane.showMessageDialog(jalview.gui.Desktop.getDesktopPane(),
                   MessageManager.getString("label.set_proxy_settings"),
                   MessageManager
                           .getString("label.proxy_authorization_failed"),
@@ -307,17 +324,18 @@ public class Discoverer implements Runnable
         cat.add(sh[i]);
         if (sh[i].getAbstractName().equals("Registry"))
         {
-          for (int s = 0, sUrls = ServiceURLList.size(); s < sUrls; s++)
+          Vector<URL> list = getInstance().ServiceURLList;
+          for (int s = 0, sUrls = list.size(); s < sUrls; s++)
           {
             java.net.URL disc_serv = null;
             try
             {
               disc_serv = new java.net.URL(sh[i].getEndpointURL());
-              if (!ServiceURLList.contains(disc_serv))
+              if (!list.contains(disc_serv))
               {
                 jalview.bin.Cache.log.debug(
                         "Adding new discovery service at " + disc_serv);
-                ServiceURLList.add(disc_serv);
+                list.add(disc_serv);
                 seenNewDiscovery = true;
               }
             } catch (Exception e)