*/
package jalview.ws.jws1;
+import jalview.bin.ApplicationSingletonProvider;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
import jalview.gui.JvOptionPane;
import jalview.util.MessageManager;
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);
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<>();
{
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 "
- + "with high accuracy and high throughput, Nucleic Acids Research 32(5), 1792-97.",
- "http://www.compbio.dundee.ac.uk/JalviewWS/services/MuscleWS",
- MessageManager.getString(
- "label.muscle_multiple_protein_sequence_alignment")),
- new ServiceHandle("MsaWS",
- "Katoh, K., K. Kuma, K., Toh, H., and Miyata, T. (2005) "
- + "\"MAFFT version 5: improvement in accuracy of multiple sequence alignment.\""
- + " Nucleic Acids Research, 33 511-518",
- "http://www.compbio.dundee.ac.uk/JalviewWS/services/MafftWS",
- MessageManager.getString(
- "label.mafft_multiple_sequence_alignment")),
- new ServiceHandle("MsaWS",
- "Thompson, J.D., Higgins, D.G. and Gibson, T.J. (1994) CLUSTAL W: improving the sensitivity of progressive multiple"
- + " sequence alignment through sequence weighting, position specific gap penalties and weight matrix choice."
- + " Nucleic Acids Research, 22 4673-4680",
- "http://www.compbio.dundee.ac.uk/JalviewWS/services/ClustalWS",
- MessageManager.getString(
- "label.clustalw_multiple_sequence_alignment")),
- new ServiceHandle("SecStrPred",
- "Drozdetskiy A, Cole C, Procter J & Barton GJ. (2015)\nJPred4: a protein secondary structure prediction server"
- + "\nNucleic Acids Research, Web Server issue (first published 15th April 2015)"
- + "\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);
+ ServiceHandle[] defServices = new ServiceHandle[0];
+ try
+ {
+ // BH 2020.03.18 issue with applet branch Module problem.
+ defServices = new ServiceHandle[] { new ServiceHandle("MsaWS",
+ "Edgar, Robert C. (2004), MUSCLE: multiple sequence alignment "
+ + "with high accuracy and high throughput, Nucleic Acids Research 32(5), 1792-97.",
+ "http://www.compbio.dundee.ac.uk/JalviewWS/services/MuscleWS",
+ MessageManager.getString(
+ "label.muscle_multiple_protein_sequence_alignment")),
+ new ServiceHandle("MsaWS",
+ "Katoh, K., K. Kuma, K., Toh, H., and Miyata, T. (2005) "
+ + "\"MAFFT version 5: improvement in accuracy of multiple sequence alignment.\""
+ + " Nucleic Acids Research, 33 511-518",
+ "http://www.compbio.dundee.ac.uk/JalviewWS/services/MafftWS",
+ MessageManager.getString(
+ "label.mafft_multiple_sequence_alignment")),
+ new ServiceHandle("MsaWS",
+ "Thompson, J.D., Higgins, D.G. and Gibson, T.J. (1994) CLUSTAL W: improving the sensitivity of progressive multiple"
+ + " sequence alignment through sequence weighting, position specific gap penalties and weight matrix choice."
+ + " Nucleic Acids Research, 22 4673-4680",
+ "http://www.compbio.dundee.ac.uk/JalviewWS/services/ClustalWS",
+ MessageManager.getString(
+ "label.clustalw_multiple_sequence_alignment")),
+ new ServiceHandle("SecStrPred",
+ "Drozdetskiy A, Cole C, Procter J & Barton GJ. (2015)\nJPred4: a protein secondary structure prediction server"
+ + "\nNucleic Acids Research, Web Server issue (first published 15th April 2015)"
+ + "\ndoi://10.1093/nar/gkv332",
+ "http://www.compbio.dundee.ac.uk/JalviewWS/services/jpred",
+ "JPred Secondary Structure Prediction") };
+ } catch (Throwable e)
+ {
+
+ }
+ 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);
}
}
// 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"),
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)