Author: fmeschbe
Date: Mon Jan 19 05:50:36 2009
New Revision: 735687

URL: http://svn.apache.org/viewvc?rev=735687&view=rev
Log:
Add more logging and support for SLING_HOME environment variable

Modified:
    
incubator/sling/whiteboard/fmeschbe/launchpad/base/src/main/java/org/apache/sling/launchpad/app/Main.java

Modified: 
incubator/sling/whiteboard/fmeschbe/launchpad/base/src/main/java/org/apache/sling/launchpad/app/Main.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/whiteboard/fmeschbe/launchpad/base/src/main/java/org/apache/sling/launchpad/app/Main.java?rev=735687&r1=735686&r2=735687&view=diff
==============================================================================
--- 
incubator/sling/whiteboard/fmeschbe/launchpad/base/src/main/java/org/apache/sling/launchpad/app/Main.java
 (original)
+++ 
incubator/sling/whiteboard/fmeschbe/launchpad/base/src/main/java/org/apache/sling/launchpad/app/Main.java
 Mon Jan 19 05:50:36 2009
@@ -67,6 +67,10 @@
  */
 public class Main extends Thread implements Notifiable {
 
+    // The name of the environment variable to consult to find out
+    // about sling.home
+    private static final String ENV_SLING_HOME = "SLING_HOME";
+
     public static void main(String[] args) {
         new Main(args);
     }
@@ -99,6 +103,7 @@
     private void startSling(URL launcherJar) {
         if (launcherJar != null) {
             try {
+                info("Installing " + launcherJar + " to " + slingHome, null);
                 Loader.installLauncherJar(launcherJar, slingHome);
             } catch (IOException ioe) {
                 error("Failed installing " + launcherJar, ioe);
@@ -109,6 +114,9 @@
 
         Object object;
         try {
+            info(
+                "Loading launcher class " + SharedConstants.DEFAULT_SLING_MAIN,
+                null);
             object = Loader.loadLauncher(SharedConstants.DEFAULT_SLING_MAIN,
                 slingHome);
         } catch (IllegalArgumentException iae) {
@@ -126,8 +134,12 @@
             sling.setSlingHome(slingHome);
 
             // launch it
+            info("Starting launcher ...", null);
             if (sling.start()) {
+                info("Startup completed", null);
                 this.sling = sling;
+            } else {
+                error("There was a problem launching Sling", null);
             }
         }
     }
@@ -176,23 +188,47 @@
     }
 
     public void run() {
+        info("Java VM is shutting down", null);
         if (sling != null) {
+            info("Stopping Sling", null);
             sling.stop();
         }
     }
 
     private static String getSlingHome(String[] args) {
+        String message = null;
+        String slingHome = null;
+
         for (int argc = 0; argc < args.length; argc++) {
             String arg = args[argc];
             if (arg.startsWith("-") && arg.length() == 2
                 && arg.charAt(1) == 'c') {
                 argc++;
-                return (argc < args.length) ? args[argc] : null;
+                if (argc < args.length) {
+                    message = "command line";
+                    slingHome = args[argc];
+                }
+                break;
+            }
+        }
+
+        if (slingHome == null) {
+            slingHome = System.getProperty(SharedConstants.SLING_HOME);
+            if (slingHome != null) {
+                message = "system property sling.home";
+            } else {
+                slingHome = System.getenv(ENV_SLING_HOME);
+                if (slingHome != null) {
+                    message = "environment variable SLING_HOME";
+                } else {
+                    message = "default";
+                    slingHome = SharedConstants.SLING_HOME_DEFAULT;
+                }
             }
         }
 
-        return System.getProperty(SharedConstants.SLING_HOME,
-            SharedConstants.SLING_HOME_DEFAULT);
+        info("Setting sling.home=" + slingHome + " (" + message + ")", null);
+        return slingHome;
     }
 
     private static void info(String message, Throwable t) {


Reply via email to