summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/client/support/AbstractClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/elasticsearch/client/support/AbstractClient.java')
-rw-r--r--core/src/main/java/org/elasticsearch/client/support/AbstractClient.java29
1 files changed, 19 insertions, 10 deletions
diff --git a/core/src/main/java/org/elasticsearch/client/support/AbstractClient.java b/core/src/main/java/org/elasticsearch/client/support/AbstractClient.java
index e5a465442b..5368102530 100644
--- a/core/src/main/java/org/elasticsearch/client/support/AbstractClient.java
+++ b/core/src/main/java/org/elasticsearch/client/support/AbstractClient.java
@@ -317,12 +317,16 @@ import org.elasticsearch.client.AdminClient;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.ClusterAdminClient;
import org.elasticsearch.client.ElasticsearchClient;
+import org.elasticsearch.client.FilterClient;
import org.elasticsearch.client.IndicesAdminClient;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.component.AbstractComponent;
import org.elasticsearch.common.settings.Settings;
+import org.elasticsearch.common.util.concurrent.ThreadContext;
import org.elasticsearch.threadpool.ThreadPool;
+import java.util.Map;
+
/**
*
*/
@@ -330,24 +334,16 @@ public abstract class AbstractClient extends AbstractComponent implements Client
private final ThreadPool threadPool;
private final Admin admin;
-
- private final Headers headers;
private final ThreadedActionListener.Wrapper threadedWrapper;
- public AbstractClient(Settings settings, ThreadPool threadPool, Headers headers) {
+ public AbstractClient(Settings settings, ThreadPool threadPool) {
super(settings);
this.threadPool = threadPool;
- this.headers = headers;
this.admin = new Admin(this);
this.threadedWrapper = new ThreadedActionListener.Wrapper(logger, settings, threadPool);
}
@Override
- public Headers headers() {
- return this.headers;
- }
-
- @Override
public final Settings settings() {
return this.settings;
}
@@ -379,7 +375,6 @@ public abstract class AbstractClient extends AbstractComponent implements Client
*/
@Override
public final <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> void execute(Action<Request, Response, RequestBuilder> action, Request request, ActionListener<Response> listener) {
- headers.applyTo(request);
listener = threadedWrapper.wrap(listener);
doExecute(action, request, listener);
}
@@ -1672,4 +1667,18 @@ public abstract class AbstractClient extends AbstractComponent implements Client
execute(GetSettingsAction.INSTANCE, request, listener);
}
}
+
+ @Override
+ public Client filterWithHeader(Map<String, String> headers) {
+ return new FilterClient(this) {
+ @Override
+ protected <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> void doExecute(Action<Request, Response, RequestBuilder> action, Request request, ActionListener<Response> listener) {
+ ThreadContext threadContext = threadPool().getThreadContext();
+ try (ThreadContext.StoredContext ctx = threadContext.stashContext()) {
+ threadContext.putHeader(headers);
+ super.doExecute(action, request, listener);
+ }
+ }
+ };
+ }
}