diff --git a/module-client/src/main/resources/META-INF/LICENSE b/module-client/src/main/resources/META-INF/LICENSE new file mode 100644 index 000000000..2bb9ad240 --- /dev/null +++ b/module-client/src/main/resources/META-INF/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/module-client/src/main/resources/META-INF/NOTICE b/module-client/src/main/resources/META-INF/NOTICE new file mode 100644 index 000000000..61d63927f --- /dev/null +++ b/module-client/src/main/resources/META-INF/NOTICE @@ -0,0 +1,5 @@ +Apache HttpComponents Client - HttpClient module +Copyright 2006-2007 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). diff --git a/module-client/src/site/apt/index.apt b/module-client/src/site/apt/index.apt new file mode 100644 index 000000000..e68992aa8 --- /dev/null +++ b/module-client/src/site/apt/index.apt @@ -0,0 +1,18 @@ + ---------- + HttpComponents HttpClient Module + ---------- + ---------- + ---------- + +HttpClient + + This module is a full-featured, {{{http://www.ietf.org/rfc/rfc2616.txt}RFC 2616}} compliant + HTTP client built on top of {{{/httpcomponents/httpcomponents-core/index.html}HttpCore}} + + {{{apidocs/index.html}Javadocs}} + + {{{xref/index.html}Project sources}} + + {{{dependencies.html}Dependencies}} + + {{{issue-tracking.html}Issue Tracking}} diff --git a/module-client/src/site/resources/css/site.css b/module-client/src/site/resources/css/site.css new file mode 100644 index 000000000..8274f8585 --- /dev/null +++ b/module-client/src/site/resources/css/site.css @@ -0,0 +1 @@ +@import url("http://jakarta.apache.org/style/jakarta-maven.css"); \ No newline at end of file diff --git a/module-client/src/site/site.xml b/module-client/src/site/site.xml new file mode 100644 index 000000000..9a3e617eb --- /dev/null +++ b/module-client/src/site/site.xml @@ -0,0 +1,22 @@ + + + + Jakarta + http://jakarta.apache.org/images/logos/jakarta-logo.png + http://jakarta.apache.org/ + + + + HttpComponents HttpClient + http://jakarta.apache.org/httpcomponents/images/logos/httpcomponents.png + http://jakarta.apache.org/httpcomponents/ + + + + + + + ${reports} + + + diff --git a/src/site/apt/download.apt b/src/site/apt/download.apt new file mode 100644 index 000000000..90dba96c6 --- /dev/null +++ b/src/site/apt/download.apt @@ -0,0 +1,30 @@ + ---------- + HttpComponents HttpClient Download Page + ---------- + ---------- + ---------- + +HttpClient Downloads + + The latest release available for download: + + {{{http://jakarta.apache.org/site/downloads/downloads_httpcomponents-httpclient.cgi}4.0-alpha1}} - + {{{http://www.apache.org/dist/jakarta/httpcomponents/httpclient/RELEASE_NOTES.txt}Release Notes}} - + {{{http://www.apache.org/dist/java-repository/httpcomponents-httpclient/licenses/LICENSE.txt}License}} + +Dependency management with Maven + + If you are using {{{http://maven.apache.org}Maven}} for your project, you can create a dependency + in your {{{http://maven.apache.org/guides/introduction/introduction-to-the-pom.html}pom.xml}} + by adding the following block to the dependency descriptor: + +* HttpComponents Client + +------------------------- + + org.apache.httpcomponents + httpclient + 4.0-alpha1 + compile + +------------------------- diff --git a/src/site/apt/examples.apt b/src/site/apt/examples.apt new file mode 100644 index 000000000..d658362b5 --- /dev/null +++ b/src/site/apt/examples.apt @@ -0,0 +1,69 @@ + ---------- + HttpComponents HttpClient Examples + ---------- + ---------- + ---------- + +HttpClient Examples + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java}Direct request}} + + This example demonstrates how to send an HTTP request directly. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java}Request via a proxy}} + + This example demonstrates how to send an HTTP request via a proxy. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientConnectionRelease.java}Connection management}} + + This example demonstrates the recommended way of using API to make sure the underlying + connection gets released back to the connection manager. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAbortMethod.java}Abort method}} + + This example demonstrates how to abort an HTTP request before its normal completion. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAuthentication.java}Client authentication}} + + This example uses HttpClient to execute an HTTP request against a target site that requires user + authentication. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java}Proxy authentication}} + + A simple example showing execution of an HTTP request over a secure connection tunneled through + an authenticating proxy. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientChunkEncodedPost.java}Chunk encoded POST}} + + This example shows how to stream out a request entity using chunk encoding. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientCustomContext.java}Custom execution context}} + + This example demonstrates the use of a local HTTP context populated custom attributes. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientFormLogin.java}Form based logon}} + + This example demonstrates how HttpClient can be used to perform form-based logon. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java}Threaded request execution}} + + An example that executes HTTP requests from multiple worker threads. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientCustomSSL.java}Custom SSL context}} + + This example demonstrates how to create secure connections with a custom SSL context. + + * {{{http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientGZipContentCompression.java}Custom protocol interceptors}} + + This example shows the use of protocol interceptors to transparently modify properties of HTTP + messages sent / received by the HTTP client. + + In this particular case HTTP client is made capable of transparent content GZIP compression by + adding two protocol interceptors: a request interceptor that adds 'Accept-Encoding: gzip' header + to all outgoing requests and a response interceptor that automatically expands compressed + response entities by wrapping them with a uncompressing decorator class. The use of protocol + interceptors makes content compression completely transparent to the consumer of the HttpClient + interface. + + + diff --git a/src/site/apt/index.apt b/src/site/apt/index.apt new file mode 100644 index 000000000..4b3d03e51 --- /dev/null +++ b/src/site/apt/index.apt @@ -0,0 +1,102 @@ + ---------- + HttpComponents HttpClient Overview + ---------- + ---------- + ---------- + +HttpClient Overview + + The Hyper-Text Transfer Protocol (HTTP) is perhaps the most significant protocol used on the + Internet today. Web services, network-enabled appliances and the growth of network computing + continue to expand the role of the HTTP protocol beyond user-driven web browsers, while + increasing the number of applications that require HTTP support. + + Although the java.net package provides basic functionality for accessing resources via HTTP, it + doesn't provide the full flexibility or functionality needed by many applications. HttpClient + seeks to fill this void by providing an efficient, up-to-date, and feature-rich package + implementing the client side of the most recent HTTP standards and recommendations. + + Designed for extension while providing robust support for the base HTTP protocol, HttpClient + may be of interest to anyone building HTTP-aware client applications such as web browsers, web + service clients, or systems that leverage or extend the HTTP protocol for distributed + communication. + + HttpClient has a modular structure with a base module and a number of specialized + extensions. + +Features + + * Standards based, pure Java, implementation of HTTP versions 1.0 and 1.1 + + * Full implementation of all HTTP methods (GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE) + in an extensible OO framework. + + * Supports encryption with HTTPS (HTTP over SSL) protocol. + + * Granular non-standards configuration and tracking. + + * Transparent connections through HTTP proxies. + + * Tunneled HTTPS connections through HTTP proxies, via the CONNECT method. + + * Authentication using Basic, Digest and the encrypting NTLM (NT Lan Manager) methods. + + * Plug-in mechanism for custom authentication methods. + + * Multi-Part form POST for uploading large files. + + * Pluggable secure sockets implementations, making it easier to use third party solutions + + * Connection management support for use in multi-threaded applications. Supports setting the + maximum total connections as well as the maximum connections per host. Detects and closes + stale connections. + + * Automatic Cookie handling for reading Set-Cookie: headers from the server and sending them + back out in a Cookie: header when appropriate. + + * Plug-in mechanism for custom cookie policies. + + * Request output streams to avoid buffering any content body by streaming directly to the socket + to the server. + + * Response input streams to efficiently read the response body by streaming directly from the + socket to the server. + + * Persistent connections using KeepAlive in HTTP/1.0 and persistance in HTTP/1.1 + + * Direct access to the response code and headers sent by the server. + + * The ability to set connection timeouts. + + * Source code is freely available under the Apache Software License. + +Modules + + HttpClient has a modular structure and consists of several modules. + +* HttpClient module + + The {{{httpclient/index.html}HttpClient}} is a full-featured, standards compliant HTTP client + built on top of {{{/httpcomponents/httpcomponents-core/index.html}HttpCore}}. + +Standards Compliance + + HttpClient strives to conform to the following specifications endorsed by the Internet + Engineering Task Force (IETF) and the internet at large: + + * {{{http://www.ietf.org/rfc/rfc1945.txt}RFC 1945}} - Hypertext Transfer Protocol -- HTTP/1.0 + + * {{{http://www.ietf.org/rfc/rfc2616.txt}RFC 2116}} - Hypertext Transfer Protocol -- HTTP/1.1 + + * {{{http://www.ietf.org/rfc/rfc2617.txt}RFC2617}} HTTP Authentication: Basic and Digest Access + Authentication + + * {{{http://www.ietf.org/rfc/rfc2109.txt}RFC2109}} HTTP State Management Mechanism (Cookies) + + * {{{http://www.ietf.org/rfc/rfc2965.txt}RFC2965}} HTTP State Management Mechanism (Cookies v2) + + * {{{http://www.ietf.org/rfc/rfc1945.txt}RFC1945}} Form-based File Upload in HTML + +Examples + + Some examples of HttpClient components in action can be found {{{examples.html}here}} diff --git a/src/site/resources/css/site.css b/src/site/resources/css/site.css new file mode 100644 index 000000000..013020460 --- /dev/null +++ b/src/site/resources/css/site.css @@ -0,0 +1 @@ +@import url("http://jakarta.apache.org/style/jakarta-maven.css"); diff --git a/src/site/site.xml b/src/site/site.xml new file mode 100644 index 000000000..78040aac3 --- /dev/null +++ b/src/site/site.xml @@ -0,0 +1,65 @@ + + + + + + Jakarta + http://jakarta.apache.org/images/logos/jakarta-logo.png + http://jakarta.apache.org/ + + + + HttpComponents HttpCore + http://jakarta.apache.org/httpcomponents/images/logos/httpcomponents.png + http://jakarta.apache.org/httpcomponents/ + + + + + + + + + + + + + + + + + + + + + + +