There are many ways to take advantage of Coyote in Tomcat 4, but I'd like to
start with some limited changes at first. Most of these proposed changes are
Coyote-related (hence the subject of the message), and all involve some
refactoring / API additions.

A) URI decoding refactoring. To avoid doing some URI decoding in many places
in the pipeline, a decodedURI field (with associated getter/setter) should
be added in the HttpRequest interface, and used in the Catalina pipeline.
This also has the advantage to guarantee that no double URI decoding occurs
(which can lead to URI-based security attacks).

<ballot>
[ ] +1
[ ] +0
[ ] -1:

</ballot>

B) Use Coyote as the default HTTP connector in 4.0-HEAD, replacing the old
connector, which has many shortcoming (slow performance on output, HTTP
handling limitations and extreme complexity). Initial tests results and
benchmarks with Coyote are extremely positive so far.

<ballot>
[ ] +1
[ ] +0
[ ] -1:

</ballot>

C) Add better lifecycle handling in the resources. A start method is needed
(which could be called 'allocate' to mirror the 'release' method), because
it is currently not possible to restart a stopped context. In the 4.0
branch, the patch introducing the 'release' method must either be reverted,
or these proposed changes must also be ported to 4.0.
Thanks to Jean-Francois Clere for the report and debugging of this problem.

<ballot>
[ ] +1
[ ] +0
[ ] -1:

</ballot>

D) Deprecate the o.a.catalina.connector package. This package *SHOULD NOT*
be used for any new connector development. To make this more obvious, I'd
like to deprecate all classes in this package and subpackages. The binaries
will also be packaged in a separate JAR file (tentatively named
catalina-legacy.jar). This package will continue to be maintained on a case
by case basis. The facades will not be deprecated, and two new helper
objects will be introduced to handle the need for "fake" req/resp when
requesting a JSP precompilation with a load-on-startup (see bug 4518 for
more details).

<ballot>
[ ] +1
[ ] +0
[ ] -1:

</ballot>

E) Use commons-logging in Coyote, by adding a get/setLogger on the Processor
interface. Otherwise, the processor has no way to cleanly handle logging.
commons-logging is already used by other j-t-c components. At the moment,
the HTTP/1.1 processor "logs" problems as stack traces on the stderr; this
needs to be improved. When I originally designed most of the base
interfaces, commons-logging didn't exist yet, and I didn't feel like adding
yet another logging interface.

<ballot>
[ ] +1
[ ] +0
[ ] -1:

</ballot>

+1 for everything. Thanks for voting / commenting :)

Remy


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to