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 2013/01/02 11:12:59 UTC
svn commit: r1427723 - in
/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods:
AbstractExecutionAwareRequest.java HttpRequestBase.java
Author: olegk
Date: Wed Jan 2 10:12:59 2013
New Revision: 1427723
URL: http://svn.apache.org/viewvc?rev=1427723&view=rev
Log:
HTTPCLIENT-1288: moved HttpExecutionAware implementation code to AbstractExecutionAwareRequest class
Added:
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/AbstractExecutionAwareRequest.java
- copied, changed from r1427541, httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java
Modified:
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java
Copied: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/AbstractExecutionAwareRequest.java (from r1427541, httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java)
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/AbstractExecutionAwareRequest.java?p2=httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/AbstractExecutionAwareRequest.java&p1=httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java&r1=1427541&r2=1427723&rev=1427723&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/AbstractExecutionAwareRequest.java Wed Jan 2 10:12:59 2013
@@ -24,98 +24,32 @@
* <http://www.apache.org/>.
*
*/
-
package org.apache.http.client.methods;
import java.io.IOException;
-import java.net.URI;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
-import org.apache.http.ProtocolVersion;
-import org.apache.http.RequestLine;
-import org.apache.http.annotation.NotThreadSafe;
-import org.apache.http.client.config.RequestConfig;
+import org.apache.http.HttpRequest;
import org.apache.http.client.utils.CloneUtils;
import org.apache.http.concurrent.Cancellable;
import org.apache.http.conn.ClientConnectionRequest;
import org.apache.http.conn.ConnectionReleaseTrigger;
import org.apache.http.message.AbstractHttpMessage;
-import org.apache.http.message.BasicRequestLine;
-import org.apache.http.params.HttpProtocolParams;
-/**
- * Base implementation of {@link HttpUriRequest}.
- *
- * @since 4.0
- */
@SuppressWarnings("deprecation")
-@NotThreadSafe
-public abstract class HttpRequestBase extends AbstractHttpMessage
- implements HttpUriRequest, Configurable, HttpExecutionAware, AbortableHttpRequest, Cloneable {
+public abstract class AbstractExecutionAwareRequest extends AbstractHttpMessage implements
+ HttpExecutionAware, AbortableHttpRequest, Cloneable, HttpRequest {
- private Lock abortLock;
+ private final Lock abortLock;
private volatile boolean aborted;
+ private volatile Cancellable cancellable;
- private ProtocolVersion version;
- private URI uri;
- private Cancellable cancellable;
- private RequestConfig config;
-
- public HttpRequestBase() {
+ protected AbstractExecutionAwareRequest() {
super();
this.abortLock = new ReentrantLock();
}
- public abstract String getMethod();
-
- /**
- * @since 4.3
- */
- public void setProtocolVersion(final ProtocolVersion version) {
- this.version = version;
- }
-
- public ProtocolVersion getProtocolVersion() {
- return version != null ? version : HttpProtocolParams.getVersion(getParams());
- }
-
- /**
- * Returns the original request URI.
- * <p>
- * Please note URI remains unchanged in the course of request execution and
- * is not updated if the request is redirected to another location.
- */
- public URI getURI() {
- return this.uri;
- }
-
- public RequestLine getRequestLine() {
- String method = getMethod();
- ProtocolVersion ver = getProtocolVersion();
- URI uri = getURI();
- String uritext = null;
- if (uri != null) {
- uritext = uri.toASCIIString();
- }
- if (uritext == null || uritext.length() == 0) {
- uritext = "/";
- }
- return new BasicRequestLine(method, uritext, ver);
- }
-
- public void setURI(final URI uri) {
- this.uri = uri;
- }
-
- public RequestConfig getConfig() {
- return config;
- }
-
- public void setConfig(final RequestConfig config) {
- this.config = config;
- }
-
@Deprecated
public void setConnectionRequest(final ClientConnectionRequest connRequest) {
if (this.aborted) {
@@ -187,12 +121,6 @@ public abstract class HttpRequestBase ex
/**
* @since 4.2
*/
- public void started() {
- }
-
- /**
- * @since 4.2
- */
public void setCancellable(final Cancellable cancellable) {
if (this.aborted) {
return;
@@ -205,6 +133,14 @@ public abstract class HttpRequestBase ex
}
}
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ AbstractExecutionAwareRequest clone = (AbstractExecutionAwareRequest) super.clone();
+ clone.headergroup = CloneUtils.cloneObject(this.headergroup);
+ clone.params = CloneUtils.cloneObject(this.params);
+ return clone;
+ }
+
/**
* @since 4.2
*/
@@ -232,30 +168,4 @@ public abstract class HttpRequestBase ex
}
}
- /**
- * A convenience method to simplify migration from HttpClient 3.1 API. This method is
- * equivalent to {@link #reset()}.
- *
- * @since 4.2
- */
- public void releaseConnection() {
- reset();
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- HttpRequestBase clone = (HttpRequestBase) super.clone();
- clone.abortLock = new ReentrantLock();
- clone.aborted = false;
- clone.cancellable = null;
- clone.headergroup = CloneUtils.cloneObject(this.headergroup);
- clone.params = CloneUtils.cloneObject(this.params);
- return clone;
- }
-
- @Override
- public String toString() {
- return getMethod() + " " + getURI() + " " + getProtocolVersion();
- }
-
}
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java?rev=1427723&r1=1427722&r2=1427723&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/methods/HttpRequestBase.java Wed Jan 2 10:12:59 2013
@@ -27,20 +27,12 @@
package org.apache.http.client.methods;
-import java.io.IOException;
import java.net.URI;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
import org.apache.http.ProtocolVersion;
import org.apache.http.RequestLine;
import org.apache.http.annotation.NotThreadSafe;
import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.utils.CloneUtils;
-import org.apache.http.concurrent.Cancellable;
-import org.apache.http.conn.ClientConnectionRequest;
-import org.apache.http.conn.ConnectionReleaseTrigger;
-import org.apache.http.message.AbstractHttpMessage;
import org.apache.http.message.BasicRequestLine;
import org.apache.http.params.HttpProtocolParams;
@@ -51,22 +43,13 @@ import org.apache.http.params.HttpProtoc
*/
@SuppressWarnings("deprecation")
@NotThreadSafe
-public abstract class HttpRequestBase extends AbstractHttpMessage
- implements HttpUriRequest, Configurable, HttpExecutionAware, AbortableHttpRequest, Cloneable {
-
- private Lock abortLock;
- private volatile boolean aborted;
+public abstract class HttpRequestBase extends AbstractExecutionAwareRequest
+ implements HttpUriRequest, Configurable {
private ProtocolVersion version;
private URI uri;
- private Cancellable cancellable;
private RequestConfig config;
- public HttpRequestBase() {
- super();
- this.abortLock = new ReentrantLock();
- }
-
public abstract String getMethod();
/**
@@ -104,9 +87,6 @@ public abstract class HttpRequestBase ex
return new BasicRequestLine(method, uritext, ver);
}
- public void setURI(final URI uri) {
- this.uri = uri;
- }
public RequestConfig getConfig() {
return config;
@@ -116,72 +96,8 @@ public abstract class HttpRequestBase ex
this.config = config;
}
- @Deprecated
- public void setConnectionRequest(final ClientConnectionRequest connRequest) {
- if (this.aborted) {
- return;
- }
- this.abortLock.lock();
- try {
- this.cancellable = new Cancellable() {
-
- public boolean cancel() {
- connRequest.abortRequest();
- return true;
- }
-
- };
- } finally {
- this.abortLock.unlock();
- }
- }
-
- @Deprecated
- public void setReleaseTrigger(final ConnectionReleaseTrigger releaseTrigger) {
- if (this.aborted) {
- return;
- }
- this.abortLock.lock();
- try {
- this.cancellable = new Cancellable() {
-
- public boolean cancel() {
- try {
- releaseTrigger.abortConnection();
- return true;
- } catch (IOException ex) {
- return false;
- }
- }
-
- };
- } finally {
- this.abortLock.unlock();
- }
- }
-
- private void cancelExecution() {
- if (this.cancellable != null) {
- this.cancellable.cancel();
- this.cancellable = null;
- }
- }
-
- public void abort() {
- if (this.aborted) {
- return;
- }
- this.abortLock.lock();
- try {
- this.aborted = true;
- cancelExecution();
- } finally {
- this.abortLock.unlock();
- }
- }
-
- public boolean isAborted() {
- return this.aborted;
+ public void setURI(final URI uri) {
+ this.uri = uri;
}
/**
@@ -191,48 +107,6 @@ public abstract class HttpRequestBase ex
}
/**
- * @since 4.2
- */
- public void setCancellable(final Cancellable cancellable) {
- if (this.aborted) {
- return;
- }
- this.abortLock.lock();
- try {
- this.cancellable = cancellable;
- } finally {
- this.abortLock.unlock();
- }
- }
-
- /**
- * @since 4.2
- */
- public void completed() {
- this.abortLock.lock();
- try {
- this.cancellable = null;
- } finally {
- this.abortLock.unlock();
- }
- }
-
- /**
- * Resets internal state of the request making it reusable.
- *
- * @since 4.2
- */
- public void reset() {
- this.abortLock.lock();
- try {
- cancelExecution();
- this.aborted = false;
- } finally {
- this.abortLock.unlock();
- }
- }
-
- /**
* A convenience method to simplify migration from HttpClient 3.1 API. This method is
* equivalent to {@link #reset()}.
*
@@ -243,17 +117,6 @@ public abstract class HttpRequestBase ex
}
@Override
- public Object clone() throws CloneNotSupportedException {
- HttpRequestBase clone = (HttpRequestBase) super.clone();
- clone.abortLock = new ReentrantLock();
- clone.aborted = false;
- clone.cancellable = null;
- clone.headergroup = CloneUtils.cloneObject(this.headergroup);
- clone.params = CloneUtils.cloneObject(this.params);
- return clone;
- }
-
- @Override
public String toString() {
return getMethod() + " " + getURI() + " " + getProtocolVersion();
}