From c87eef1308fd65818277b1857fa258ad25473d68 Mon Sep 17 00:00:00 2001 From: jprocter Date: Tue, 20 Jul 2010 09:05:46 +0000 Subject: [PATCH] update to Jaba_r1 minimal client distribution, and resolve issues JAL-602 --- .classpath | 2 +- ...min-jws2-client-1.0.jar => min-jaba-client.jar} | Bin 81836 -> 81630 bytes src/jalview/ws/jws2/Jws2Discoverer.java | 98 ++++++++++++-------- 3 files changed, 61 insertions(+), 39 deletions(-) rename lib/{min-jws2-client-1.0.jar => min-jaba-client.jar} (64%) diff --git a/.classpath b/.classpath index d29d712..7ec0109 100644 --- a/.classpath +++ b/.classpath @@ -18,7 +18,7 @@ - + diff --git a/lib/min-jws2-client-1.0.jar b/lib/min-jaba-client.jar similarity index 64% rename from lib/min-jws2-client-1.0.jar rename to lib/min-jaba-client.jar index fcd8443fde981417a765e56f8b37df08a60e0c7e..82c33dc2c5d0c5468c94ee502dc81c0f25228de6 100644 GIT binary patch delta 23025 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 N;so29{lGNI{{gB;mf8RS delta 23098 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 diff --git a/src/jalview/ws/jws2/Jws2Discoverer.java b/src/jalview/ws/jws2/Jws2Discoverer.java index 95100e0..2230d11 100644 --- a/src/jalview/ws/jws2/Jws2Discoverer.java +++ b/src/jalview/ws/jws2/Jws2Discoverer.java @@ -5,6 +5,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.Closeable; import java.net.ConnectException; import java.net.URL; import java.util.HashSet; @@ -26,8 +27,8 @@ import compbio.metadata.Option; import compbio.metadata.Preset; import compbio.metadata.PresetManager; import compbio.metadata.RunnerConfig; -import compbio.ws.client.Jws2Base; -import compbio.ws.client.Jws2Base.Services; +import compbio.ws.client.Jws2Client; +import compbio.ws.client.Services; /** * discoverer for jws2 services. Follows the lightweight service discoverer @@ -81,7 +82,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI try { Class foo = getClass().getClassLoader().loadClass( - "compbio.ws.client.Jws2Base"); + "compbio.ws.client.Jws2Client"); } catch (ClassNotFoundException e) { System.err @@ -98,15 +99,15 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI { try { - if (Jws2Base.validURL(jwsservers)) + if (Jws2Client.validURL(jwsservers)) { // look for services - for (Services srv : Jws2Base.Services.values()) + for (Services srv : Services.values()) { MsaWS service = null; try { - service = Jws2Base.connect(jwsservers, srv); + service = Jws2Client.connect(jwsservers, srv); } catch (Exception e) { System.err.println("Jws2 Discoverer: Problem on " @@ -205,37 +206,51 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI public String getHost() { return hosturl; -/* try - { - URL serviceurl = new URL(hosturl); - if (serviceurl.getPort()!=80) - { - return serviceurl.getHost()+":"+serviceurl.getPort(); - } - return serviceurl.getHost(); - } catch (Exception e) - { - System.err.println("Failed to parse service URL '" + hosturl - + "' as a valid URL!"); - } - return null; */ + /* + * try { URL serviceurl = new URL(hosturl); if (serviceurl.getPort()!=80) + * { return serviceurl.getHost()+":"+serviceurl.getPort(); } return + * serviceurl.getHost(); } catch (Exception e) { + * System.err.println("Failed to parse service URL '" + hosturl + + * "' as a valid URL!"); } return null; + */ } + /** * @return short description of what the service will do */ - public String getActionText() { - return "Align with " - + serviceType; + public String getActionText() + { + return "Align with " + serviceType; } /** - * non-thread safe - blocks whilst accessing service to get complete set of available options and parameters + * non-thread safe - blocks whilst accessing service to get complete set of + * available options and parameters + * * @return */ public RunnerConfig getRunnerConfig() { return service.getRunnerOptions(); } + + @Override + protected void finalize() throws Throwable + { + if (service != null) + { + try + { + Closeable svc = (Closeable) service; + service = null; + svc.close(); + } catch (Exception e) + { + } + ; + } + super.finalize(); + } }; /** @@ -245,6 +260,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI /** * find or add a submenu with the given title in the given menu + * * @param menu * @param submenu * @return the new or existing submenu @@ -252,22 +268,24 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI private JMenu findOrCreateMenu(JMenu menu, String submenu) { JMenu submenuinstance = null; - for (int i=0,iSize=menu.getMenuComponentCount(); i getServices() { - return (services==null) ? new Vector(): new Vector(services); + return (services == null) ? new Vector() + : new Vector(services); } } -- 1.7.10.2