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 2017/05/18 07:30:07 UTC
httpcomponents-client git commit: Allow to add exec interceptor as
the first and the last
Repository: httpcomponents-client
Updated Branches:
refs/heads/master b5b39efd7 -> 4bd79fb3d
Allow to add exec interceptor as the first and the last
Closes PR #76
Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/commit/4bd79fb3
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/tree/4bd79fb3
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/diff/4bd79fb3
Branch: refs/heads/master
Commit: 4bd79fb3dde9667104f23490c31820bf0f96f328
Parents: b5b39ef
Author: Pavol Loffay <pl...@redhat.com>
Authored: Tue May 9 14:58:58 2017 +0200
Committer: Oleg Kalnichevski <ol...@apache.org>
Committed: Thu May 18 09:27:58 2017 +0200
----------------------------------------------------------------------
.../http/impl/async/HttpAsyncClientBuilder.java | 28 +++++++++++++++++++-
.../http/impl/sync/HttpClientBuilder.java | 28 +++++++++++++++++++-
2 files changed, 54 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/4bd79fb3/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java
index 619efca..0a7e02d 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java
@@ -176,7 +176,7 @@ public class HttpAsyncClientBuilder {
private static class ExecInterceptorEntry {
- enum Postion { BEFORE, AFTER, REPLACE }
+ enum Postion { BEFORE, AFTER, REPLACE, FIRST, LAST }
final ExecInterceptorEntry.Postion postion;
final String name;
@@ -431,6 +431,26 @@ public class HttpAsyncClientBuilder {
}
/**
+ * Add an interceptor to the head of the processing list.
+ */
+ public final HttpAsyncClientBuilder addExecInterceptorFirst(final String name, final AsyncExecChainHandler interceptor) {
+ Args.notNull(name, "Name");
+ Args.notNull(interceptor, "Interceptor");
+ execInterceptors.add(new ExecInterceptorEntry(ExecInterceptorEntry.Postion.FIRST, name, interceptor, null));
+ return this;
+ }
+
+ /**
+ * Add an interceptor to the tail of the processing list.
+ */
+ public final HttpAsyncClientBuilder addExecInterceptorLast(final String name, final AsyncExecChainHandler interceptor) {
+ Args.notNull(name, "Name");
+ Args.notNull(interceptor, "Interceptor");
+ execInterceptors.add(new ExecInterceptorEntry(ExecInterceptorEntry.Postion.LAST, name, interceptor, null));
+ return this;
+ }
+
+ /**
* Adds this protocol interceptor to the head of the protocol processing list.
*/
public final HttpAsyncClientBuilder addRequestInterceptorFirst(final HttpRequestInterceptor interceptor) {
@@ -913,6 +933,12 @@ public class HttpAsyncClientBuilder {
case BEFORE:
execChainDefinition.addBefore(entry.existing, entry.interceptor, entry.name);
break;
+ case FIRST:
+ execChainDefinition.addFirst(entry.interceptor, entry.name);
+ break;
+ case LAST:
+ execChainDefinition.addLast(entry.interceptor, entry.name);
+ break;
}
}
}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/4bd79fb3/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/HttpClientBuilder.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/HttpClientBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/HttpClientBuilder.java
index 4ec65a4..af94d36 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/HttpClientBuilder.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/sync/HttpClientBuilder.java
@@ -163,7 +163,7 @@ public class HttpClientBuilder {
private static class ExecInterceptorEntry {
- enum Postion { BEFORE, AFTER, REPLACE }
+ enum Postion { BEFORE, AFTER, REPLACE, FIRST, LAST }
final Postion postion;
final String name;
@@ -444,6 +444,26 @@ public class HttpClientBuilder {
}
/**
+ * Add an interceptor to the head of the processing list.
+ */
+ public final HttpClientBuilder addExecInterceptorFirst(final String name, final ExecChainHandler interceptor) {
+ Args.notNull(name, "Name");
+ Args.notNull(interceptor, "Interceptor");
+ execInterceptors.add(new ExecInterceptorEntry(ExecInterceptorEntry.Postion.FIRST, name, interceptor, null));
+ return this;
+ }
+
+ /**
+ * Add an interceptor to the tail of the processing list.
+ */
+ public final HttpClientBuilder addExecInterceptorLast(final String name, final ExecChainHandler interceptor) {
+ Args.notNull(name, "Name");
+ Args.notNull(interceptor, "Interceptor");
+ execInterceptors.add(new ExecInterceptorEntry(ExecInterceptorEntry.Postion.LAST, name, interceptor, null));
+ return this;
+ }
+
+ /**
* Disables state (cookie) management.
*/
public final HttpClientBuilder disableCookieManagement() {
@@ -902,6 +922,12 @@ public class HttpClientBuilder {
case REPLACE:
execChainDefinition.replace(entry.existing, entry.interceptor);
break;
+ case FIRST:
+ execChainDefinition.addFirst(entry.interceptor, entry.name);
+ break;
+ case LAST:
+ execChainDefinition.addLast(entry.interceptor, entry.name);
+ break;
}
}
}