Updated java service wrappers so that they properly use the ACTIVEMQ_BASE and ACTIVEMQ_HOME enviroment variables.

also print out the ACTIVEMQ_BASE on startup and if classloading error occurs, have the main method dump a listing of what is in the classloaders.


git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@474926 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Hiram R. Chirino 2006-11-14 19:20:38 +00:00
parent 48a1ad8eec
commit 36265ea802
7 changed files with 101 additions and 47 deletions

View File

@ -89,11 +89,52 @@ public class Main {
try {
app.runTaskClass(tokens);
} catch (ClassNotFoundException e) {
System.out.println("Could not load class: " + e.getMessage());
try {
ClassLoader cl = app.getClassLoader();
if( cl!=null ) {
System.out.println("Class loader setup: ");
printClassLoaderTree(cl);
}
} catch (MalformedURLException e1) {
}
} catch (Throwable e) {
System.out.println("Failed to execute main task. Reason: " + e);
}
}
/**
* Print out what's in the classloader tree being used.
*
* @param cl
* @return
*/
private static int printClassLoaderTree(ClassLoader cl) {
int depth = 0;
if( cl.getParent()!=null ) {
depth = printClassLoaderTree(cl.getParent())+1;
}
StringBuffer indent = new StringBuffer();
for (int i = 0; i < depth; i++) {
indent.append(" ");
}
if( cl instanceof URLClassLoader ) {
URLClassLoader ucl = (URLClassLoader) cl;
System.out.println(indent+cl.getClass().getName()+" {");
URL[] urls = ucl.getURLs();
for (int i = 0; i < urls.length; i++) {
System.out.println(indent+" "+urls[i]);
}
System.out.println(indent+"}");
} else {
System.out.println(indent+cl.getClass().getName());
}
return depth;
}
public void parseExtensions(List tokens) {
if (tokens.isEmpty()) {
return;
@ -147,7 +188,9 @@ public class Main {
}
public void runTaskClass(List tokens) throws Throwable {
System.out.println("ACTIVEMQ_HOME: "+ getActiveMQHome());
System.out.println("ACTIVEMQ_BASE: "+ getActiveMQBase());
ClassLoader cl = getClassLoader();

View File

@ -50,6 +50,7 @@
<directory>src/release</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>bin/*.jar</include>
<include>conf/*.ts</include>
<include>conf/*.ks</include>
<include>conf/*.cert</include>

View File

@ -41,7 +41,7 @@
<include>bin/*.bat</include>
<include>bin/win32/*.bat</include>
<include>bin/win32/*.conf</include>
<include>bin/core/boot/*.jar</include>
<include>bin/core/boot/*.jar</include>
</includes>
<lineEnding>dos</lineEnding>
</fileSet>
@ -54,6 +54,7 @@
<include>conf/*.ts</include>
<include>conf/*.ks</include>
<include>conf/*.cert</include>
<include>bin/*.jar</include>
<include>bin/win32/*.exe</include>
<include>bin/win32/*.dll</include>
</includes>

View File

@ -19,12 +19,14 @@
# Wrapper Properties
#********************************************************************
#wrapper.debug=TRUE
set.default.ACTIVEMQ_HOME=../..
set.default.ACTIVEMQ_BASE=../..
wrapper.working.dir=.
# Java Application
wrapper.java.command=java
#wrapper.debug=TRUE
wrapper.working.dir=../..
# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you. See the Integration section
@ -33,19 +35,23 @@ wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=bin/wrapper.jar
wrapper.java.classpath.2=bin/run.jar
wrapper.java.classpath.1=%ACTIVEMQ_HOME%/bin/wrapper.jar
wrapper.java.classpath.2=%ACTIVEMQ_HOME%/bin/run.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=bin/linux/
wrapper.java.library.path.1=%ACTIVEMQ_HOME%/bin/linux/
# Java Additional Parameters
# note that n is the parameter number starting from 1.
wrapper.java.additional.1=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
wrapper.java.additional.2=-Dderby.system.home=data
wrapper.java.additional.3=-Dderby.storage.fileSyncTransactionLog=true
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
wrapper.java.additional.5=-Dactivemq.home=./
wrapper.java.additional.1=-Dactivemq.home=%ACTIVEMQ_HOME%
wrapper.java.additional.2=-Dactivemq.base=%ACTIVEMQ_BASE%
wrapper.java.additional.3=-Djavax.net.ssl.keyStorePassword=password
wrapper.java.additional.4=-Djavax.net.ssl.trustStorePassword=password
wrapper.java.additional.5=-Djavax.net.ssl.keyStore=%ACTIVEMQ_BASE%/conf/broker.ks
wrapper.java.additional.6=-Djavax.net.ssl.trustStore=%ACTIVEMQ_BASE%/conf/broker.ts
wrapper.java.additional.7=-Dcom.sun.management.jmxremote
wrapper.java.additional.8=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
wrapper.java.additional.9=-Dderby.storage.fileSyncTransactionLog=true
# Uncomment to enable jmx
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
@ -78,7 +84,7 @@ wrapper.console.format=PM
wrapper.console.loglevel=INFO
# Log file to use for wrapper output logging.
wrapper.logfile=bin/linux/wrapper.log
wrapper.logfile=%ACTIVEMQ_BASE%/activemq-data/wrapper.log
# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=LPTM

View File

@ -19,12 +19,14 @@
# Wrapper Properties
#********************************************************************
#wrapper.debug=TRUE
set.default.ACTIVEMQ_HOME=../..
set.default.ACTIVEMQ_BASE=../..
wrapper.working.dir=.
# Java Application
wrapper.java.command=java
#wrapper.debug=TRUE
wrapper.working.dir=../..
# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you. See the Integration section
@ -33,19 +35,23 @@ wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=bin/wrapper.jar
wrapper.java.classpath.2=bin/run.jar
wrapper.java.classpath.1=%ACTIVEMQ_HOME%/bin/wrapper.jar
wrapper.java.classpath.2=%ACTIVEMQ_HOME%/bin/run.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=bin/macosx/
wrapper.java.library.path.1=%ACTIVEMQ_HOME%/bin/macosx/
# Java Additional Parameters
# note that n is the parameter number starting from 1.
wrapper.java.additional.1=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
wrapper.java.additional.2=-Dderby.system.home=data
wrapper.java.additional.3=-Dderby.storage.fileSyncTransactionLog=true
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
wrapper.java.additional.5=-Dactivemq.home=.
wrapper.java.additional.1=-Dactivemq.home=%ACTIVEMQ_HOME%
wrapper.java.additional.2=-Dactivemq.base=%ACTIVEMQ_BASE%
wrapper.java.additional.3=-Djavax.net.ssl.keyStorePassword=password
wrapper.java.additional.4=-Djavax.net.ssl.trustStorePassword=password
wrapper.java.additional.5=-Djavax.net.ssl.keyStore=%ACTIVEMQ_BASE%/conf/broker.ks
wrapper.java.additional.6=-Djavax.net.ssl.trustStore=%ACTIVEMQ_BASE%/conf/broker.ts
wrapper.java.additional.7=-Dcom.sun.management.jmxremote
wrapper.java.additional.8=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
wrapper.java.additional.9=-Dderby.storage.fileSyncTransactionLog=true
# Uncomment to enable jmx
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
@ -78,7 +84,7 @@ wrapper.console.format=PM
wrapper.console.loglevel=INFO
# Log file to use for wrapper output logging.
wrapper.logfile=bin/linux/wrapper.log
wrapper.logfile=%ACTIVEMQ_BASE%/activemq-data/wrapper.log
# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=LPTM

View File

@ -31,10 +31,6 @@ goto conf
rem %~dp0 is name of current script under NT
set _APP_HOME=%~dp0
rem Set ActiveMQ Home
set ACTIVEMQ_HOME=%~dp0..\..
set ACTIVEMQ_BASE=%~dp0..\..
rem
rem Find the wrapper.conf
rem

View File

@ -19,12 +19,14 @@
# Wrapper Properties
#********************************************************************
# wrapper.debug=TRUE
set.default.ACTIVEMQ_HOME=../..
set.default.ACTIVEMQ_BASE=../..
wrapper.working.dir=.
# Java Application
wrapper.java.command=%JAVA_HOME%/bin/java
#wrapper.debug=TRUE
wrapper.working.dir=../..
# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you. See the Integration section
@ -33,26 +35,25 @@ wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=bin/wrapper.jar
wrapper.java.classpath.2=bin/run.jar
wrapper.java.classpath.1=%ACTIVEMQ_HOME%/bin/wrapper.jar
wrapper.java.classpath.2=%ACTIVEMQ_HOME%/bin/run.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=bin/win32
wrapper.java.library.path.1=%ACTIVEMQ_HOME%/bin/win32
# Java Additional Parameters
# note that n is the parameter number starting from 1.
wrapper.java.additional.1=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
wrapper.java.additional.2=-Dderby.system.home=data
wrapper.java.additional.3=-Dderby.storage.fileSyncTransactionLog=true
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
wrapper.java.additional.5=-Dactivemq.home="%ACTIVEMQ_HOME%"
wrapper.java.additional.6=-Dactivemq.base="%ACTIVEMQ_BASE%"
wrapper.java.additional.7=-Djavax.net.ssl.keyStorePassword=password
wrapper.java.additional.8=-Djavax.net.ssl.trustStorePassword=password
wrapper.java.additional.9=-Djavax.net.ssl.keyStore="%ACTIVEMQ_BASE%/conf/broker.ks"
wrapper.java.additional.10=-Djavax.net.ssl.trustStore="%ACTIVEMQ_BASE%/conf/broker.ts"
wrapper.java.additional.1=-Dactivemq.home=%ACTIVEMQ_HOME%
wrapper.java.additional.2=-Dactivemq.base=%ACTIVEMQ_BASE%
wrapper.java.additional.3=-Djavax.net.ssl.keyStorePassword=password
wrapper.java.additional.4=-Djavax.net.ssl.trustStorePassword=password
wrapper.java.additional.5=-Djavax.net.ssl.keyStore=%ACTIVEMQ_BASE%/conf/broker.ks
wrapper.java.additional.6=-Djavax.net.ssl.trustStore=%ACTIVEMQ_BASE%/conf/broker.ts
wrapper.java.additional.7=-Dcom.sun.management.jmxremote
wrapper.java.additional.8=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
wrapper.java.additional.9=-Dderby.storage.fileSyncTransactionLog=true
# Uncomment to enable jmx
# Uncomment to enable remote jmx
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
@ -83,7 +84,7 @@ wrapper.console.format=PM
wrapper.console.loglevel=INFO
# Log file to use for wrapper output logging.
wrapper.logfile=bin/win32/wrapper.log
wrapper.logfile=%ACTIVEMQ_BASE%/activemq-data/wrapper.log
# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=LPTM