X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2FDiscoverer.java;h=a7f139f7262329a1d5bff31d8aa139ab29b5fc3e;hb=7e129811d6ff01074428462284dffc2a6c2395a4;hp=40d29e7ffc9739704dc4b71d5920295bffa7991d;hpb=ae0f884be559f2f706945b379d110e9c60642364;p=jalview.git diff --git a/src/jalview/ws/Discoverer.java b/src/jalview/ws/Discoverer.java index 40d29e7..a7f139f 100755 --- a/src/jalview/ws/Discoverer.java +++ b/src/jalview/ws/Discoverer.java @@ -1,3 +1,21 @@ +/* +* Jalview - A Sequence Alignment Editor and Viewer +* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +*/ package jalview.ws; /** @@ -16,6 +34,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 +111,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 +153,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 { @@ -137,7 +180,7 @@ public class Discoverer "Cuff J. A and Barton G.J (1999) Application of enhanced " + "multiple sequence alignment profiles to improve protein secondary structure prediction, " + "Proteins 40:502-511", - "http://www.compbio.dundee.ac.uk/JalviewWS/services/jpred","JPred Secondary Structure Prediction" + "http://www.compbio.dundee.ac.uk/JalviewWS/services/jpred","JNet Secondary Structure Prediction" )}; services = new Hashtable(); serviceList = new Vector(); @@ -166,9 +209,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 +296,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++; }