From 284164b7a6ed5ed6744f9127b44c3be24230c0d9 Mon Sep 17 00:00:00 2001 From: jprocter Date: Thu, 18 Aug 2005 15:20:05 +0000 Subject: [PATCH] error checking, sanitization and properties support. --- src/jalview/ws/Discoverer.java | 56 ++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/src/jalview/ws/Discoverer.java b/src/jalview/ws/Discoverer.java index 4db5559..66f3f3f 100755 --- a/src/jalview/ws/Discoverer.java +++ b/src/jalview/ws/Discoverer.java @@ -16,6 +16,7 @@ import ext.vamsas.*; import java.util.Vector; import java.util.Hashtable; import java.util.ArrayList; +import java.util.StringTokenizer; public class Discoverer extends Thread implements Runnable @@ -92,7 +93,40 @@ public class Discoverer public static java.util.Hashtable services = null; // vectors of services stored by abstractServiceType string public static java.util.Vector serviceList = null; // flat list of services + static private Vector getDiscoveryURLS() { + Vector urls = new Vector(); + String RootServiceURLs = jalview.bin.Cache.getDefault("DISCOVERY_URLS", + "http://www.compbio.dundee.ac.uk/JalviewWS/services/ServiceRegistry"); + try{ + StringTokenizer st = new StringTokenizer(RootServiceURLs, ","); + while (st.hasMoreElements()) + { + String url = null; + try + { + java.net.URL u = new java.net.URL(url = st.nextToken()); + if (!urls.contains(u)) + urls.add(u); + else + jalview.bin.Jalview.log.info("Ignoring duplicate url in DISCOVERY_URLS list"); + } + catch (Exception ex) + { + jalview.bin.Jalview.log.warn( + "Problem whilst trying to make a URL from '" + + ( (url != null) ? url : "")+"'"); + jalview.bin.Jalview.log.warn("This was probably due to a malformed comma separated list" + +" in the DISCOVERY_URLS entry of $(HOME)/.jalview_properties)"); + jalview.bin.Jalview.log.debug("Exception was ",ex); + } + } + }catch(Exception ex) + {jalview.bin.Jalview.log.warn("Error parsing comma separated list of urls in DISCOVERY_URLS.",ex);} + if (urls.size()>0) + return urls; + return null; + } static { @@ -101,16 +135,7 @@ public class Discoverer reallyDiscoverServices = jalview.bin.Cache.getDefault("DISCOVERY_START", false); if (reallyDiscoverServices) { - RootServiceURL = new java.net.URL( - "http://webservices.compbio.dundee.ac.uk:8080/jalTestWS/services/ServiceRegistry"); - if (ServiceURLList == null) - { - ServiceURLList = new Vector(); - } - if (!ServiceURLList.contains(RootServiceURL)) - { - ServiceURLList.add(RootServiceURL); - } + ServiceURLList = getDiscoveryURLS(); } else { @@ -166,9 +191,9 @@ public class Discoverer } catch (Exception e) { - System.err.println("failed to locate Services through URL : " + - location + "\n"); - e.printStackTrace(); + jalview.bin.Jalview.log.debug("No Discovery service at " + + location); + jalview.bin.Jalview.log.debug(e); } if ( (shs != null) && shs.getServices().length > 0) @@ -253,6 +278,11 @@ public class Discoverer { buildServiceLists(sh, cat, sscat); + } else { + jalview.bin.Jalview.log.warn( + "No services at " + +((java.net.URL) ServiceURLList.get(s_url)) + +" - check DISCOVERY_URLS property in .jalview_properties"); } s_url++; } -- 1.7.10.2