diff --git a/jetty-core/jetty-websocket/jetty-websocket-core-client/src/main/java/org/eclipse/jetty/websocket/core/client/CoreClientUpgradeRequest.java b/jetty-core/jetty-websocket/jetty-websocket-core-client/src/main/java/org/eclipse/jetty/websocket/core/client/CoreClientUpgradeRequest.java index 777eeb0a33db..b1f9b61efd1e 100644 --- a/jetty-core/jetty-websocket/jetty-websocket-core-client/src/main/java/org/eclipse/jetty/websocket/core/client/CoreClientUpgradeRequest.java +++ b/jetty-core/jetty-websocket/jetty-websocket-core-client/src/main/java/org/eclipse/jetty/websocket/core/client/CoreClientUpgradeRequest.java @@ -134,6 +134,26 @@ public void setVersion(HttpVersion httpVersion) request.version(httpVersion); } + /** + * @return the metadata this request has been tagged with + * @see Request#getTag() + */ + public Object getTag() + { + return request.getTag(); + } + + /** + *

Tags this request with the given metadata tag.

+ + * @param tag the metadata to tag the request with + * @see Request#tag(Object) + */ + public void tag(Object tag) + { + request.tag(tag); + } + public void listener(Request.Listener listener) { request.onRequestListener(listener); diff --git a/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java b/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java index ac6082646b57..683c28b4a043 100644 --- a/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java +++ b/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java @@ -24,6 +24,7 @@ import java.util.TreeMap; import java.util.concurrent.TimeUnit; +import org.eclipse.jetty.client.Request; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.http.HttpScheme; import org.eclipse.jetty.websocket.api.ExtensionConfig; @@ -35,6 +36,11 @@ */ public final class ClientUpgradeRequest implements UpgradeRequest { + /** + * ABNF from RFC 2616, RFC 822, and RFC 6455 specified characters requiring quoting. + */ + public static final String ABNF_REQUIRED_QUOTING = "\"'\\\n\r\t\f\b%+ ;="; + private final List subProtocols = new ArrayList<>(1); private final List extensions = new ArrayList<>(1); private final List cookies = new ArrayList<>(1); @@ -42,6 +48,7 @@ public final class ClientUpgradeRequest implements UpgradeRequest private final URI requestURI; private long timeout; private String httpVersion; + private Object tag; /** * @deprecated use {@link #ClientUpgradeRequest(URI)} instead. @@ -349,9 +356,24 @@ public long getTimeout() } /** - * ABNF from RFC 2616, RFC 822, and RFC 6455 specified characters requiring quoting. + *

Tags this request with the given metadata tag.

+ + * @param tag the metadata to tag the request with + * @see Request#tag(Object) */ - public static final String ABNF_REQUIRED_QUOTING = "\"'\\\n\r\t\f\b%+ ;="; + public void tag(Object tag) + { + this.tag = tag; + } + + /** + * @return the metadata this request has been tagged with + * @see Request#getTag() + */ + public Object getTag() + { + return tag; + } public static String joinValues(List values) { diff --git a/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/internal/JettyClientUpgradeRequest.java b/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/internal/JettyClientUpgradeRequest.java index fa0dadeabdc1..31ae0b55d31d 100644 --- a/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/internal/JettyClientUpgradeRequest.java +++ b/jetty-core/jetty-websocket/jetty-websocket-jetty-client/src/main/java/org/eclipse/jetty/websocket/client/internal/JettyClientUpgradeRequest.java @@ -56,6 +56,11 @@ public JettyClientUpgradeRequest(WebSocketCoreClient coreClient, ClientUpgradeRe if (httpVersionString != null) setVersion(HttpVersion.fromString(httpVersionString)); + // Copy the tag if it exists. + Object tag = request.getTag(); + if (tag != null) + tag(tag); + timeout(request.getTimeout(), TimeUnit.MILLISECONDS); }