Legacy

Project

Project Documentation

ASF

The Apache HttpComponents project is responsible for creating and maintaining a toolset of low level Java components focused on HTTP and associated protocols.

We develop and maintain a component called HttpCore, which addresses the basic needs for communicating via HTTP on the client and server side. HttpCore defines a framework for extending the provided functionality beyond the basic needs.

We develop and maintain a component called HttpClient, which builds on HttpCore and adds functionality typically required for client-side HTTP communication. In particular, HttpClient adds support for cookies, authentication, and client-side connection management.

HttpCore and HttpClient are at the center of the Apache HttpComponents project. All other activities orbit around this duo.

We maintain the codebase of the Jakarta Commons HttpClient, also known as Commons HttpClient 3.1, until such time that the new HttpClient based on HttpCore is considered ready for use in production systems.

We are looking for new components that build upon and extend the functionality of the existing ones. We are also looking for new components that complement the functionality of the existing ones and make them more useful or easier to use.

We are open to give a home to applications that derive a significant part of their functionality from our components, if approached by such projects.

The history of the HttpComponents starts with the now retired Jakarta Slide project. Slide was a WebDAV server including a client component, and the WebDAV protocol builds on HTTP. There was interest in using the client-side HTTP implementation independently of Slide. The code was spun off from Slide in 2001 to become the HttpClient subproject of the Jakarta Commons.

Since it generated a disproportional amount of traffic on the Commons mailing lists, HttpClient activity was moved to separate mailing lists. This started the dissociation of HttpClient from Commons, which continued when HttpClient was promoted to the Jakarta subproject level in 2004. The latter event is recorded as the oldest News item of the HttpComponents project.

The shortcomings in the design of HttpClient, as explained in the Lessons Learned, created interest in redesigning the API from scratch. To that end, the Jakarta HttpComponents project replaced the HttpClient project in 2005. The new project was charged with the tasks of developing a successor to HttpClient 3.x, and of maintaining the existing codebase until the new one is ready to take over.

The Commons, cradle of HttpClient, left Jakarta in 2007 to become an independent Top Level Project. Later in the same year, the HttpComponents project also left Jakarta to become an independent Top Level Project, taking the responsibility for maintaining HttpClient 3.x with it. Our TLP resolution is presented below.

The Apache HttpComponents project was established as an Apache top level project in November 2007, when the Apache Board approved the following resolution:

Establish the Apache HttpComponents project
WHEREAS, the Board of Directors deems it to be in the best interests of the Foundation and
consistent with the Foundation's purpose to establish a Project Management Committee charged with
the creation and maintenance of open-source software related to a toolset of low level Java
components focused on HTTP and associated protocols, and of applications based on these components,
for distribution at no charge to the public.
NOW, THEREFORE, BE IT RESOLVED, that a Project Management Committee (PMC), to be known as "Apache
HttpComponents Project", be and hereby is established pursuant to Bylaws of the Foundation; and be
it further
RESOLVED, that the Apache HttpComponents Project be and hereby is responsible for the creation and
maintenance of a toolset of low level Java components focused on HTTP and associated protocols, and
of applications based on these components; and be it further
RESOLVED, that the office of "Vice President, Apache HttpComponents" be and hereby is created, the
person holding such office to serve at the direction of the Board of Directors as the chair of the
Apache HttpComponents Project, and to have primary responsibility for management of the projects
within the scope of responsibility of the Apache HttpComponents Project; and be it further
RESOLVED, that the persons listed immediately below be and hereby are appointed to serve as the
initial members of the Apache HttpComponents Project:
* Oleg Kalnichevski <olegk AT apache DOT org>
* Sebastian Bazley <sebb AT apache DOT org>
* Erik Abele <erikabele AT apache DOT org>
* Ortwin Gl�ck <oglueck AT apache DOT org>
* Roland Weber <rolandw AT apache DOT org>
* Ant Elder <antelder AT apache DOT org>
* Paul Fremantle <pzf AT apache DOT org>
* Asankha Perera <asankha AT apache DOT org>
NOW, THEREFORE, BE IT FURTHER RESOLVED, that Erik Abele be appointed to the office of Vice
President, Apache HttpComponents, to serve in accordance with and subject to the direction of the
Board of Directors and the Bylaws of the Foundation until death, resignation, retirement, removal or
disqualification, or until a successor is appointed; and be it further
RESOLVED, that the Apache HttpComponents Project be and hereby is tasked with the migration and
rationalization of the Apache Jakarta HttpComponents subproject; and be it further
RESOLVED, that the Apache HttpComponents Project be and hereby is tasked with the migration and
maintenance of the codebase formerly known as Apache Jakarta Commons HttpClient until it is
obsoleted by the components of the Apache HttpComponents Project; and be it further
RESOLVED, that all responsibilities pertaining to the Apache Jakarta HttpComponents subproject and
the former Apache Jakarta Commons HttpClient codebase encumbered upon the Apache Jakarta Project are
hereafter discharged.