summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2017-10-03 16:50:41 +0200
committerBjørn Christian Seime <bjorncs@oath.com>2017-10-03 16:50:44 +0200
commit8356e2a41832604072baff85d32f090a664b6c51 (patch)
tree17b0209b065b3d45ba3153b8291737c3573312df /application
parent1940c8ea7f8660d984ac7e7ba2050e4b36395c4e (diff)
Support setting attributes for 'application' requests
Diffstat (limited to 'application')
-rw-r--r--application/src/main/java/com/yahoo/application/container/SynchronousRequestResponseHandler.java1
-rw-r--r--application/src/main/java/com/yahoo/application/container/handler/Request.java10
2 files changed, 11 insertions, 0 deletions
diff --git a/application/src/main/java/com/yahoo/application/container/SynchronousRequestResponseHandler.java b/application/src/main/java/com/yahoo/application/container/SynchronousRequestResponseHandler.java
index c5ca67d4428..7475c08009c 100644
--- a/application/src/main/java/com/yahoo/application/container/SynchronousRequestResponseHandler.java
+++ b/application/src/main/java/com/yahoo/application/container/SynchronousRequestResponseHandler.java
@@ -97,6 +97,7 @@ final class SynchronousRequestResponseHandler {
for (Map.Entry<String, List<String>> entry : request.getHeaders().entrySet()) {
discRequest.headers().add(entry.getKey(), entry.getValue());
}
+ discRequest.context().putAll(request.getAttributes());
return discRequest;
}
diff --git a/application/src/main/java/com/yahoo/application/container/handler/Request.java b/application/src/main/java/com/yahoo/application/container/handler/Request.java
index fef0f275be1..1a6dbe59f04 100644
--- a/application/src/main/java/com/yahoo/application/container/handler/Request.java
+++ b/application/src/main/java/com/yahoo/application/container/handler/Request.java
@@ -5,6 +5,8 @@ import com.google.common.annotations.Beta;
import net.jcip.annotations.Immutable;
import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
* A request for use with {@link com.yahoo.application.container.JDisc#handleRequest(Request)}.
@@ -20,6 +22,7 @@ public class Request {
private final String uri;
private final byte[] body;
private final Method method;
+ private final Map<String, Object> attributes = new ConcurrentHashMap<>();
/**
* Creates a Request with an empty body.
@@ -98,6 +101,13 @@ public class Request {
return uri;
}
+ /**
+ * @return a mutable attribute map for this request.
+ */
+ public Map<String, Object> getAttributes() {
+ return attributes;
+ }
+
@Override
public String toString() {
String bodyStr = (body == null || body.length == 0) ? "[empty]" : "[omitted]";