fix and warning message in case the JWS2 jar is not available.
authorjprocter <Jim Procter>
Thu, 3 Jun 2010 13:59:44 +0000 (13:59 +0000)
committerjprocter <Jim Procter>
Thu, 3 Jun 2010 13:59:44 +0000 (13:59 +0000)
src/jalview/ws/jws2/Jws2Discoverer.java

index 172b393..5bce82f 100644 (file)
@@ -32,7 +32,8 @@ import compbio.ws.client.Jws2Base.Services;
  */
 public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
 {
-  private java.beans.PropertyChangeSupport changeSupport = new java.beans.PropertyChangeSupport(this);
+  private java.beans.PropertyChangeSupport changeSupport = new java.beans.PropertyChangeSupport(
+          this);
 
   /**
    * change listeners are notified of "services" property changes
@@ -58,7 +59,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
     changeSupport.removePropertyChangeListener(listener);
   }
 
-  boolean running=false;
+  boolean running = false;
+
   @Override
   public void run()
   {
@@ -66,9 +68,21 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
     {
       return;
     }
-    running=true;
-//    Cache.initLogger();
-//    Cache.log.setLevel(Level.DEBUG);
+    running = true;
+    try
+    {
+      Class foo = getClass().getClassLoader().loadClass(
+              "compbio.ws.client.JwsBase");
+    } catch (ClassNotFoundException e)
+    {
+      System.err
+              .println("Not enabling Jalview Webservices version 2: client jar is not available."
+                      +"\nPlease check that your webstart JNLP file is up to date!");
+      running = false;
+      return;
+    }
+    // Cache.initLogger();
+    // Cache.log.setLevel(Level.DEBUG);
     // TODO: Document and PACK JWS2
     String jwsservers = Cache.getDefault("JWS2HOSTURLS",
             "http://webservices.compbio.dundee.ac.uk:8084/jws2");
@@ -83,11 +97,13 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
           try
           {
             service = Jws2Base.connect(jwsservers, srv);
-          } 
-          catch (Exception e)
+          } catch (Exception e)
           {
-            System.err.println("Jws2 Discoverer: Problem with "+jwsservers+" with service "+srv+":\n"+e.getMessage());
-            if (!(e instanceof javax.xml.ws.WebServiceException)) {
+            System.err.println("Jws2 Discoverer: Problem with "
+                    + jwsservers + " with service " + srv + ":\n"
+                    + e.getMessage());
+            if (!(e instanceof javax.xml.ws.WebServiceException))
+            {
               e.printStackTrace();
             }
           }
@@ -111,7 +127,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
     {
       Cache.log.error("Exception when discovering Jws2 services.", e);
     }
-    running=false;
+    running = false;
     changeSupport.firePropertyChange("services", new Vector(), services);
   }
 
@@ -124,7 +140,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
    */
   private void addService(String jwsservers, Services srv, MsaWS service2)
   {
-    if (services==null) {
+    if (services == null)
+    {
       services = new Vector<Jws2Instance>();
     }
     System.out.println("Discovered service: " + jwsservers + " "
@@ -148,19 +165,27 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
       this.serviceType = serviceType;
       this.service = service;
     }
+
     PresetManager presets = null;
+
     /**
-     * non thread safe - gets the presets for this service (blocks whilst it calls the service to get the preset set)
+     * non thread safe - gets the presets for this service (blocks whilst it
+     * calls the service to get the preset set)
+     * 
      * @return service presets or null if exceptions were raised.
      */
-    public PresetManager getPresets() {
+    public PresetManager getPresets()
+    {
       if (presets == null)
       {
-        try {
+        try
+        {
           presets = service.getPresets();
         } catch (Exception ex)
         {
-          System.err.println("Exception when retrieving presets for service "+serviceType+" at "+hosturl);
+          System.err
+                  .println("Exception when retrieving presets for service "
+                          + serviceType + " at " + hosturl);
         }
       }
       return presets;
@@ -175,7 +200,7 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
   @Override
   public void attachWSMenuEntry(JMenu wsmenu, final AlignFrame alignFrame)
   {
-    if (running || services==null || services.size() == 0)
+    if (running || services == null || services.size() == 0)
     {
       return;
     }
@@ -188,37 +213,36 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
     for (final Jws2Instance service : services)
     {
       msacl.attachWSMenuEntry(jws2, service, alignFrame);
-      /*JMenuItem sitem = new JMenuItem(service.serviceType);
-      sitem.setToolTipText("Hosted at " + service.hosturl);
-      sitem.addActionListener(new ActionListener()
-      {
-
-        @Override
-        public void actionPerformed(ActionEvent e)
-        {
-          AlignmentView msa = alignFrame.gatherSequencesForAlignment();
-          MsaWSClient client = new MsaWSClient(service,
-                  "JWS2 Alignment of " + alignFrame.getTitle(), msa, false,
-                  true, alignFrame.getViewport().getAlignment().getDataset(),
-                  alignFrame);
-        }
-      });*/
+      /*
+       * JMenuItem sitem = new JMenuItem(service.serviceType);
+       * sitem.setToolTipText("Hosted at " + service.hosturl);
+       * sitem.addActionListener(new ActionListener() {
+       * 
+       * @Override public void actionPerformed(ActionEvent e) { AlignmentView
+       * msa = alignFrame.gatherSequencesForAlignment(); MsaWSClient client =
+       * new MsaWSClient(service, "JWS2 Alignment of " + alignFrame.getTitle(),
+       * msa, false, true, alignFrame.getViewport().getAlignment().getDataset(),
+       * alignFrame); } });
+       */
     }
-    if (services.size()>0)
+    if (services.size() > 0)
     {
       wsmenu.add(jws2);
     }
-    
+
   }
+
   public static void main(String[] args)
   {
     Thread runner = new Thread(getDiscoverer());
-    getDiscoverer().addPropertyChangeListener(new PropertyChangeListener() {
+    getDiscoverer().addPropertyChangeListener(new PropertyChangeListener()
+    {
 
       @Override
       public void propertyChange(PropertyChangeEvent evt)
       {
-        System.out.println("Changesupport: There are now "+getDiscoverer().services.size()+" services");
+        System.out.println("Changesupport: There are now "
+                + getDiscoverer().services.size() + " services");
       }
     });
     runner.start();
@@ -233,10 +257,12 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
       ;
     }
   }
+
   private static Jws2Discoverer discoverer;
+
   public static Jws2Discoverer getDiscoverer()
   {
-    if (discoverer==null)
+    if (discoverer == null)
     {
       discoverer = new Jws2Discoverer();
     }
@@ -246,12 +272,12 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
   public boolean hasServices()
   {
     // TODO Auto-generated method stub
-    return !running && services!=null && services.size()>0;
+    return !running && services != null && services.size() > 0;
   }
 
   public boolean isRunning()
   {
     return running;
   }
-  
+
 }