JAL-3690 - introduce shutdown method that cleans up manager's resources.
[jalview.git] / src / jalview / bin / Jalview.java
index 521b674..f5b092d 100755 (executable)
@@ -112,21 +112,21 @@ public class Jalview
      */
     {
       // grab all the rights we can for the JVM
-           Policy.setPolicy(new Policy()
-           {
-             @Override
-             public PermissionCollection getPermissions(CodeSource codesource)
-             {
-               Permissions perms = new Permissions();
-               perms.add(new AllPermission());
-               return (perms);
-             }
-       
-             @Override
-             public void refresh()
-             {
-             }
-           });
+      Policy.setPolicy(new Policy()
+      {
+        @Override
+        public PermissionCollection getPermissions(CodeSource codesource)
+        {
+          Permissions perms = new Permissions();
+          perms.add(new AllPermission());
+          return (perms);
+        }
+  
+        @Override
+        public void refresh()
+        {
+        }
+      });
     }
   }
 
@@ -139,8 +139,8 @@ public class Jalview
   class FeatureFetcher
   {
     /*
-     * TODO: generalise to track all jalview events to orchestrate batch processing
-     * events.
+     * TODO: generalise to track all jalview events to orchestrate batch
+     * processing events.
      */
 
     private int queued = 0;
@@ -202,14 +202,14 @@ public class Jalview
    */
   public static void main(String[] args)
   {
-//     setLogging(); // BH - for event debugging in JavaScript
+//  setLogging(); // BH - for event debugging in JavaScript
     instance = new Jalview();
     instance.doMain(args);
 }
 
   private static void logClass(String name) 
-  {    
-         // BH - for event debugging in JavaScript
+  {  
+    // BH - for event debugging in JavaScript
       ConsoleHandler consoleHandler = new ConsoleHandler();
       consoleHandler.setLevel(Level.ALL);
       Logger logger = Logger.getLogger(name);
@@ -229,21 +229,21 @@ public class Jalview
       System.out.println("not in js");
     }
 
-         // BH - for event debugging in JavaScript (Java mode only)
+    // BH - for event debugging in JavaScript (Java mode only)
     if (!Platform.isJS())
     /**
      * Java only
      * 
      * @j2sIgnore
      */
-       {
-               Logger.getLogger("").setLevel(Level.ALL);
+    {
+      Logger.getLogger("").setLevel(Level.ALL);
         logClass("java.awt.EventDispatchThread");
         logClass("java.awt.EventQueue");
         logClass("java.awt.Component");
         logClass("java.awt.focus.Component");
         logClass("java.awt.focus.DefaultKeyboardFocusManager"); 
-       }       
+    }  
 
   }
   
@@ -262,10 +262,25 @@ public class Jalview
     }
 
     System.out
-            .println("Java version: " + System.getProperty("java.version"));
+            .println("Java version: "
+                    + System.getProperty("java.version"));
+    System.out.println("Java Home: " + System.getProperty("java.home"));
     System.out.println(System.getProperty("os.arch") + " "
             + System.getProperty("os.name") + " "
             + System.getProperty("os.version"));
+    String val = System.getProperty("sys.install4jVersion");
+    if (val != null) {
+    System.out.println("Install4j version: " + val);
+    }
+    val = System.getProperty("installer_template_version");
+    if (val != null) {
+      System.out.println("Install4j template version: " + val);
+    }
+    val = System.getProperty("launcher_version");
+    if (val != null) {
+      System.out.println("Launcher version: " + val);
+    }
+
     // report Jalview version
     Cache.loadBuildProperties(true);
 
@@ -401,39 +416,26 @@ public class Jalview
     }
 
     /*
-     * configure 'full' SO model if preferences say to, else use the default (SO
-     * Lite)
+     * configure 'full' SO model if preferences say to, else use the default (full SO)
+     * - as JS currently doesn't have OBO parsing, it must use 'Lite' version
      */
-    if (Cache.getDefault("USE_FULL_SO", true))
+    boolean soDefault = !Platform.isJS();
+    if (Cache.getDefault("USE_FULL_SO", soDefault))
     {
       SequenceOntologyFactory.setInstance(new SequenceOntology());
     }
 
     if (!headless)
     {
-      desktop = new Desktop() 
-//      {
-// // BH testing
-//       @Override
-//       protected void processEvent(AWTEvent e) {
-//               System.out.println("Jalview.java " + e);
-//               super.processEvent(e);
-//       }
-//       }
-      ;
+      desktop = new Desktop();
       desktop.setInBatchMode(true); // indicate we are starting up
 
       try
       {
         JalviewTaskbar.setTaskbar(this);
-      } catch (Exception e)
-      {
-        System.out.println("Cannot set Taskbar");
-        // e.printStackTrace();
       } catch (Throwable t)
       {
-        System.out.println("Cannot set Taskbar");
-        // t.printStackTrace();
+        System.out.println("Error setting Taskbar: " + t.getMessage());
       }
 
       desktop.setVisible(true);
@@ -772,6 +774,10 @@ public class Jalview
           System.out.println("Unknown arg: " + aparser.nextValue());
         }
       }
+      if (headless)
+      {
+        af.getViewport().getCalcManager().shutdown();
+      }
     }
     AlignFrame startUpAlframe = null;
     // We'll only open the default file if the desktop is visible.