Jon,
I *absolutely* agree with the need to make the Tomcat build environment easier to
setup. The current situation is a *serious* barrier to encouraging wider
participation. There's no rocket science required at present, but few of us have time
to mess about and I for one gave up at least three times before circumstances forced
me to work through the process.
However, I don't know if it's just me, but I really find it frustrating when build
environments depend upon relative file structures extending beyond the filepath of the
root project. Inotherwords, I totally agree with the idea of having a standard
directory structure option, but I would much prefer that this standard directory
structure appear inside of the jakarta-tomcat-4.0 directory.
Here are some reasons:
1. Good old programming 'side-effects' - intuitively, you do not expect that changes
to directories outside of the tomcat directory will impact on the building of tomcat.
If you are moving your tomcat build directory to a new location, you don't want to
have to look at readme files to work out what has to move with the directory at the
same time.
2. If the 'jakarta-ant' and 'jakarta-servletapi' directories are full source
distributions and a developer is involved in the ongoing development of one of these
projects as well (e.g. ant) there can be a conflict between the version requirements
of Tomcat and the ongoing work on the latest version of a project it depends upon. To
put it in other words, if you are working on adding new features to the very latest
version of ant you may be working with a version which is incompatible with the
current build of tomcat. You are therefore forced to maintain two separate copies of
ant - one to make tomcat work, one for ant development.
My preference would be to simply include the distributable jar files of required
libraries in a lib/ or similar directory inside the tomcat directory. Those libraries
that are distributable could be included in the CVS but optionally excluded from the
nightly builds and distributions (to reduce file size). Users would be asked to place
the relevant .jar files of non-distributable libraries in the same place. This is
basically the model for cocoon - which is *way* simpler to build than tomcat. This
also makes life a lot easier when moves are made to use newer versions of libraries
for Tomcat, because they can simply be updated in the CVS (if they are distributable).
Stuart.
On Thursday, December 14, 2000, at 04:54 AM, Jon Stevens wrote:
> i would just like to point out that setting up an environment to build the
> java portion of tomcat-4.0 from CVS is WAY to hard. you have to know way to
> much about where things should go and such.
>
> for example, the documentation states that you should point to your JSSE
> installation directory. given that JSSE instructs you to put things into
> $JAVA_HOME/lib/ext, the tomcat build system doesn't assume that, it assumes
> is to be the place where you downloaded and un-tar'ed JSSE. i think that the
> documentation should be more clear and also the build system should not
> require you to set a bunch of environment variables if you have a well
> defined directory structure...keep reading...
>
> what i propose is to ask people to either setup their directory structure in
> a certain way or to set environment variables.
>
> for example:
>
> /stuff
> /jakarta-tomcat-4.0
> /jakarta-ant
> /jakarta-servletapi
> /jsse*
> /jmx*
> /jndi*
> ...
>
> Then, Tomcat's build files will first try to find relative paths to the
> other directories and if it can't find them, it will then look for env
> variables. I think that this is a perfectly acceptable build system for now.
>
> one thing i'm working on right now is adding the above functionality and
> won't check in my changes until after m5.
>
> thanks,
>
> -jon
>
>
-------------------------------------------------------------------------
Stuart Roebuck [EMAIL PROTECTED]
Lead Developer Mac OS X, Java, XML, etc.
ADOLOS http://www.adolos.com/