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) {