You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/11/14 20:20:39 UTC

svn commit: r474926 - in /incubator/activemq/trunk: activemq-console/src/main/java/org/apache/activemq/console/ assembly/src/main/descriptors/ assembly/src/release/bin/linux/ assembly/src/release/bin/macosx/ assembly/src/release/bin/win32/

Author: chirino
Date: Tue Nov 14 11:20:38 2006
New Revision: 474926

URL: http://svn.apache.org/viewvc?view=rev&rev=474926
Log:
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.

Modified:
    incubator/activemq/trunk/activemq-console/src/main/java/org/apache/activemq/console/Main.java
    incubator/activemq/trunk/assembly/src/main/descriptors/unix-bin.xml
    incubator/activemq/trunk/assembly/src/main/descriptors/windows-bin.xml
    incubator/activemq/trunk/assembly/src/release/bin/linux/wrapper.conf
    incubator/activemq/trunk/assembly/src/release/bin/macosx/wrapper.conf
    incubator/activemq/trunk/assembly/src/release/bin/win32/activemq.bat
    incubator/activemq/trunk/assembly/src/release/bin/win32/wrapper.conf

Modified: incubator/activemq/trunk/activemq-console/src/main/java/org/apache/activemq/console/Main.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-console/src/main/java/org/apache/activemq/console/Main.java?view=diff&rev=474926&r1=474925&r2=474926
==============================================================================
--- incubator/activemq/trunk/activemq-console/src/main/java/org/apache/activemq/console/Main.java (original)
+++ incubator/activemq/trunk/activemq-console/src/main/java/org/apache/activemq/console/Main.java Tue Nov 14 11:20:38 2006
@@ -89,11 +89,52 @@
 
         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 void runTaskClass(List tokens) throws Throwable {
+    	
         System.out.println("ACTIVEMQ_HOME: "+ getActiveMQHome());
+        System.out.println("ACTIVEMQ_BASE: "+ getActiveMQBase());
 
         ClassLoader cl = getClassLoader();
 

Modified: incubator/activemq/trunk/assembly/src/main/descriptors/unix-bin.xml
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/assembly/src/main/descriptors/unix-bin.xml?view=diff&rev=474926&r1=474925&r2=474926
==============================================================================
--- incubator/activemq/trunk/assembly/src/main/descriptors/unix-bin.xml (original)
+++ incubator/activemq/trunk/assembly/src/main/descriptors/unix-bin.xml Tue Nov 14 11:20:38 2006
@@ -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>

Modified: incubator/activemq/trunk/assembly/src/main/descriptors/windows-bin.xml
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/assembly/src/main/descriptors/windows-bin.xml?view=diff&rev=474926&r1=474925&r2=474926
==============================================================================
--- incubator/activemq/trunk/assembly/src/main/descriptors/windows-bin.xml (original)
+++ incubator/activemq/trunk/assembly/src/main/descriptors/windows-bin.xml Tue Nov 14 11:20:38 2006
@@ -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>

Modified: incubator/activemq/trunk/assembly/src/release/bin/linux/wrapper.conf
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/assembly/src/release/bin/linux/wrapper.conf?view=diff&rev=474926&r1=474925&r2=474926
==============================================================================
--- incubator/activemq/trunk/assembly/src/release/bin/linux/wrapper.conf (original)
+++ incubator/activemq/trunk/assembly/src/release/bin/linux/wrapper.conf Tue Nov 14 11:20:38 2006
@@ -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 @@
 
 # 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.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

Modified: incubator/activemq/trunk/assembly/src/release/bin/macosx/wrapper.conf
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/assembly/src/release/bin/macosx/wrapper.conf?view=diff&rev=474926&r1=474925&r2=474926
==============================================================================
--- incubator/activemq/trunk/assembly/src/release/bin/macosx/wrapper.conf (original)
+++ incubator/activemq/trunk/assembly/src/release/bin/macosx/wrapper.conf Tue Nov 14 11:20:38 2006
@@ -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 @@
 
 # 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.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

Modified: incubator/activemq/trunk/assembly/src/release/bin/win32/activemq.bat
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/assembly/src/release/bin/win32/activemq.bat?view=diff&rev=474926&r1=474925&r2=474926
==============================================================================
--- incubator/activemq/trunk/assembly/src/release/bin/win32/activemq.bat (original)
+++ incubator/activemq/trunk/assembly/src/release/bin/win32/activemq.bat Tue Nov 14 11:20:38 2006
@@ -31,10 +31,6 @@
 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

Modified: incubator/activemq/trunk/assembly/src/release/bin/win32/wrapper.conf
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/assembly/src/release/bin/win32/wrapper.conf?view=diff&rev=474926&r1=474925&r2=474926
==============================================================================
--- incubator/activemq/trunk/assembly/src/release/bin/win32/wrapper.conf (original)
+++ incubator/activemq/trunk/assembly/src/release/bin/win32/wrapper.conf Tue Nov 14 11:20:38 2006
@@ -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 @@
 
 # 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.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