atom feed4 messages in org.apache.geronimo.devPatch to clarify use of GERONIMO_HOME...
FromSent OnAttachments
Russell E GlaueAug 6, 2008 10:13 am.patch
David JencksAug 6, 2008 10:20 am 
Kevan MillerAug 6, 2008 12:22 pm 
Russell E GlaueAug 6, 2008 12:33 pm 
Subject:Patch to clarify use of GERONIMO_HOME vs. GERONIMO_BASE in shell scripts
From:Russell E Glaue (
Date:Aug 6, 2008 10:13:03 am

I'd like to submit a patch for the Geronimo 2.1.3 release, attached.

I was not seeing consistent usage in the shell scripts of the following: - GERONIMO_HOME - GERONIMO_BASE - org.apache.geronimo.base.dir

In 4 of the scripts, GERONIMO_BASE was used where GERONIMO_HOME should have been used, or GERONIMO_BASE should be used to complete the path to the temp file, otherwise the GeronimoInstallationPath is used to complete the temp file path. The attached patch corrects these.

For more information, please see my thread on Subject: GERONIMO_BASE vs. GERONIMO_HOME and org.apache.geronimo.base.dir

And as an additional note, this patch resolves a few errors, but not this one: - Using GERONIMO_BASE: /usr/local/geronimo/server1 Using GERONIMO_HOME: /usr/local/geronimo Using GERONIMO_TMPDIR: var/temp Using JRE_HOME: /usr/jdk1.5.0_07/jre 10:45:33,914 ERROR [LocalAttributeManager] Caught exception /usr/local/geronimo-jetty6-javaee5-2.1.1/var/config/ (No such file or directory) trying to open properties file /usr/local/geronimo-jetty6-javaee5-2.1.1/var/config/ - Geronimo looks for the 'var/config/' file according to 'org.apache.geronimo.server.dir' variable. However the bin/ script only sets -Dorg.apache.geronimo.base.dir=$GERONIMO_BASE But I do not see how org.apache.geronimo.base.dir is used inside Geronimo. To fix we would have to set the variable -Dorg.apache.geronimo.server.dir=$GERONIMO_BASE too - but we cannot do that if we want users to be able to supply the<relative_path> variable outside of bin/ in $GERONIMO_OPTS env var. - So I could not figure out a good way to address this error, unless we overrided org.apache.geronimo.base.dir variable with whatever is in the org.apache.geronimo.server.dir variable, then change Geronimo to look for the configSubstitutionFile as '<org.apache.geronimo.base.dir>/var/config/' And it appears that Geronimo ignores org.apache.geronimo.base.dir in favor of org.apache.geronimo.home.dir anyway, so removing the configured org.apache.geronimo.base.dir property in bin/ does not seem to hurt anything - at first test, at least, it works for me. Then we just always set org.apache.geronimo.base.dir = org.apache.geronimo.server.dir - I would appreciate if someone shed light on the proper intended usage of the org.apache.geronimo.base.dir property. -

How To Produce The Errors the attached patch fixes: <perform> 1) expand geronimo-jetty6-javaee5-2.1.2 in /usr/local/ 2) cd /usr/local; ln -s geronimo-jetty6-javaee5-2.1.2 geronimo 2) create the directory /usr/local/geronimo/server1 3) move /usr/local/geronimo/var to /usr/local/geronimo/server1/var 4) start geronimo with this shell command: - cd /usr/local/geronimo export GERONIMO_HOME=/usr/local/geronimo export GERONIMO_BASE=/usr/local/geronimo/server1 exec ${GERONIMO_HOME}/bin/ - </perform>

<error> $ tail -1 /usr/local/geronimo/server1/var/log/geronimo.out The system property specifies a non-existent directory: /usr/local/geronimo-jetty6-javaee5-2.1.2/var/temp - read: /usr/local/geronimo/bin/ # GERONIMO_TMPDIR (Optional) Directory path location of temporary directory # the JVM should use ( # Defaults to $GERONIMO_BASE/var/temp. if [ -z "$GERONIMO_TMPDIR" ] ; then # Define the to use for Geronimo # A relative value will be resolved relative to each instance GERONIMO_TMPDIR=var/temp fi - This is incorrect documentation, as the error message illustrates. GERONIMO_TMPDIR does not default to $GERONIMO_BASE/var/temp Nor does it default to $GERONIMO_HOME/var/temp Instead: It defaults to <Geronimo_install_directory>/var/temp Or also org.apache.geronimo.server.dir/var/temp GERONIMO_TMPDIR should be set with $GERONIMO_BASE/var/temp </error>

<error> $ cat /usr/local/geronimo/server1/var/log/geronimo.out | grep '\[java.*.dirs\]' /usr/jdk1.5.0_07/jre/lib/i386/client:/usr/jdk1.5.0_07/jre/lib/i386:/usr/jdk1.5.0_07/jre/../lib/i386 10:45:33,955 INFO [Log4jService] System property [java.endorsed.dirs] = /usr/local/geronimo/server1/lib/endorsed:/usr/jdk1.5.0_07/jre/lib/endorsed 10:45:33,955 INFO [Log4jService] System property [java.ext.dirs] = /usr/local/geronimo/server1/lib/ext:/usr/jdk1.5.0_07/jre/lib/ext - read: /usr/local/geronimo/bin/ # For Cygwin, switch paths to Windows format before running java if $cygwin; then ... EXT_DIRS="$GERONIMO_BASE/lib/ext;$JRE_HOME/lib/ext" ENDORSED_DIRS="$GERONIMO_BASE/lib/endorsed;$JRE_HOME/lib/endorsed" else EXT_DIRS="$GERONIMO_BASE/lib/ext:$JRE_HOME/lib/ext" ENDORSED_DIRS="$GERONIMO_BASE/lib/endorsed:$JRE_HOME/lib/endorsed" fi

- There is no such directory as '/usr/local/geronimo/server1/lib/' but the bin/ script uses GERONIMO_BASE to point at the lib directory. That should be $GERONIMO_HOME GERONIMO_HOME is used only for the scope of the shell scripts, and everything elses uses it for starting Geronimo, so we should be consistent. - </error>