X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws1%2FDiscoverer.java;h=9a6c4455ac2ad60132bab3288f84ed4d9a494e58;hb=586ade46bdcd05ff028a1cff82c3c527326d28ec;hp=7ab8117c2ba8ed0ceb68d05b05305b7d2d7da19f;hpb=2facc0e2aee62c60c28cc59277805194b306f6f9;p=jalview.git diff --git a/src/jalview/ws/jws1/Discoverer.java b/src/jalview/ws/jws1/Discoverer.java index 7ab8117..9a6c445 100644 --- a/src/jalview/ws/jws1/Discoverer.java +++ b/src/jalview/ws/jws1/Discoverer.java @@ -20,9 +20,6 @@ */ package jalview.ws.jws1; -import jalview.gui.JvOptionPane; -import jalview.util.MessageManager; - import java.net.URL; import java.util.Hashtable; import java.util.StringTokenizer; @@ -33,9 +30,25 @@ import ext.vamsas.IRegistryServiceLocator; import ext.vamsas.RegistryServiceSoapBindingStub; import ext.vamsas.ServiceHandle; import ext.vamsas.ServiceHandles; +import jalview.bin.Cache; +import jalview.bin.ApplicationSingletonProvider; +import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI; +import jalview.gui.JvOptionPane; +import jalview.util.MessageManager; -public class Discoverer implements Runnable +public class Discoverer implements Runnable, ApplicationSingletonI { + + public static Discoverer getInstance() + { + return (Discoverer) ApplicationSingletonProvider.getInstance(Discoverer.class); + } + + private Discoverer() + { + // use getInstance() + } + ext.vamsas.IRegistry registry; // the root registry service. private java.beans.PropertyChangeSupport changeSupport = new java.beans.PropertyChangeSupport( @@ -110,20 +123,24 @@ public class Discoverer implements Runnable return server; } - static private java.net.URL RootServiceURL = null; + private java.net.URL RootServiceURL = null; - static public Vector ServiceURLList = null; + private Vector ServiceURLList = null; - static private boolean reallyDiscoverServices = true; + public Vector getServiceURLList() { + return ServiceURLList; + } + + private boolean reallyDiscoverServices = true; - public static java.util.Hashtable> services = null; + private java.util.Hashtable> services = null; // stored by // abstractServiceType // string - public static java.util.Vector serviceList = null; + public java.util.Vector serviceList = null; - static private Vector getDiscoveryURLS() + private Vector getDiscoveryURLS() { Vector urls = new Vector<>(); String RootServiceURLs = jalview.bin.Cache.getDefault("DISCOVERY_URLS", @@ -176,10 +193,16 @@ public class Discoverer implements Runnable */ static public void doDiscovery() { + getInstance().discovery(); + } + + private void discovery() + { jalview.bin.Cache.log .debug("(Re)-Initialising the discovery URL list."); try { + Discoverer d = getInstance(); reallyDiscoverServices = jalview.bin.Cache .getDefault("DISCOVERY_START", false); if (reallyDiscoverServices) @@ -246,9 +269,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"), @@ -284,7 +307,7 @@ public class Discoverer implements Runnable * Hashtable * @return boolean */ - static private boolean buildServiceLists(ServiceHandle[] sh, + private boolean buildServiceLists(ServiceHandle[] sh, Vector cat, Hashtable> sscat) { @@ -379,6 +402,7 @@ public class Discoverer implements Runnable @Override public void run() { + Cache.log.info("Discovering jws1 services"); Discoverer.doDiscovery(); discoverServices(); } @@ -386,10 +410,32 @@ public class Discoverer implements Runnable /** * binding service abstract name to handler class */ - private static Hashtable serviceClientBindings; + private Hashtable serviceClientBindings; public static WS1Client getServiceClient(ServiceHandle sh) { + return getInstance().getClient(sh); + } + + /** + * notes on discovery service 1. need to allow multiple discovery source urls. + * 2. user interface to add/control list of urls in preferences notes on + * wsclient discovery 1. need a classpath property with list of additional + * plugin directories 2. optional config to cite specific bindings between + * class name and Abstract service name. 3. precedence for automatic discovery + * by using getAbstractName for WSClient - user added plugins override default + * plugins ? notes on wsclient gui code for gui attachment now moved to + * wsclient implementation. Needs more abstraction but approach seems to work. + * is it possible to 'generalise' the data retrieval calls further ? current + * methods are very specific (gatherForMSA or gatherForSeqOrMsaSecStrPred), + * new methods for conservation (group or alignment), treecalc (aligned + * profile), seqannot (sequences selected from dataset, annotation back to + * dataset). + * + */ + + private WS1Client getClient(ServiceHandle sh) + { if (serviceClientBindings == null) { // get a list from Config or create below @@ -412,20 +458,9 @@ public class Discoverer implements Runnable } return instance; } - /** - * notes on discovery service 1. need to allow multiple discovery source urls. - * 2. user interface to add/control list of urls in preferences notes on - * wsclient discovery 1. need a classpath property with list of additional - * plugin directories 2. optional config to cite specific bindings between - * class name and Abstract service name. 3. precedence for automatic discovery - * by using getAbstractName for WSClient - user added plugins override default - * plugins ? notes on wsclient gui code for gui attachment now moved to - * wsclient implementation. Needs more abstraction but approach seems to work. - * is it possible to 'generalise' the data retrieval calls further ? current - * methods are very specific (gatherForMSA or gatherForSeqOrMsaSecStrPred), - * new methods for conservation (group or alignment), treecalc (aligned - * profile), seqannot (sequences selected from dataset, annotation back to - * dataset). - * - */ + + public static Hashtable> getServices() + { + return getInstance().services; + } }