diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2017-10-03 16:50:41 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2017-10-03 16:50:44 +0200 |
commit | 8356e2a41832604072baff85d32f090a664b6c51 (patch) | |
tree | 17b0209b065b3d45ba3153b8291737c3573312df /application/src | |
parent | 1940c8ea7f8660d984ac7e7ba2050e4b36395c4e (diff) |
Support setting attributes for 'application' requests
Diffstat (limited to 'application/src')
-rw-r--r-- | application/src/main/java/com/yahoo/application/container/SynchronousRequestResponseHandler.java | 1 | ||||
-rw-r--r-- | application/src/main/java/com/yahoo/application/container/handler/Request.java | 10 |
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]"; |