X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJws2Discoverer.java;h=12a08a0e0e547b8ca59f49e2223e829084881e7b;hb=136c0793b90b72b928c4d77dc109dd5c644e00d3;hp=dbcecec707b4801ee7cc653c95a32f4a23d7b49f;hpb=ab43013b7e357b84b4abade0dba949668dfb2a0e;p=jalview.git diff --git a/src/jalview/ws/jws2/Jws2Discoverer.java b/src/jalview/ws/jws2/Jws2Discoverer.java index dbcecec..12a08a0 100644 --- a/src/jalview/ws/jws2/Jws2Discoverer.java +++ b/src/jalview/ws/jws2/Jws2Discoverer.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -67,7 +67,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI /* * the .jalview_properties entry for JWS2 URLS */ - final static String JWS2HOSTURLS = "JWS2HOSTURLS"; + private final static String JWS2HOSTURLS = "JWS2HOSTURLS"; /* * Singleton instance @@ -85,12 +85,17 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI private PropertyChangeSupport changeSupport = new PropertyChangeSupport( this); - Vector invalidServiceUrls = null, urlsWithoutServices = null, - validServiceUrls = null; + private Vector invalidServiceUrls = null; - boolean running = false, aborted = false; + private Vector urlsWithoutServices = null; - Thread oldthread = null; + private Vector validServiceUrls = null; + + private volatile boolean running = false; + + private volatile boolean aborted = false; + + private Thread oldthread = null; /** * holds list of services. @@ -143,8 +148,9 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI public void setAborted(boolean aborted) { this.aborted = aborted; - } + + @Override public void run() { @@ -166,20 +172,21 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI { } } + aborted = false; Cache.log.debug("Old discovery thread has finished."); } running = true; // first set up exclusion list if needed final Set ignoredServices = new HashSet(); - for (String ignored : Cache.getDefault( - "IGNORED_JABAWS_SERVICETYPES", "") - .split("\\|")) + for (String ignored : Cache.getDefault("IGNORED_JABAWS_SERVICETYPES", + "").split("\\|")) { ignoredServices.add(ignored); } - changeSupport.firePropertyChange("services", services, new Vector()); + changeSupport.firePropertyChange("services", services, + new Vector()); oldthread = Thread.currentThread(); try { @@ -263,7 +270,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI if (!aborted) { // resort services according to order found in jabaws service list - // also ensure servics for each host are ordered in same way. + // also ensure services for each host are ordered in same way. if (services != null && services.size() > 0) { @@ -290,7 +297,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI } oldthread = null; running = false; - changeSupport.firePropertyChange("services", new Vector(), services); + changeSupport.firePropertyChange("services", + new Vector(), services); } /** @@ -321,7 +329,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI service.hasParameters(); if (validServiceUrls == null) { - validServiceUrls = new Vector(); + validServiceUrls = new Vector(); } validServiceUrls.add(jwsservers); } @@ -330,6 +338,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI * attach all available web services to the appropriate submenu in the given * JMenu */ + @Override public void attachWSMenuEntry(JMenu wsmenu, final AlignFrame alignFrame) { // dynamically regenerate service list. @@ -348,8 +357,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI { return; } - boolean byhost = Cache.getDefault("WSMENU_BYHOST", false), bytype = Cache - .getDefault("WSMENU_BYTYPE", false); + /** * eventually, JWS2 services will appear under the same align/etc submenus. * for moment we keep them separate. @@ -419,15 +427,16 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI Desktop.showUrl(service.getHost()); } }); - hitm.setToolTipText(JvSwingUtils - .wrapTooltip(false, MessageManager.getString("label.open_jabaws_web_page "))); + hitm.setToolTipText(JvSwingUtils.wrapTooltip(false, + MessageManager.getString("label.open_jabaws_web_page"))); service.attachWSMenuEntry(atpoint, alignFrame); if (alternates.containsKey(service.serviceType)) { - atpoint.add(hitm = new JMenu(MessageManager.getString("label.switch_server"))); - hitm.setToolTipText(JvSwingUtils - .wrapTooltip(false, MessageManager.getString("label.choose_jabaws_server"))); + atpoint.add(hitm = new JMenu(MessageManager + .getString("label.switch_server"))); + hitm.setToolTipText(JvSwingUtils.wrapTooltip(false, + MessageManager.getString("label.choose_jabaws_server"))); for (final Jws2Instance sv : alternates.get(service.serviceType)) { JMenuItem itm; @@ -441,27 +450,19 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI { new Thread(new Runnable() { + @Override public void run() { setPreferredServiceFor(alignFrame, sv.serviceType, sv.action, sv); changeSupport.firePropertyChange("services", - new Vector(), services); + new Vector(), services); }; }).start(); } }); } - /* - * hitm.addActionListener(new ActionListener() { - * - * @Override public void actionPerformed(ActionEvent arg0) { new - * Thread(new Runnable() { - * - * @Override public void run() { new SetPreferredServer(alignFrame, - * service.serviceType, service.action); } }).start(); } }); - */ } } } @@ -480,7 +481,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI * for moment we keep them separate. */ JMenu atpoint; - MsaWSClient msacl = new MsaWSClient(); + List hostLabels = new ArrayList(); Hashtable lasthostFor = new Hashtable(); Hashtable> hosts = new Hashtable>(); @@ -516,7 +517,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI atpoint = JvSwingUtils.findOrCreateMenu(atpoint, host); if (atpoint.getToolTipText() == null) { - atpoint.setToolTipText(MessageManager.formatMessage("label.services_at", new String[]{host})); + atpoint.setToolTipText(MessageManager.formatMessage( + "label.services_at", new String[] { host })); } } if (bytype) @@ -560,8 +562,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI Desktop.showUrl(service.getHost()); } }); - hitm.setToolTipText(JvSwingUtils - .wrapTooltip(true, MessageManager.getString("label.open_jabaws_web_page"))); + hitm.setToolTipText(JvSwingUtils.wrapTooltip(true, + MessageManager.getString("label.open_jabaws_web_page"))); lasthostFor.put(service.action, host); } hostLabels.add(host + service.serviceType @@ -588,6 +590,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { if (getDiscoverer().services != null) @@ -710,9 +713,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI } } catch (MalformedURLException ex) { - Cache.log - .warn("Problem whilst trying to make a URL from '" - + ((url != null) ? url : "") + "'"); + Cache.log.warn("Problem whilst trying to make a URL from '" + + ((url != null) ? url : "") + "'"); Cache.log .warn("This was probably due to a malformed comma separated list" + " in the " @@ -723,9 +725,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI } } catch (Exception ex) { - Cache.log.warn( - "Error parsing comma separated list of urls in " - + JWS2HOSTURLS + " preference.", ex); + Cache.log.warn("Error parsing comma separated list of urls in " + + JWS2HOSTURLS + " preference.", ex); } return urls; } @@ -746,8 +747,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI { try { - compbio.ws.client.WSTester.main(new String[] - { "-h=" + foo.toString() }); + compbio.ws.client.WSTester + .main(new String[] { "-h=" + foo.toString() }); } catch (Exception e) { e.printStackTrace(); @@ -765,6 +766,22 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI return true; } + public boolean restart() + { + synchronized (this) + { + if (running) + { + aborted = true; + } + else + { + running = true; + } + return aborted; + } + } + /** * Start a fresh discovery thread and notify the given object when we're * finished. Any known existing threads will be killed before this one is @@ -775,6 +792,16 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI */ public Thread startDiscoverer(PropertyChangeListener changeSupport2) { + /* if (restart()) + { + return; + } + else + { + Thread thr = new Thread(this); + thr.start(); + } + */ if (isRunning()) { setAborted(true); @@ -853,7 +880,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI if (getInvalidServiceUrls() != null && getInvalidServiceUrls().size() > 0) { - ermsg.append("URLs that could not be contacted: \n"); + ermsg.append(MessageManager.getString("warn.urls_not_contacted") + + ": \n"); for (String svcurl : getInvalidServiceUrls()) { if (list) @@ -869,7 +897,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI if (getUrlsWithoutServices() != null && getUrlsWithoutServices().size() > 0) { - ermsg.append("URLs without any JABA Services : \n"); + ermsg.append(MessageManager.getString("warn.urls_no_jaba") + ": \n"); for (String svcurl : getUrlsWithoutServices()) { if (list)