On Thursday 15 July 2010 20:26:14 Christopher Schultz wrote:
> Rainer,
Hi, and sorry for the late reply.
[I changed the order of some parts of your mail to reply
> On 7/12/2010 9:14 AM, Rainer Frey wrote:
> > I understand that, but would it be possible/good/not causing problems to
> > change this to do CATALINA_BASE="$CATALINA_HOME first, so a setenv.sh can
> > rely on CATALINA_BASE being set?
>
> I think I understand the source of the confusion, here:
>
> 1. you want CATALINA_BASE to be set before CATALINA_HOME/bin/setenv.sh
> is invoked
yes.
> 2. CATALINA_BASE must be set to something other than CATALINA_BASE
> in order for CATALINA_BASE/bin/setenv.sh to be invoked /at all/
Detecting the right setenv.sh works fine, so I don't care about that.
> 3. case here is that CATALINA_HOME/bin/setenv.sh is being used,
> but you want to use CATALINA_BASE/[something] in your generic scripts
Exactly.
> if [ -n "${CATALINA_BASE}" ] ; then
> THE_BASE_DIR="${CATALINA_BASE}"
> else
> THE_BASE_DIR="${CATALINA_HOME}"
> fi
[...]
> CONF_DIR="${THE_BASE_DIR}/conf"
Thanks for the hint, I'm doing exactly that now.
> I'm not sure a patch is necessary, since the script has all the
> information it needs. Perhaps your script will have to be a bit more
> verbose (for instance, by explicitly testing for CATALINA_BASE), but it
> is certainly not prohibited from doing it's own work.
That's absolutely right. A patch certainly is not necessary. My thought behind
the question was just: would it be better to solve this once for everybody by
changing catalina.sh, instead of let everybody handle that in their own
script?
> if a user is going to use CATALINA_BASE, it
> must be set before any scripts are called, otherwise CATALINA_BASE
> doesn't get used at all (and CATALINA_HOME is the appropriate location
> of whatever configuration files you want to use).
>
> There will be cases where CATALINA_BASE is not set at all, and therefore
> essentially defaults to CATALINA_HOME.
Well, actually, from a few lines down in catalina.sh, CATALINA_BASE *is*
always set (to the value of CATALINA_HOME if not set to anything else). The
rest of the script *does* use CATALINA_BASE unconditionally, and it is used to
set the catalina.base system property which *is* always used by Tomcat
internally.
> It's probably a good thing for setenv.sh to be able to determine whether
> CATALINA_BASE is explicitly set
I did not think I'd ever need this, that's why I asked for other opinions. In
that case my proposed change is undesirable.
>
> Does your setenv.sh script expect to use a default file
> (CATALINA_HOME/conf/whatever.jmx) and allow it to be overridden in
> CATALINA_BASE/conf/whatever.jmx?
No, though it might be a good idea after all. My original plan was to use one
separate file per instance, no matter whether that instance is standalone or
part of a multi-instance setup.
> If so, then your script will have to
> test both locations, anyway, because you'll have to check to see if the
> (optional) override file exists in CATALINA_BASE and then check for it
> again under CATALINA_HOME.
>
> Having a blank CATALINA_BASE seems to be helpful in this situation.
Well, then there *is* reason to leave it as is. That is a helpful answer to my
question.
> Is there a situation that you think doesn't work given the current
> script behavior?
No, and I didn't want to imply that. But in general, one can change something
that already works to make it work a little bit better :-)
Thanks for your time.
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]