tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher K. St. John" <>
Subject Re: MinTC, "terrible rudeness", persistence
Date Fri, 19 Apr 2002 19:19:04 GMT

 Skip ahead to the "<substantive-discussion>" section if
you're bored with the other topics in this thread. wrote:
> But what you are doing is a fork by all definitions that
> I know.

 It's an alternative implementation of some of the Catalina
interfaces, but it's clearly not a fork. I'm using this as a
working definition: A fork refers to what you do in a revision
control system when you want to work independently on two
versions of the same code. By extension, on Open Source projects
it means taking a copy of the code base and  making your own
copy that isn't kept synchronized with the mainline branch. 

 MinTC steals a little bit of code from some of the 
o.a.c.core classes, but it doesn't copy any of them. What
it uses of the Catalina code, it uses completely intact
(I'm currently tracking CVS HEAD).

 So it's not a fork. Forks suck. Alternative API implementations,
on the other hand, are generally considered a good thing.
Some spec processes even require them!

> You must at least try first.

 I did. Don't take my word for it, it's in the archives.


 I rejected the idea not because it was met with hostility
(I got good feedback), but because the discussion (on
tomcat-dev) convinced me that it was not the right
technical solution.

 It comes down to the fact that totally
generic code has some rather extreme practical drawbacks.
The classes within o.a.c.core,for example, need to be
able to depend to some degree on each other's innards.
As Craig said:

  "Within a particular package (org.apache.catalina.core),
   I don't see a problem with the classes depending on
   each other's insides -- the package as a whole is
   designed, as a unit, to provide the required functionality
   for that package."

 o.a.c.core's required functionality is simply very 
different than that of MinTC.  MinTC has such a different
audience that it didn't seem reasonable to
saddle Tomcat 4 with MinTC's requirements. Integrating
the two would require that every last bit of functionality
was somehow modularized out of Tomcat 4 core, and that's

 It's like making a combination jackhammer and framing
hammer just because they both have the word "hammer" in
their name. Sure, you could do it, but it would be silly.
Right tool for the right job, and all that.

 The whole "write very specific tools but make them
interoperate" thing ("The Unix Philosophy") isn't for
everyone. Some people prefer other approaches, like
extreme factoring and adding loads of hooks. It's all
good. Knowing MinTC is a Unix-philosophy sort of project
might make it easier to understand where I'm going
with it.


 Again, the feedback is good. It all helps, especially
the architecture discussion, even if it's negative.
(Although I can't help but wish some of the people 
commenting now would have piped up earlier :-)

Christopher St. John

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message