From: kiramt Date: Fri, 24 Mar 2017 09:44:01 +0000 (+0000) Subject: Merge remote-tracking branch 'origin/develop' into bug/JAL-2314 X-Git-Tag: Release_2_10_2~3^2~141 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=8f9537bd5d7f4455c6309569e2ca260463b7d2e4;hp=e48d34b3938b4ac05a3dcaf3ab29e6317080f229;p=jalview.git Merge remote-tracking branch 'origin/develop' into bug/JAL-2314 --- diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index dc16a57..7d0eb7f 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -2854,13 +2854,8 @@ public class Desktop extends jalview.jbgui.GDesktop implements if (Cache.getDefault("SHOW_JWS2_SERVICES", true)) { - if (jalview.ws.jws2.Jws2Discoverer.getDiscoverer().isRunning()) - { - jalview.ws.jws2.Jws2Discoverer.getDiscoverer().setAborted(true); - } t2 = jalview.ws.jws2.Jws2Discoverer.getDiscoverer().startDiscoverer( changeSupport); - } Thread t3 = null; { diff --git a/src/jalview/ws/jws2/Jws2Discoverer.java b/src/jalview/ws/jws2/Jws2Discoverer.java index 1b2c708..12a08a0 100644 --- a/src/jalview/ws/jws2/Jws2Discoverer.java +++ b/src/jalview/ws/jws2/Jws2Discoverer.java @@ -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,9 +148,9 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI public void setAborted(boolean aborted) { this.aborted = aborted; - } + @Override public void run() { @@ -167,6 +172,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI { } } + aborted = false; Cache.log.debug("Old discovery thread has finished."); } running = true; @@ -179,7 +185,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI 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. @@ -442,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(); } }); - */ } } } @@ -481,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>(); @@ -590,6 +590,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { if (getDiscoverer().services != null) @@ -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); diff --git a/test/jalview/ws/jabaws/DisorderAnnotExportImport.java b/test/jalview/ws/jabaws/DisorderAnnotExportImport.java index 2d317e4..2714d6c 100644 --- a/test/jalview/ws/jabaws/DisorderAnnotExportImport.java +++ b/test/jalview/ws/jabaws/DisorderAnnotExportImport.java @@ -44,7 +44,11 @@ import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -@Test(groups = { "External" }) +/* + * All methods in this class are set to the Network group because setUpBeforeClass will fail + * if there is no network. + */ +@Test(singleThreaded = true) public class DisorderAnnotExportImport { @@ -65,12 +69,19 @@ public class DisorderAnnotExportImport public static jalview.gui.AlignFrame af = null; - @BeforeClass(inheritGroups = true) + @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { Cache.loadProperties("test/jalview/io/testProps.jvprops"); Cache.initLogger(); disc = JalviewJabawsTestUtils.getJabawsDiscoverer(); + + while (disc.isRunning()) + { + // don't get services until discoverer has finished + Thread.sleep(100); + } + iupreds = new ArrayList(); for (Jws2Instance svc : disc.getServices()) { @@ -100,7 +111,7 @@ public class DisorderAnnotExportImport /** * test for patches to JAL-1294 */ - @Test + @Test(groups = { "External", "Network" }) public void testDisorderAnnotExport() { disorderClient = new AADisorderClient(iupreds.get(0), af, null, null); diff --git a/test/jalview/ws/jabaws/RNAStructExportImport.java b/test/jalview/ws/jabaws/RNAStructExportImport.java index f1430f6..23c7751 100644 --- a/test/jalview/ws/jabaws/RNAStructExportImport.java +++ b/test/jalview/ws/jabaws/RNAStructExportImport.java @@ -55,6 +55,11 @@ import org.testng.annotations.Test; import compbio.metadata.Argument; import compbio.metadata.WrongParameterException; +/* + * All methods in this class are set to the Network group because setUpBeforeClass will fail + * if there is no network. + */ +@Test(singleThreaded = true) public class RNAStructExportImport { @@ -84,6 +89,12 @@ public class RNAStructExportImport Cache.initLogger(); disc = JalviewJabawsTestUtils.getJabawsDiscoverer(false); + while (disc.isRunning()) + { + // don't get services until discoverer has finished + Thread.sleep(100); + } + for (Jws2Instance svc : disc.getServices()) { @@ -139,7 +150,7 @@ public class RNAStructExportImport } } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRNAAliFoldValidStructure() { @@ -172,7 +183,7 @@ public class RNAStructExportImport } } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRNAStructExport() { @@ -242,7 +253,7 @@ public class RNAStructExportImport + "\nCouldn't complete Annotation file roundtrip input/output/input test."); } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRnaalifoldSettingsRecovery() { List opts = new ArrayList(); diff --git a/test/jalview/ws/jws2/ParameterUtilsTest.java b/test/jalview/ws/jws2/ParameterUtilsTest.java index 0662e5b..e859cb0 100644 --- a/test/jalview/ws/jws2/ParameterUtilsTest.java +++ b/test/jalview/ws/jws2/ParameterUtilsTest.java @@ -42,6 +42,11 @@ import compbio.metadata.Preset; import compbio.metadata.PresetManager; import compbio.metadata.WrongParameterException; +/* + * All methods in this class are set to the Network group because setUpBeforeClass will fail + * if there is no network. + */ +@Test(singleThreaded = true) public class ParameterUtilsTest { @@ -129,7 +134,7 @@ public class ParameterUtilsTest || serviceTests.contains(service.serviceType.toLowerCase()); } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testCopyOption() { for (Jws2Instance service : disc.getServices()) @@ -153,7 +158,7 @@ public class ParameterUtilsTest /** */ - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testCopyParameter() { for (Jws2Instance service : disc.getServices())