geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Donald Woods (JIRA)" <j...@apache.org>
Subject [jira] Updated: (GERONIMO-4229) clarify use of GERONIMO_HOME vs. GERONIMO_BASE in shell scripts
Date Tue, 02 Dec 2008 13:48:46 GMT

     [ https://issues.apache.org/jira/browse/GERONIMO-4229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Donald Woods updated GERONIMO-4229:
-----------------------------------

    Fix Version/s: 2.2
                   2.1.4
         Assignee: Jarek Gawor

Added fix versions and Jarek as the owner for now.
We need to resolve the server instance problem before we release 2.2 and 2.1.4.

> 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
>            Assignee: Jarek Gawor
>            Priority: Minor
>             Fix For: 2.1.4, 2.2
>
>         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 user@geronimo.apache.org
> 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.


Mime
View raw message