mirror of https://github.com/apache/activemq.git
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:
parent
48a1ad8eec
commit
36265ea802
|
@ -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();
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue