Re: TC4 base dir
"Craig R. McClanahan" <[EMAIL PROTECTED]> wrote: > The patch below deals with only one of 33 places that the "catalina.home" > system property is referenced in the Catalina source code -- I think we'd > want to consider them all :-). Yeah, I know, I was just "scratching the itch" that I had at the time. ;-) > In order to support the idea of one install of Tomcat 4 being used for > more than one configuration, we have to decide which subdirectories of > $CATALINA_HOME should be made relative to some new location (specified by > a command line option or a different environment variable). Here's my > proposed breakdown: Sounds good to me! Cheers Geoff
Re: TC4 base dir
On Mon, 27 Aug 2001, Geoff Soutter wrote: > > while we are on a related topic, how about (re) considering this patch? > The patch below deals with only one of 33 places that the "catalina.home" system property is referenced in the Catalina source code -- I think we'd want to consider them all :-). In order to support the idea of one install of Tomcat 4 being used for more than one configuration, we have to decide which subdirectories of $CATALINA_HOME should be made relative to some new location (specified by a command line option or a different environment variable). Here's my proposed breakdown: All of the following directories would be considered part of the "static" part of a Tomcat 4 installation, and would remain relative to $CATALINA_HOME (and thus shared by all uses): bin/ classes/ common/ classes/ lib/ jasper/ lib/ server/ All of the following directories, unless configured to absolute paths, would be resolved relative to a new $CATALINA_BASE directory (defaults to $CATALINA_HOME if not set) that would be used to configure a new "catalina.base" system property: conf/ logs/ webapps/ work/ With this arrangement, all of the binaries and Java classes installed in $CATALINA_HOME would be shared by all uses, but the configuration files, log files, web applications, and work directories would be unique. Does that sound like the right breakdown? > geoff > Craig
Re: TC4 base dir
"Craig R. McClanahan" <[EMAIL PROTECTED]> wrote: > No, Tomcat 4 doesn't currently have a thing like "home" -- patches are > welcome! But, my point is you don't *need* "home" to accomplish the > goals you have articulated: while we are on a related topic, how about (re) considering this patch? geoff - Original Message - From: "Geoff Soutter" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, June 19, 2001 1:36 PM Subject: [t4] [patch] for "inconvenient" -config current dir > Hi there, > > As I've been twiddling with T4 again recently this problem has resurfaced. > In T3, I was able to specify the -config option relative to my current > directory. T4 has changed this so that a relative path used with -config is > resolved relative to CATALINA_HOME. > > I find this annoying because I like to store my server.xml files into our > version control system, and it means that relative paths from my VCS work > dir to the server.xml don't work any more. I have to use something like > //tomcat4/server.xml. Now, if you use an IDE to debug your > servlet in Tomcat, you need to enter this path into the config. And that > means that every time you create a new work dir, you need to update your IDE > project file. > > So, can we please change back to "-config relative to the CWD" the way > Tomcat 3 worked? Or perhaps at least get it to check for it relative to CWD > before checking relative to CATALINA_HOME? > > All thats required is to remove/change the absolute path stuff in the > configFile() method of Catalina.java like so: > > protected File configFile() { > File file = new File(configFile); > /* > NOTE: alternatively use !file.exists() here for "fallback" > from CWD to CATALINA_HOME > if (!file.isAbsolute()) > file = new File(System.getProperty("catalina.home") + > File.separator + configFile); > */ > return (file); > } > > Geoff >
Re: TC4 base dir
On Fri, 24 Aug 2001, Craig R. McClanahan wrote: | > > > That's cool about the server.xml file, and you can do the individual | > > > elements, as you said (logger, default valve's logger for access, | > > > etc.) but what I'm wondering about is if there's anything analogous to | > > > changing the entire base dir (not just apps, but entire thing a la | > > > 3.x) ? | > > | > > The entire base directory is wherever the CATALINA_HOME environment | > > variable says it is, if you have that defined already.I have my | > > CATALINA_HOME always set, so that I can have little scripts like | > > "catstart" to start it on demand from whatever directory I'm in: | > > | > > $CATALINA_HOME/bin/catalina.sh start $@ | > | > Ok my last try since I think I'm not being clear enough =) | > | > TC 3.x has this: | > | > | > | > | > ...allowing me to use a single $TOMCAT_HOME/conf, /bin, etc. dir, but | > many instances of /webapps, /work and /logs spread out wherever I | > like. If Catalina has this something similar, then I'd like to make | > sure I document it in my "Running Multiple Instances" doc =) | > | > - r | > | > | | No, Tomcat 4 doesn't currently have a thing like "home" -- patches are | welcome! But, my point is you don't *need* "home" to accomplish the | goals you have articulated: In my setup I have a couple of developers which need their own instance of Tomcat. It's very inconvenint that you _have_ to install tomcat at the place where you want to run it, and thus cannot handle tomcat as just another binary, which you just run with some options or env-vars set correctly. And apparently it's just a few env-variables that isn't handled quite correctly that messes up everything. I remeber that I managed to get it to run with another server.xml file (or whatever it's called), but it requeried some variable to be set to the install dir (CATALINA_HOME?). But doing this made it scan the install-webapps dir, starting up all those webapps that are bundled with the dist. Basically, what it lacks is a distinct CATALINA_HOME, which points to where it's installed (keeping with the naming of the JAVA_HOME variable?) and a CATALINA_WORK or similar, where it's running. These two variables are treated very inconsistent now, and have (as I remeber it) to point to the same location to work properly. This is such a banal feature that I cannot understand why it isn't implemented. There have been others requesting this too! And I know your answer, revolving around "scratch your own bleedin' itch!! ;)", but sadly I currently don't have time to sit down and understand all that startup stuff, no matter how much I'd like to do just that. I do actually believe that folks that know the startup sequence of Tomcat4 could change this behaviour in about 5 minutes. I hope that this is _fixed_ before you go final. -- Mvh, Endre
Re: TC4 base dir
> No, Tomcat 4 doesn't currently have a thing like "home" -- patches are > welcome! But, my point is you don't *need* "home" to accomplish the > goals you have articulated: Awesome! Thanks for the detailed reply =) - r
Re: TC4 base dir
On Fri, 24 Aug 2001, Rob S. wrote: > Date: Fri, 24 Aug 2001 12:41:00 PDT > From: Rob S. <[EMAIL PROTECTED]> > Reply-To: [EMAIL PROTECTED], Rob S. <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: Re: TC4 base dir > > > > That's cool about the server.xml file, and you can do the individual > > > elements, as you said (logger, default valve's logger for access, > > > etc.) but what I'm wondering about is if there's anything analogous to > > > changing the entire base dir (not just apps, but entire thing a la > > > 3.x) ? > > > > The entire base directory is wherever the CATALINA_HOME environment > > variable says it is, if you have that defined already. I have my > > CATALINA_HOME always set, so that I can have little scripts like > > "catstart" to start it on demand from whatever directory I'm in: > > > > $CATALINA_HOME/bin/catalina.sh start $@ > > Ok my last try since I think I'm not being clear enough =) > > TC 3.x has this: > > > > > ...allowing me to use a single $TOMCAT_HOME/conf, /bin, etc. dir, but > many instances of /webapps, /work and /logs spread out wherever I > like. If Catalina has this something similar, then I'd like to make > sure I document it in my "Running Multiple Instances" doc =) > > - r > > No, Tomcat 4 doesn't currently have a thing like "home" -- patches are welcome! But, my point is you don't *need* "home" to accomplish the goals you have articulated: * For spreading webapp directories around, you have two options: - Use an absolute path for the attribute - Use an absolute path for the attribute to set the base directory for all apps on that particular virtual host, and let the contexts inside stay relative to that. You'll note that in the default configuration, appBase is set to "webapps" which (since it is relative) is resolved against $CATALINA_HOME. NOTE: automatic context loading works in the "appBase" directory of every that you define. * For spearding logs around, use the "directory" attribute on your elements. Default value is "$CATALINA_HOME/logs". * For spreading work directories around, use the "workDir" attribute on your elements. Default is calculated based on "$CATALINA_HOME/work" and then adding directory levels for the virtual host and the context path (minus the slash). The only things that are fixed is that the following directories are always assumed to be relative to $CATALINA_HOME: * bin * classes * common/classes * common/lib * conf * jasper * lib * server/classes * server/lib Everything else is just convenient defaults, whose values were initially selected to be familiar to Tomcat 3.x users. Craig
Re: TC4 base dir
> > That's cool about the server.xml file, and you can do the individual > > elements, as you said (logger, default valve's logger for access, > > etc.) but what I'm wondering about is if there's anything analogous to > > changing the entire base dir (not just apps, but entire thing a la > > 3.x) ? > > The entire base directory is wherever the CATALINA_HOME environment > variable says it is, if you have that defined already.I have my > CATALINA_HOME always set, so that I can have little scripts like > "catstart" to start it on demand from whatever directory I'm in: > > $CATALINA_HOME/bin/catalina.sh start $@ Ok my last try since I think I'm not being clear enough =) TC 3.x has this: ...allowing me to use a single $TOMCAT_HOME/conf, /bin, etc. dir, but many instances of /webapps, /work and /logs spread out wherever I like. If Catalina has this something similar, then I'd like to make sure I document it in my "Running Multiple Instances" doc =) - r
Re: TC4 base dir
On Fri, 24 Aug 2001, Rob S. wrote: > Date: Fri, 24 Aug 2001 9:46:24 PDT > From: Rob S. <[EMAIL PROTECTED]> > Reply-To: [EMAIL PROTECTED], Rob S. <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: Re: TC4 base dir > > > There is no current means to point at a "server.xml" file that is not > > under "$CATALINA_HOME/conf", but that has nothing to do with where log > > files go (except by default) -- in your elements, just add a > > "directory" attribute. The default value is "logs" (relative paths are > > resolved against $CATALINA_HOME), but you can use an relative or absolute > > path to a directory that you would like. > > That's cool about the server.xml file, and you can do the individual > elements, as you said (logger, default valve's logger for access, > etc.) but what I'm wondering about is if there's anything analogous to > changing the entire base dir (not just apps, but entire thing a la > 3.x) ? > The entire base directory is wherever the CATALINA_HOME environment variable says it is, if you have that defined already. I have my CATALINA_HOME always set, so that I can have little scripts like "catstart" to start it on demand from whatever directory I'm in: $CATALINA_HOME/bin/catalina.sh start $@ > - r > > Craig
Re: TC4 base dir
> There is no current means to point at a "server.xml" file that is not > under "$CATALINA_HOME/conf", but that has nothing to do with where log > files go (except by default) -- in your elements, just add a > "directory" attribute.The default value is "logs" (relative paths are > resolved against $CATALINA_HOME), but you can use an relative or absolute > path to a directory that you would like. That's cool about the server.xml file, and you can do the individual elements, as you said (logger, default valve's logger for access, etc.) but what I'm wondering about is if there's anything analogous to changing the entire base dir (not just apps, but entire thing a la 3.x) ? - r
Re: TC4 base dir
On Fri, 24 Aug 2001, Rob S. wrote: > Date: Fri, 24 Aug 2001 8:14:32 PDT > From: Rob S. <[EMAIL PROTECTED]> > Reply-To: [EMAIL PROTECTED], Rob S. <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: TC4 base dir > > In TC3, you can change the base dir in server.xml, so that a new set > of /logs, /webapps, and /work would be created and used somewhere > else. In TC4, all I see is the appBase attribute for each . > As well, there aren't any command-line params that I noticed in the > startup class aside from -config. > > Can I assume that no apparent way to set it and no command-line param > means that it's not configurable? > > I'm cool with that, I'm just writing some docs for us right now and > want to be thorough! > > - r > > There is no current means to point at a "server.xml" file that is not under "$CATALINA_HOME/conf", but that has nothing to do with where log files go (except by default) -- in your elements, just add a "directory" attribute. The default value is "logs" (relative paths are resolved against $CATALINA_HOME), but you can use an relative or absolute path to a directory that you would like. Craig
TC4 base dir
In TC3, you can change the base dir in server.xml, so that a new set of /logs, /webapps, and /work would be created and used somewhere else. In TC4, all I see is the appBase attribute for each . As well, there aren't any command-line params that I noticed in the startup class aside from -config. Can I assume that no apparent way to set it and no command-line param means that it's not configurable? I'm cool with that, I'm just writing some docs for us right now and want to be thorough! - r