Hi,
Sorry for delaying my participation to this project for so long. If you
remember the initial commons proposal, I said I would donate an HTTP client
library to the commons project. Fixes and tweaks took more time than
expected, and I am now (finally) ready to propose it to the commons.
This HTTP/1.1 client library has been developed as part of the Slide
project, as the basis for a WebDAV client (WebDAV is a protocol for remote
authoring, and is an extension of HTTP/1.1).
The library supports most of the features in HTTP/1.1. It can be found in
the jakarta-slide repository, in src/webdav/client directory. The package is
org.apache.webdav.lib (without the WebDAV specific features).
This package can be used for a lot of things, including :
- building applications HTTP-aware applications which may require a better
control over the HTTP layer
- Developing libraries to support protocols extending HTTP
- Building HTTP/1.1 test suites (which is going to be very important for
Tomcat 4)
Remy
Note : Since it seems to be quite popular, I'm reusing the same proposal
template.
Note 2 : Anyone can feel free to propose a fancy project name :)
Note 3 : The package in the Slide project contains a lot of WebDAV specific
features. Those will be removed, and only the HTTP specific parts will be
moved to commons. The library design allows to do this very easily.
---------------------------------------------------
Proposal for HTTP/1.1 Libary Package
(0) Rationale
HTTP is the main protocol used today on the internet. Although the JDK
includes basic support for building HTTP-aware client applications, it
doesn't provide the flexibility or ease of use needed for many projects.
A Commons package would give committers an opportunity to coordinate
their efforts to create and maintain a efficient, feature-rich package
under the ASF license.
(1) Scope of the Package
The package shall create and maintain a Java library implementing the client
side of the HTTP/1.1 protocol, as defined in RFC 2616 and RFC 2617.
The package should :
- Have an API which should be as simple to use as possible
- Be easy to extend
(1.5) Interaction With Other Packages
The HTTP/1.1 library relies on:
* Java Development Kit (Version 1.1 or later)
(2) Initial Source of the Package
The initial codebase exists in the jakarta-slide cvs tree under the
org.apache.webdav.lib package. It would be moved to commons under
the http subdirectory.
The proposed package name for the new component is org.apache.commons.http.
(3) Required Jakarta-Commons Resources
CVS Repository - New directory http in the jakarta-commons CVS
repository.
Add the set of initial committers to jakarta-commons. All of the committers
proposed already have an apache.org account.
Mailing List - Discussions will take place on the general
[EMAIL PROTECTED] mailing list. To help list
subscribers identify messages of interest, it is suggested that the
message subject of messages about this component be prefixed with
[HTTP Library].
Bugzilla - New component "HTTP Library" under the "Commons" product
category, with appropriate version identifiers as needed.
Jyve FAQ - New category "commons-http" (when available).
(4) Initial Committers
Remy Maucherat (remm) - designed the API, and also responsible for most of
the things wrong in the implementation
B.C. Holmes (bcholmes) - additional design (inactive committer)
Sung-Gu Park (jericho) - lots of fixes and additional design
Juergen Pill (juergen) - fixes and additional design