You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2011/07/21 21:49:07 UTC
svn commit: r1149337 - in
/httpcomponents/httpasyncclient/trunk/httpasyncclient/src:
examples/org/apache/http/examples/nio/client/
main/java/org/apache/http/impl/nio/client/
main/java/org/apache/http/nio/client/methods/
test/java/org/apache/http/impl/n...
Author: olegk
Date: Thu Jul 21 19:49:03 2011
New Revision: 1149337
URL: http://svn.apache.org/viewvc?rev=1149337&view=rev
Log:
Better API for building common HttpAsyncRequestProducers
Added:
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java (contents, props changed)
- copied, changed from r1149330, httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/BasicHttpAsyncResponseConsumer.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java (with props)
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java (with props)
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java (contents, props changed)
- copied, changed from r1149330, httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/NHttpEntityWrapper.java
Removed:
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/BasicHttpAsyncRequestProducer.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/BasicHttpAsyncResponseConsumer.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/NHttpEntityWrapper.java
Modified:
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/examples/org/apache/http/examples/nio/client/AsyncClientHttpExchangeStreaming.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncEntityRequestProducer.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncRequestProducer.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncDelete.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncGet.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncHead.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncOptions.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPost.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPut.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncTrace.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpAsync.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpsAsync.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/nio/client/methods/TestAsyncConsumers.java
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/examples/org/apache/http/examples/nio/client/AsyncClientHttpExchangeStreaming.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/examples/org/apache/http/examples/nio/client/AsyncClientHttpExchangeStreaming.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/examples/org/apache/http/examples/nio/client/AsyncClientHttpExchangeStreaming.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/examples/org/apache/http/examples/nio/client/AsyncClientHttpExchangeStreaming.java Thu Jul 21 19:49:03 2011
@@ -35,7 +35,7 @@ import org.apache.http.impl.nio.client.D
import org.apache.http.nio.IOControl;
import org.apache.http.nio.client.HttpAsyncClient;
import org.apache.http.nio.client.methods.AsyncCharConsumer;
-import org.apache.http.nio.client.methods.HttpAsyncGet;
+import org.apache.http.nio.client.methods.HttpAsyncMethods;
public class AsyncClientHttpExchangeStreaming {
@@ -44,7 +44,7 @@ public class AsyncClientHttpExchangeStre
httpclient.start();
try {
Future<Boolean> future = httpclient.execute(
- new HttpAsyncGet("http://localhost:8080/"),
+ HttpAsyncMethods.createGet("http://localhost:8080/"),
new MyResponseConsumer(), null);
Boolean result = future.get();
if (result != null && result.booleanValue()) {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/AbstractHttpAsyncClient.java Thu Jul 21 19:49:03 2011
@@ -78,6 +78,7 @@ import org.apache.http.nio.client.HttpAs
import org.apache.http.nio.client.HttpAsyncExchangeHandler;
import org.apache.http.nio.client.HttpAsyncRequestProducer;
import org.apache.http.nio.client.HttpAsyncResponseConsumer;
+import org.apache.http.nio.client.methods.HttpAsyncMethods;
import org.apache.http.nio.concurrent.BasicFuture;
import org.apache.http.nio.concurrent.FutureCallback;
import org.apache.http.nio.conn.ClientConnectionManager;
@@ -528,8 +529,8 @@ public abstract class AbstractHttpAsyncC
final HttpHost target, final HttpRequest request, final HttpContext context,
final FutureCallback<HttpResponse> callback) {
return execute(
- new BasicHttpAsyncRequestProducer(target, request),
- new BasicHttpAsyncResponseConsumer(),
+ HttpAsyncMethods.create(target, request),
+ HttpAsyncMethods.createConsumer(),
context, callback);
}
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncEntityRequestProducer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncEntityRequestProducer.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncEntityRequestProducer.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncEntityRequestProducer.java Thu Jul 21 19:49:03 2011
@@ -45,6 +45,7 @@ import org.apache.http.nio.entity.NStrin
import org.apache.http.nio.entity.ProducingNHttpEntity;
import org.apache.http.protocol.HTTP;
+@Deprecated
abstract class BaseHttpAsyncEntityRequestProducer implements HttpAsyncRequestProducer, Closeable {
private final URI requestURI;
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncRequestProducer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncRequestProducer.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncRequestProducer.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BaseHttpAsyncRequestProducer.java Thu Jul 21 19:49:03 2011
@@ -37,6 +37,7 @@ import org.apache.http.nio.ContentEncode
import org.apache.http.nio.IOControl;
import org.apache.http.nio.client.HttpAsyncRequestProducer;
+@Deprecated
abstract class BaseHttpAsyncRequestProducer implements HttpAsyncRequestProducer {
private final URI requestURI;
Copied: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java (from r1149330, httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/BasicHttpAsyncResponseConsumer.java)
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java?p2=httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java&p1=httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/BasicHttpAsyncResponseConsumer.java&r1=1149330&r2=1149337&rev=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/BasicHttpAsyncResponseConsumer.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java Thu Jul 21 19:49:03 2011
@@ -24,19 +24,18 @@
* <http://www.apache.org/>.
*
*/
-package org.apache.http.impl.nio.client;
+package org.apache.http.nio.client.methods;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.nio.ContentDecoder;
import org.apache.http.nio.IOControl;
-import org.apache.http.nio.client.methods.AbstractHttpAsyncResponseConsumer;
import org.apache.http.nio.entity.BufferingNHttpEntity;
import org.apache.http.nio.entity.ConsumingNHttpEntity;
import org.apache.http.nio.util.HeapByteBufferAllocator;
-class BasicHttpAsyncResponseConsumer extends AbstractHttpAsyncResponseConsumer<HttpResponse> {
+public class BasicHttpAsyncResponseConsumer extends AbstractHttpAsyncResponseConsumer<HttpResponse> {
private volatile HttpResponse response;
private volatile ConsumingNHttpEntity consumer;
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/BasicHttpAsyncResponseConsumer.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncDelete.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncDelete.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncDelete.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncDelete.java Thu Jul 21 19:49:03 2011
@@ -31,6 +31,10 @@ import java.net.URI;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpUriRequest;
+/**
+ * @deprecated use {@link HttpAsyncMethods#createDelete(URI)}
+ */
+@Deprecated
public class HttpAsyncDelete extends BaseHttpAsyncRequestProducer {
public HttpAsyncDelete(final URI requestURI) {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncGet.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncGet.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncGet.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncGet.java Thu Jul 21 19:49:03 2011
@@ -31,6 +31,10 @@ import java.net.URI;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
+/**
+ * @deprecated use {@link HttpAsyncMethods#createGet(URI)}
+ */
+@Deprecated
public class HttpAsyncGet extends BaseHttpAsyncRequestProducer {
public HttpAsyncGet(final URI requestURI) {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncHead.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncHead.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncHead.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncHead.java Thu Jul 21 19:49:03 2011
@@ -31,6 +31,10 @@ import java.net.URI;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpUriRequest;
+/**
+ * @deprecated use {@link HttpAsyncMethods#createHead(URI)}
+ */
+@Deprecated
public class HttpAsyncHead extends BaseHttpAsyncRequestProducer {
public HttpAsyncHead(final URI requestURI) {
Added: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java?rev=1149337&view=auto
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java (added)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java Thu Jul 21 19:49:03 2011
@@ -0,0 +1,196 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.http.nio.client.methods;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URI;
+
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpOptions;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.methods.HttpTrace;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.client.utils.URIUtils;
+import org.apache.http.nio.client.HttpAsyncRequestProducer;
+import org.apache.http.nio.client.HttpAsyncResponseConsumer;
+import org.apache.http.nio.entity.NByteArrayEntity;
+import org.apache.http.nio.entity.NStringEntity;
+import org.apache.http.protocol.HTTP;
+
+public final class HttpAsyncMethods {
+
+ public static HttpAsyncRequestProducer create(final HttpHost target, final HttpRequest request) {
+ if (target == null) {
+ throw new IllegalArgumentException("HTTP host may not be null");
+ }
+ if (request == null) {
+ throw new IllegalArgumentException("HTTP request may not be null");
+ }
+ return new HttpAsyncRequestProducerImpl(target, request);
+ }
+
+ public static HttpAsyncRequestProducer create(final HttpUriRequest request) {
+ if (request == null) {
+ throw new IllegalArgumentException("HTTP request may not be null");
+ }
+ HttpHost target = URIUtils.extractHost(request.getURI());
+ return new HttpAsyncRequestProducerImpl(target, request);
+ }
+
+ public static HttpAsyncRequestProducer createGet(final URI requestURI) {
+ return create(new HttpGet(requestURI));
+ }
+
+ public static HttpAsyncRequestProducer createGet(final String requestURI) {
+ return create(new HttpGet(URI.create(requestURI)));
+ }
+
+ public static HttpAsyncRequestProducer createHead(final URI requestURI) {
+ return create(new HttpGet(requestURI));
+ }
+
+ public static HttpAsyncRequestProducer createHead(final String requestURI) {
+ return create(new HttpGet(URI.create(requestURI)));
+ }
+
+ public static HttpAsyncRequestProducer createDelete(final URI requestURI) {
+ return create(new HttpDelete(requestURI));
+ }
+
+ public static HttpAsyncRequestProducer createDelete(final String requestURI) {
+ return create(new HttpDelete(URI.create(requestURI)));
+ }
+
+ public static HttpAsyncRequestProducer createOptions(final URI requestURI) {
+ return create(new HttpOptions(requestURI));
+ }
+
+ public static HttpAsyncRequestProducer createOptions(final String requestURI) {
+ return create(new HttpOptions(URI.create(requestURI)));
+ }
+
+ public static HttpAsyncRequestProducer createTrace(final URI requestURI) {
+ return create(new HttpTrace(requestURI));
+ }
+
+ public static HttpAsyncRequestProducer createTrace(final String requestURI) {
+ return create(new HttpTrace(URI.create(requestURI)));
+ }
+
+ public static HttpAsyncRequestProducer createPost(
+ final URI requestURI,
+ final String content,
+ String mimeType, String charset) throws UnsupportedEncodingException {
+ HttpPost httppost = new HttpPost(requestURI);
+ if (mimeType == null) {
+ mimeType = HTTP.PLAIN_TEXT_TYPE;
+ }
+ if (charset == null) {
+ charset = HTTP.DEFAULT_CONTENT_CHARSET;
+ }
+ NStringEntity entity = new NStringEntity(content, charset);
+ entity.setContentType(mimeType + HTTP.CHARSET_PARAM + charset);
+ httppost.setEntity(entity);
+ HttpHost target = URIUtils.extractHost(requestURI);
+ return new HttpAsyncRequestProducerImpl(target, httppost, entity);
+ }
+
+ public static HttpAsyncRequestProducer createPost(
+ final String requestURI,
+ final String content,
+ String mimeType, String charset) throws UnsupportedEncodingException {
+ return createPost(URI.create(requestURI), content, mimeType, charset);
+ }
+
+ public static HttpAsyncRequestProducer createPost(
+ final URI requestURI,
+ final byte[] content, final String contentType) {
+ HttpPost httppost = new HttpPost(requestURI);
+ NByteArrayEntity entity = new NByteArrayEntity(content);
+ entity.setContentType(contentType);
+ HttpHost target = URIUtils.extractHost(requestURI);
+ return new HttpAsyncRequestProducerImpl(target, httppost, entity);
+ }
+
+ public static HttpAsyncRequestProducer createPost(
+ final String requestURI,
+ final byte[] content, final String contentType) {
+ return createPost(URI.create(requestURI), content, contentType);
+ }
+
+ public static HttpAsyncRequestProducer createPut(
+ final URI requestURI,
+ final String content,
+ String mimeType, String charset) throws UnsupportedEncodingException {
+ HttpPut httpput = new HttpPut(requestURI);
+ if (mimeType == null) {
+ mimeType = HTTP.PLAIN_TEXT_TYPE;
+ }
+ if (charset == null) {
+ charset = HTTP.DEFAULT_CONTENT_CHARSET;
+ }
+ NStringEntity entity = new NStringEntity(content, charset);
+ entity.setContentType(mimeType + HTTP.CHARSET_PARAM + charset);
+ httpput.setEntity(entity);
+ HttpHost target = URIUtils.extractHost(requestURI);
+ return new HttpAsyncRequestProducerImpl(target, httpput, entity);
+ }
+
+ public static HttpAsyncRequestProducer createPut(
+ final String requestURI,
+ final String content,
+ String mimeType, String charset) throws UnsupportedEncodingException {
+ return createPut(URI.create(requestURI), content, mimeType, charset);
+ }
+
+ public static HttpAsyncRequestProducer createPut(
+ final URI requestURI,
+ final byte[] content,
+ final String contentType) {
+ HttpPut httpput = new HttpPut(requestURI);
+ NByteArrayEntity entity = new NByteArrayEntity(content);
+ entity.setContentType(contentType);
+ HttpHost target = URIUtils.extractHost(requestURI);
+ return new HttpAsyncRequestProducerImpl(target, httpput, entity);
+ }
+
+ public static HttpAsyncRequestProducer createPut(
+ final String requestURI,
+ final byte[] content, final String contentType) {
+ return createPut(URI.create(requestURI), content, contentType);
+ }
+
+ public static HttpAsyncResponseConsumer<HttpResponse> createConsumer() {
+ return new BasicHttpAsyncResponseConsumer();
+ }
+
+}
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncMethods.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncOptions.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncOptions.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncOptions.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncOptions.java Thu Jul 21 19:49:03 2011
@@ -31,6 +31,10 @@ import java.net.URI;
import org.apache.http.client.methods.HttpOptions;
import org.apache.http.client.methods.HttpUriRequest;
+/**
+ * @deprecated use {@link HttpAsyncMethods#createOptions(URI)}
+ */
+@Deprecated
public class HttpAsyncOptions extends BaseHttpAsyncRequestProducer {
public HttpAsyncOptions(final URI requestURI) {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPost.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPost.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPost.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPost.java Thu Jul 21 19:49:03 2011
@@ -32,6 +32,11 @@ import org.apache.http.HttpEntity;
import org.apache.http.HttpEntityEnclosingRequest;
import org.apache.http.client.methods.HttpPost;
+/**
+ * @deprecated use {@link HttpAsyncMethods#createPost(URI, String, String, String)}
+ * or {@link HttpAsyncMethods#createPost(URI, byte[], String)}
+ */
+@Deprecated
public class HttpAsyncPost extends BaseHttpAsyncEntityRequestProducer {
public HttpAsyncPost(final URI requestURI, final byte[] content, final String contentType) {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPut.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPut.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPut.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncPut.java Thu Jul 21 19:49:03 2011
@@ -32,6 +32,11 @@ import org.apache.http.HttpEntity;
import org.apache.http.HttpEntityEnclosingRequest;
import org.apache.http.client.methods.HttpPut;
+/**
+ * @deprecated use {@link HttpAsyncMethods#createPut(URI, String, String, String)}
+ * or {@link HttpAsyncMethods#createPut(URI, byte[], String)}
+ */
+@Deprecated
public class HttpAsyncPut extends BaseHttpAsyncEntityRequestProducer {
public HttpAsyncPut(final URI requestURI, final byte[] content, final String contentType) {
Added: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java?rev=1149337&view=auto
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java (added)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java Thu Jul 21 19:49:03 2011
@@ -0,0 +1,114 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.http.nio.client.methods;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpEntityEnclosingRequest;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
+import org.apache.http.nio.ContentEncoder;
+import org.apache.http.nio.IOControl;
+import org.apache.http.nio.client.HttpAsyncRequestProducer;
+import org.apache.http.nio.entity.ProducingNHttpEntity;
+
+class HttpAsyncRequestProducerImpl implements HttpAsyncRequestProducer, Closeable {
+
+ private final HttpHost target;
+ private final HttpRequest request;
+ private final ProducingNHttpEntity producer;
+
+ HttpAsyncRequestProducerImpl(
+ final HttpHost target,
+ final HttpRequest request,
+ final ProducingNHttpEntity producer) {
+ super();
+ if (request == null) {
+ throw new IllegalArgumentException("Request may not be null");
+ }
+ this.target = target;
+ this.request = request;
+ this.producer = producer;
+ }
+
+ HttpAsyncRequestProducerImpl(final HttpHost target, final HttpRequest request) {
+ this(target, request, getProducer(request));
+ }
+
+ private static ProducingNHttpEntity getProducer(final HttpRequest request) {
+ if (request instanceof HttpEntityEnclosingRequest) {
+ HttpEntity entity = ((HttpEntityEnclosingRequest) request).getEntity();
+ if (entity instanceof ProducingNHttpEntity) {
+ return (ProducingNHttpEntity) entity;
+ } else {
+ return new NHttpEntityWrapper(entity);
+ }
+ } else {
+ return null;
+ }
+ }
+
+ public synchronized HttpRequest generateRequest() {
+ return this.request;
+ }
+
+ public synchronized HttpHost getTarget() {
+ return this.target;
+ }
+
+ public synchronized void produceContent(
+ final ContentEncoder encoder, final IOControl ioctrl) throws IOException {
+ if (this.producer != null) {
+ this.producer.produceContent(encoder, ioctrl);
+ if (encoder.isCompleted()) {
+ this.producer.finish();
+ }
+ }
+ }
+
+ public synchronized boolean isRepeatable() {
+ return this.producer == null || this.producer.isRepeatable();
+ }
+
+ public synchronized void resetRequest() {
+ if (this.producer != null) {
+ try {
+ this.producer.finish();
+ } catch (IOException ignore) {
+ }
+ }
+ }
+
+ public synchronized void close() throws IOException {
+ if (this.producer != null) {
+ this.producer.finish();
+ }
+ }
+
+}
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncRequestProducerImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncTrace.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncTrace.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncTrace.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/HttpAsyncTrace.java Thu Jul 21 19:49:03 2011
@@ -31,6 +31,10 @@ import java.net.URI;
import org.apache.http.client.methods.HttpTrace;
import org.apache.http.client.methods.HttpUriRequest;
+/**
+ * @deprecated use {@link HttpAsyncMethods#createTrace(URI)}
+ */
+@Deprecated
public class HttpAsyncTrace extends BaseHttpAsyncRequestProducer {
public HttpAsyncTrace(final URI requestURI) {
Copied: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java (from r1149330, httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/NHttpEntityWrapper.java)
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java?p2=httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java&p1=httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/NHttpEntityWrapper.java&r1=1149330&r2=1149337&rev=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/NHttpEntityWrapper.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java Thu Jul 21 19:49:03 2011
@@ -25,7 +25,7 @@
*
*/
-package org.apache.http.impl.nio.client;
+package org.apache.http.nio.client.methods;
import java.io.IOException;
import java.io.InputStream;
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/client/methods/NHttpEntityWrapper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpAsync.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpAsync.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpAsync.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpAsync.java Thu Jul 21 19:49:03 2011
@@ -40,6 +40,9 @@ import org.apache.http.client.methods.Ht
import org.apache.http.localserver.AsyncHttpTestBase;
import org.apache.http.nio.ContentDecoder;
import org.apache.http.nio.IOControl;
+import org.apache.http.nio.client.HttpAsyncRequestProducer;
+import org.apache.http.nio.client.methods.BasicHttpAsyncResponseConsumer;
+import org.apache.http.nio.client.methods.HttpAsyncMethods;
import org.apache.http.nio.entity.NByteArrayEntity;
import org.apache.http.util.EntityUtils;
import org.junit.Assert;
@@ -140,7 +143,7 @@ public class TestHttpAsync extends Async
@Test
public void testRequestFailure() throws Exception {
HttpGet httpget = new HttpGet("/random/2048");
- BasicHttpAsyncRequestProducer requestProducer = new BasicHttpAsyncRequestProducer(this.target, httpget) ;
+ HttpAsyncRequestProducer requestProducer = HttpAsyncMethods.create(this.target, httpget) ;
BasicHttpAsyncResponseConsumer responseConsumer = new BasicHttpAsyncResponseConsumer() {
@Override
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpsAsync.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpsAsync.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpsAsync.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/client/TestHttpsAsync.java Thu Jul 21 19:49:03 2011
@@ -52,6 +52,9 @@ import org.apache.http.localserver.Async
import org.apache.http.localserver.LocalTestServer;
import org.apache.http.nio.ContentDecoder;
import org.apache.http.nio.IOControl;
+import org.apache.http.nio.client.HttpAsyncRequestProducer;
+import org.apache.http.nio.client.methods.BasicHttpAsyncResponseConsumer;
+import org.apache.http.nio.client.methods.HttpAsyncMethods;
import org.apache.http.nio.conn.scheme.Scheme;
import org.apache.http.nio.conn.scheme.SchemeRegistry;
import org.apache.http.nio.conn.ssl.SSLLayeringStrategy;
@@ -227,7 +230,7 @@ public class TestHttpsAsync extends Asyn
@Test
public void testRequestFailure() throws Exception {
HttpGet httpget = new HttpGet("/random/2048");
- BasicHttpAsyncRequestProducer requestProducer = new BasicHttpAsyncRequestProducer(this.target, httpget) ;
+ HttpAsyncRequestProducer requestProducer = HttpAsyncMethods.create(this.target, httpget) ;
BasicHttpAsyncResponseConsumer responseConsumer = new BasicHttpAsyncResponseConsumer() {
@Override
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/nio/client/methods/TestAsyncConsumers.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/nio/client/methods/TestAsyncConsumers.java?rev=1149337&r1=1149336&r2=1149337&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/nio/client/methods/TestAsyncConsumers.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/nio/client/methods/TestAsyncConsumers.java Thu Jul 21 19:49:03 2011
@@ -38,6 +38,8 @@ import org.apache.http.HttpResponse;
import org.apache.http.localserver.AsyncHttpTestBase;
import org.apache.http.nio.ContentDecoder;
import org.apache.http.nio.IOControl;
+import org.apache.http.nio.client.HttpAsyncRequestProducer;
+import org.apache.http.protocol.HTTP;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
@@ -79,7 +81,7 @@ public class TestAsyncConsumers extends
@Test
public void testByteConsumer() throws Exception {
for (int i = 0; i < 5; i++) {
- HttpAsyncGet httpget = new HttpAsyncGet(this.target.toURI() + "/random/20480");
+ HttpAsyncRequestProducer httpget = HttpAsyncMethods.createGet(this.target.toURI() + "/random/20480");
AsyncByteConsumer<Long> consumer = new ByteCountingConsumer();
Future<Long> future = this.httpclient.execute(httpget, consumer, null);
Long count = future.get();
@@ -90,7 +92,7 @@ public class TestAsyncConsumers extends
@Test
public void testByteConsumerSmallBufffer() throws Exception {
for (int i = 0; i < 5; i++) {
- HttpAsyncGet httpget = new HttpAsyncGet(this.target.toURI() + "/random/20480");
+ HttpAsyncRequestProducer httpget = HttpAsyncMethods.createGet(this.target.toURI() + "/random/20480");
AsyncByteConsumer<Long> consumer = new ByteCountingConsumer(512);
Future<Long> future = this.httpclient.execute(httpget, consumer, null);
Long count = future.get();
@@ -143,7 +145,8 @@ public class TestAsyncConsumers extends
String s = sb.toString();
for (int i = 0; i < 5; i++) {
- HttpAsyncPost httppost = new HttpAsyncPost(this.target.toURI() + "/echo/stuff", s);
+ HttpAsyncRequestProducer httppost = HttpAsyncMethods.createPost(
+ this.target.toURI() + "/echo/stuff", s, "text/plain", HTTP.ASCII);
AsyncCharConsumer<String> consumer = new BufferingCharConsumer();
Future<String> future = this.httpclient.execute(httppost, consumer, null);
String result = future.get();
@@ -161,7 +164,8 @@ public class TestAsyncConsumers extends
String s = sb.toString();
for (int i = 0; i < 5; i++) {
- HttpAsyncPost httppost = new HttpAsyncPost(this.target.toURI() + "/echo/stuff", s);
+ HttpAsyncRequestProducer httppost = HttpAsyncMethods.createPost(
+ this.target.toURI() + "/echo/stuff", s, "text/plain", HTTP.ASCII);
AsyncCharConsumer<String> consumer = new BufferingCharConsumer(512);
Future<String> future = this.httpclient.execute(httppost, consumer, null);
String result = future.get();
@@ -178,7 +182,8 @@ public class TestAsyncConsumers extends
}
String s = sb.toString();
- HttpAsyncPost httppost = new HttpAsyncPost(this.target.toURI() + "/echo/stuff", s);
+ HttpAsyncRequestProducer httppost = HttpAsyncMethods.createPost(
+ this.target.toURI() + "/echo/stuff", s, "text/plain", HTTP.ASCII);
AsyncCharConsumer<String> consumer = Mockito.spy(new BufferingCharConsumer());
Future<String> future = this.httpclient.execute(httppost, consumer, null);
String result = future.get();
@@ -191,7 +196,8 @@ public class TestAsyncConsumers extends
@Test
public void testResourceReleaseOnException() throws Exception {
- HttpAsyncPost httppost = new HttpAsyncPost(this.target.toURI() + "/echo/stuff", "stuff");
+ HttpAsyncRequestProducer httppost = HttpAsyncMethods.createPost(
+ this.target.toURI() + "/echo/stuff", "stuff", "text/plain", HTTP.ASCII);
AsyncCharConsumer<String> consumer = Mockito.spy(new BufferingCharConsumer());
Mockito.doThrow(new IOException("Kaboom")).when(consumer).consumeContent(
Mockito.any(ContentDecoder.class), Mockito.any(IOControl.class));
@@ -213,7 +219,8 @@ public class TestAsyncConsumers extends
@Test
public void testResourceReleaseOnBuildFailure() throws Exception {
- HttpAsyncPost httppost = new HttpAsyncPost(this.target.toURI() + "/echo/stuff", "stuff");
+ HttpAsyncRequestProducer httppost = HttpAsyncMethods.createPost(
+ this.target.toURI() + "/echo/stuff", "stuff", "text/plain", HTTP.ASCII);
AsyncCharConsumer<String> consumer = Mockito.spy(new BufferingCharConsumer());
Mockito.doThrow(new HttpException("Kaboom")).when(consumer).buildResult();