[
https://issues.apache.org/jira/browse/GERONIMO-4229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Russell E Glaue updated GERONIMO-4229:
--------------------------------------
Attachment: geronimo-shell-home-base-2.patch
patch to clarify use of GERONIMO_HOME vs. GERONIMO_BASE in the shell/batch
scripts.
> clarify use of GERONIMO_HOME vs. GERONIMO_BASE in shell scripts
> ---------------------------------------------------------------
>
> Key: GERONIMO-4229
> URL: https://issues.apache.org/jira/browse/GERONIMO-4229
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Components: startup/shutdown
> Affects Versions: 2.1.1
> Environment: ALL
> Reporter: Russell E Glaue
> Priority: Minor
> Attachments: geronimo-shell-home-base-2.patch
>
>
> 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 [EMAIL PROTECTED]
> 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 these
> two:
> (1)-
> 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
> java.io.FileNotFoundException:
> /usr/local/geronimo-jetty6-javaee5-2.1.1/var/config/config-substitutions.properties
> (No such file or directory) trying to open properties file
> /usr/local/geronimo-jetty6-javaee5-2.1.1/var/config/config-substitutions.properties
> -
> Geronimo looks for the 'var/config/config-substitutions.properties' file
> according to 'org.apache.geronimo.server.dir' variable.
> However the bin/geronimo.sh 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
> -Dorg.apache.geronimo.server.name=<relative_path> variable outside of
> bin/geronimo.sh 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/config-substitutions.properties'
> 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/geronimo.sh 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.
> -
> (2)-
> 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
> ...
> The java.io.tmpdir system property specifies a non-existent directory:
> /usr/local/geronimo-jetty6-javaee5-2.1.2/var/temp
> -
> read: /usr/local/geronimo/bin/geronimo.sh
> # GERONIMO_TMPDIR (Optional) Directory path location of temporary directory
> # the JVM should use (java.io.tmpdir).
> # Defaults to $GERONIMO_BASE/var/temp.
> if [ -z "$GERONIMO_TMPDIR" ] ; then
> # Define the java.io.tmpdir 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
> Or also org.apache.geronimo.base.dir/var/temp to comply with the documentation
> -
> Setting GERONIMO_TMPDIR="$GERONIMO_BASE"/var/temp in bin/geronimo.sh will
> actually conflict with anyone using the
> -Dorg.apache.geronimo.server.name=<relative_path> to run multiple instances
> as documented in the geronimo wiki.
> The absolute path is resolved to
> <org.apache.geronimo.server.dir>/<java.io.tmpdir> IF <java.io.tmpdir> is a
> relative path.
> So setting the absolute path in bin/geronimo.sh would require the user to
> additionally specify the absolute path of $GERONIMO_TMPDIR into their
> geronimo instance.
> The change, causing the property org.apache.geronimo.base.dir to be used,
> would have to be completed internally in the java classes that set the
> properties.
> -
> 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/startup.sh
> -
> </perform>
> <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/geronimo.sh
> # 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
> ...
> # Setup the Java programming language agent
> JAVA_AGENT_JAR="$GERONIMO_BASE/bin/jpa.jar"
> -
> There is no such directory as '/usr/local/geronimo/server1/lib/'
> but the bin/geronimo.sh script uses GERONIMO_BASE to point at the lib
> directory.
> That should be $GERONIMO_HOME
> The same for JAVA_AGENT_JAR which points at
> /usr/local/geronimo/server1/bin/jpa.jar in this example
> GERONIMO_HOME is used only for the scope of the shell scripts, and everything
> else uses it only for starting Geronimo, so we should be consistent.
> -
> </error>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.