This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new ee710a0 RestClient API improvements.
ee710a0 is described below
commit ee710a0d302b783b1b34d7febce24f17cf52149d
Author: JamesBognar <[email protected]>
AuthorDate: Mon Jun 7 10:12:57 2021 -0400
RestClient API improvements.
---
.../33.RestLoggingAndDebugging.html | 2 +-
.../org/apache/juneau/rest/client/RestClient.java | 63 ++--
.../juneau/rest/client/RestClientBuilder.java | 368 ++++++++++++---------
.../apache/juneau/rest/mock/MockRestClient.java | 2 +-
.../juneau/rest/mock/MockRestClientBuilder.java | 93 +++---
.../juneau/rest/mock/MockServletRequest.java | 4 +-
.../java/org/apache/juneau/rest/RestRequest.java | 12 +-
.../java/org/apache/juneau/rest/RestResponse.java | 14 +-
.../juneau/rest/logging/BasicTestRestLogger.java | 18 +-
.../rest/client/RestClient_Headers_Test.java | 23 +-
10 files changed, 335 insertions(+), 264 deletions(-)
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html
index 0d02030..f626d79 100644
---
a/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html
+++
b/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html
@@ -273,7 +273,7 @@ Logging / Debugging
<ul>
<li><js>"true"</js> - Logging disabled.
<li><js>"false"</js> (default) - Logging not disabled.
- <li><js>"per-request"</js> - Logging is disabled only on requests
containing a <c class='snippet'>X-NoTrace: true</c> header.
+ <li><js>"per-request"</js> - Logging is disabled only on requests
containing a <c class='snippet'>No-Trace: true</c> header.
</ul>
<p>
Disabled logging is particularly useful when running testcases that are
expected to throw exceptions or cause
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index e5551fe..f4e5ff0 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -33,6 +33,7 @@ import java.net.*;
import java.net.URI;
import java.nio.charset.*;
import java.text.*;
+import java.time.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
@@ -1289,37 +1290,37 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable, Re
* <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#header(Header) header(Header)}
* <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#headers(Object...)
headers(Object...)}
* <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#headerPairs(Object...)
headerPairs(Object...)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#accept(Object) accept(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#acceptCharset(Object)
acceptCharset(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#acceptEncoding(Object)
acceptEncoding(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#acceptLanguage(Object)
acceptLanguage(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#authorization(Object)
authorization(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#cacheControl(Object)
cacheControl(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#clientVersion(Object)
clientVersion(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#connection(Object)
connection(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#contentLength(Object)
contentLength(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#contentType(Object)
contentType(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#date(Object) date(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#expect(Object) expect(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#forwarded(Object)
forwarded(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#from(Object) from(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#host(Object) host(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifMatch(Object) ifMatch(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifModifiedSince(Object)
ifModifiedSince(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifNoneMatch(Object)
ifNoneMatch(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifRange(Object) ifRange(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifUnmodifiedSince(Object)
ifUnmodifiedSince(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#maxForwards(Object)
maxForwards(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#origin(Object) origin(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#pragma(Object) pragma(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#proxyAuthorization(Object)
proxyAuthorization(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#range(Object)
proxyAuthorization(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#referer(Object) referer(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#te(Object) te(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#userAgent(Object)
userAgent(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#upgrade(Object) upgrade(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#via(Object) via(Object)}
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#warning(Object) warning(Object)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#accept(String) accept(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#acceptCharset(String)
acceptCharset(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#acceptEncoding(String)
acceptEncoding(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#acceptLanguage(String)
acceptLanguage(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#authorization(String)
authorization(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#cacheControl(String)
cacheControl(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#clientVersion(String)
clientVersion(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#connection(String)
connection(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#contentLength(Long)
contentLength(Long)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#contentType(String)
contentType(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#date(ZonedDateTime)
date(ZonedDateTime)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#expect(String) expect(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#forwarded(String)
forwarded(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#from(String) from(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#host(String) host(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifMatch(String) ifMatch(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifModifiedSince(String)
ifModifiedSince(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifNoneMatch(String)
ifNoneMatch(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifRange(String) ifRange(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#ifUnmodifiedSince(String)
ifUnmodifiedSince(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#maxForwards(Integer)
maxForwards(Integer)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#origin(String) origin(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#pragma(String) pragma(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#proxyAuthorization(String)
proxyAuthorization(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#range(String)
proxyAuthorization(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#referer(String) referer(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#te(String) te(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#userAgent(String)
userAgent(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#upgrade(String) upgrade(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#via(String) via(String)}
+ * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#warning(String) warning(String)}
* </ul>
* <li class='jc'>{@link
org.apache.juneau.rest.client.RestRequest}
* <ul>
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 3e20ccf..a3cbfa0 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -28,6 +28,7 @@ import java.lang.annotation.*;
import java.lang.reflect.*;
import java.net.*;
import java.net.URI;
+import java.time.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
@@ -55,6 +56,7 @@ import org.apache.juneau.annotation.*;
import org.apache.juneau.html.*;
import org.apache.juneau.http.HttpHeaders;
import org.apache.juneau.http.header.*;
+import org.apache.juneau.http.header.Date;
import org.apache.juneau.http.part.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.internal.*;
@@ -155,10 +157,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"application/json"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"application/json"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#xml()} to provide support for multiple languages.
* <ul>
@@ -202,10 +204,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"application/json"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"application/json+simple"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#xml()} to provide support for multiple languages.
* <ul>
@@ -245,10 +247,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to <js>"text/xml"</js>
unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"text/xml"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -291,10 +293,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"text/html"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"text/html"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -337,10 +339,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"text/html"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"text/html"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -383,10 +385,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"text/html+stripped"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"text/html+stripped"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -430,10 +432,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"text/plain"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"text/plain"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -476,10 +478,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"octal/msgpack"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"octal/msgpack"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -523,10 +525,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to <js>"text/uon"</js>
unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"text/uon"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -568,10 +570,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"application/x-www-form-urlencoded"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"application/x-www-form-urlencoded"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -617,10 +619,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* </ul>
* <p>
* <c>Accept</c> request header will be set to
<js>"text/openapi"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
+ * by {@link #header(String,Object)} or {@link
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)}
or {@link RestRequest#accept(Object)}.
* <p>
* <c>Content-Type</c> request header will be set to
<js>"text/openapi"</js> unless overridden
- * by {@link #header(String,Object)} or {@link
#contentType(Object)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+ * by {@link #header(String,Object)} or {@link
#contentType(String)}, or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
* <p>
* Can be combined with other marshaller setters such as {@link
#json()} to provide support for multiple languages.
* <ul>
@@ -659,10 +661,10 @@ public class RestClientBuilder extends BeanContextBuilder
{
* bean context property setters (e.g. {@link
#swaps(Object...)}), or generic property setters (e.g. {@link #set(String,
Object)}) defined on this builder class.
* </ul>
* <p>
- * <c>Accept</c> request header must be set by {@link
#header(String,Object)} or {@link #accept(Object)}, or per-request
+ * <c>Accept</c> request header must be set by {@link
#header(String,Object)} or {@link #accept(String)}, or per-request
* via {@link RestRequest#header(String,Object)} or {@link
RestRequest#accept(Object)} in order for the correct parser to be selected.
* <p>
- * <c>Content-Type</c> request header must be set by {@link
#header(String,Object)} or {@link #contentType(Object)},
+ * <c>Content-Type</c> request header must be set by {@link
#header(String,Object)} or {@link #contentType(String)},
* or per-request via {@link
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}
in order for the correct serializer to be selected.
* <p>
* Similar to calling
<c>json().simpleJson().html().xml().uon().urlEnc().openApi().msgPack().plainText()</c>.
@@ -1340,315 +1342,395 @@ public class RestClientBuilder extends
BeanContextBuilder {
return this;
}
+
//-----------------------------------------------------------------------------------------------------------------
+ // Standard headers.
+
//-----------------------------------------------------------------------------------------------------------------
+
/**
- * Sets the value for the <c>Accept</c> request header on all requests.
+ * Appends the <c>Accept</c> and <c>Content-Type</c> headers on all
requests made by this client.
*
* <p>
- * This overrides the media type specified on the parser, but is
overridden by calling
- * <code>header(<js>"Accept"</js>, value);</code>
+ * Headers are appended to the end of the current header list.
*
- * @param value The new header value.
+ * @param value The new header values.
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public RestClientBuilder mediaType(String value) {
+ super.mediaType(MediaType.of(value));
+ return headers(Accept.of(value), ContentType.of(value));
+ }
+
+ /**
+ * Appends an <c>Accept</c> header on this request.
+ *
+ * <p>
+ * Header is appended to the end of the current header list.
+ *
+ * <p>
+ * This is equivalent to calling <code>header(<js>"Accept"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Accept.<jsm>of</jsm>(<jv>value</jv>));</code>
+ *
+ * @param value
+ * The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder accept(Object value) {
- return header("Accept", value);
+ public RestClientBuilder accept(String value) {
+ return header(Accept.of(value));
}
/**
* Sets the value for the <c>Accept-Charset</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Accept-Charset"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"Accept-Charset"</js>, <jv>value</jv>);</code>
+ * or <code>header(AcceptCharset.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder acceptCharset(Object value) {
- return header("Accept-Charset", value);
+ public RestClientBuilder acceptCharset(String value) {
+ return header(AcceptCharset.of(value));
}
/**
* Sets the value for the <c>Accept-Encoding</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Accept-Encoding"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"Accept-Encoding"</js>, <jv>value</jv>);</code>
+ * or <code>header(AcceptEncoding.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder acceptEncoding(Object value) {
- return header("Accept-Encoding", value);
+ public RestClientBuilder acceptEncoding(String value) {
+ return header(AcceptEncoding.of(value));
}
/**
* Sets the value for the <c>Accept-Language</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Accept-Language"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"Accept-Language"</js>, <jv>value</jv>);</code>
+ * or <code>header(AcceptLanguage.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder acceptLanguage(Object value) {
- return header("Accept-Language", value);
+ public RestClientBuilder acceptLanguage(String value) {
+ return header(AcceptLanguage.of(value));
}
/**
* Sets the value for the <c>Authorization</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Authorization"</js>, value);</code>
+ * This is equivalent to calling <code>header(<js>"Authorization"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Authorization.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder authorization(Object value) {
- return header("Authorization", value);
+ public RestClientBuilder authorization(String value) {
+ return header(Authorization.of(value));
}
/**
* Sets the value for the <c>Cache-Control</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Cache-Control"</js>, value);</code>
+ * This is equivalent to calling <code>header(<js>"Cache-Control"</js>,
<jv>value</jv>);</code>
+ * or <code>header(CacheControl.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder cacheControl(Object value) {
- return header("Cache-Control", value);
+ public RestClientBuilder cacheControl(String value) {
+ return header(CacheControl.of(value));
}
/**
- * Sets the client version by setting the value for the
<js>"X-Client-Version"</js> header.
+ * Sets the client version by setting the value for the
<js>"Client-Version"</js> header.
+ *
+ * <p>
+ * This is equivalent to calling
<code>header(<js>"Client-Version"</js>, <jv>value</jv>);</code>
+ * or <code>header(ClientVersion.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The version string (e.g. <js>"1.2.3"</js>)
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder clientVersion(Object value) {
- return header("X-Client-Version", value);
+ public RestClientBuilder clientVersion(String value) {
+ return header(ClientVersion.of(value));
}
/**
* Sets the value for the <c>Connection</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Connection"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Connection"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Connection.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder connection(Object value) {
- return header("Connection", value);
+ public RestClientBuilder connection(String value) {
+ return header(Connection.of(value));
}
/**
* Sets the value for the <c>Content-Length</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Content-Length"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"Content-Length"</js>, <jv>value</jv>);</code>
+ * or <code>header(ContentLength.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder contentLength(Object value) {
- return header("Content-Length", value);
+ public RestClientBuilder contentLength(Long value) {
+ return header(ContentLength.of(value));
}
/**
* Sets the value for the <c>Content-Type</c> request header on all
requests.
*
* <p>
- * This overrides the media type specified on the serializer, but is
overridden by calling
- * <code>header(<js>"Content-Type"</js>, value);</code>
+ * This is equivalent to calling <code>header(<js>"Content-Type"</js>,
<jv>value</jv>);</code>
+ * or <code>header(ContentType.<jsm>of</jsm>(<jv>value</jv>));</code>
+ *
+ * <p>
+ * This overrides the media type specified on the serializer.
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder contentType(Object value) {
- return header("Content-Type", value);
+ public RestClientBuilder contentType(String value) {
+ return header(ContentType.of(value));
}
/**
* Sets the value for the <c>Content-Encoding</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Content-Encoding"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"Content-Encoding"</js>, <jv>value</jv>);</code>
+ * or
<code>header(ContentEncoding.<jsm>of</jsm>(<jv>value</jv>));</code>
+ *
+ * @param value The new header value.
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public RestClientBuilder contentEncoding(String value) {
+ return header(ContentEncoding.of(value));
+ }
+
+ /**
+ * Sets the value for the <c>Date</c> request header on all requests.
+ *
+ * <p>
+ * This is equivalent to calling <code>header(<js>"Date"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Date.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder contentEncoding(Object value) {
- return header("Content-Encoding", value);
+ public RestClientBuilder date(ZonedDateTime value) {
+ return header(Date.of(value));
}
/**
* Sets the value for the <c>Date</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Date"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Date"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Date.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder date(Object value) {
- return header("Date", value);
+ public RestClientBuilder date(Date value) {
+ return header(value);
+ }
+
+ /**
+ * Sets the value for the <c>Debug</c> request header on all requests.
+ *
+ * <p>
+ * This is equivalent to calling <code>header(<js>"Debug"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Debug.<jsm>of</jsm>(<jv>value</jv>));</code>
+ *
+ * @return This object (for method chaining).
+ */
+ @Override
+ @FluentSetter
+ public RestClientBuilder debug() {
+ super.debug();
+ return header(Debug.TRUE);
}
/**
* Sets the value for the <c>Expect</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Expect"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Expect"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Expect.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder expect(Object value) {
- return header("Expect", value);
+ public RestClientBuilder expect(String value) {
+ return header(Expect.of(value));
}
/**
* Sets the value for the <c>Forwarded</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Forwarded"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Forwarded"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Forwarded.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder forwarded(Object value) {
- return header("Forwarded", value);
+ public RestClientBuilder forwarded(String value) {
+ return header(Forwarded.of(value));
}
/**
* Sets the value for the <c>From</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"From"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"From"</js>,
<jv>value</jv>);</code>
+ * or <code>header(From.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder from(Object value) {
- return header("From", value);
+ public RestClientBuilder from(String value) {
+ return header(From.of(value));
}
/**
* Sets the value for the <c>Host</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Host"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Host"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Host.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder host(Object value) {
- return header("Host", value);
+ public RestClientBuilder host(String value) {
+ return header(Host.of(value));
}
/**
* Sets the value for the <c>If-Match</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"If-Match"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"If-Match"</js>,
<jv>value</jv>);</code>
+ * or <code>header(IfMatch.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder ifMatch(Object value) {
- return header("If-Match", value);
+ public RestClientBuilder ifMatch(String value) {
+ return header(IfMatch.of(value));
}
/**
* Sets the value for the <c>If-Modified-Since</c> request header on
all requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"If-Modified-Since"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"If-Modified-Since"</js>, <jv>value</jv>);</code>
+ * or
<code>header(IfModifiedSince.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder ifModifiedSince(Object value) {
- return header("If-Modified-Since", value);
+ public RestClientBuilder ifModifiedSince(String value) {
+ return header(IfModifiedSince.of(value));
}
/**
* Sets the value for the <c>If-None-Match</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"If-None-Match"</js>, value);</code>
+ * This is equivalent to calling <code>header(<js>"If-None-Match"</js>,
<jv>value</jv>);</code>
+ * or <code>header(IfNoneMatch.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder ifNoneMatch(Object value) {
- return header("If-None-Match", value);
+ public RestClientBuilder ifNoneMatch(String value) {
+ return header(IfNoneMatch.of(value));
}
/**
* Sets the value for the <c>If-Range</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"If-Range"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"If-Range"</js>,
<jv>value</jv>);</code>
+ * or <code>header(IfRange.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder ifRange(Object value) {
- return header("If-Range", value);
+ public RestClientBuilder ifRange(String value) {
+ return header(IfRange.of(value));
}
/**
* Sets the value for the <c>If-Unmodified-Since</c> request header on
all requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"If-Unmodified-Since"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"If-Unmodified-Since"</js>, <jv>value</jv>);</code>
+ * or
<code>header(IfUnmodifiedSince.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder ifUnmodifiedSince(Object value) {
- return header("If-Unmodified-Since", value);
+ public RestClientBuilder ifUnmodifiedSince(String value) {
+ return header(IfUnmodifiedSince.of(value));
}
/**
* Sets the value for the <c>Max-Forwards</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Max-Forwards"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"MaxForwards"</js>,
<jv>value</jv>);</code>
+ * or <code>header(MaxForwards.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder maxForwards(Object value) {
- return header("Max-Forwards", value);
+ public RestClientBuilder maxForwards(Integer value) {
+ return header(MaxForwards.of(value));
}
/**
- * When called, <c>X-No-Log: true</c> is added to requests.
+ * When called, <c>No-Trace: true</c> is added to requests.
*
* <p>
* This gives the opportunity for the servlet to not log errors on
invalid requests.
@@ -1664,147 +1746,157 @@ public class RestClientBuilder extends
BeanContextBuilder {
*/
@FluentSetter
public RestClientBuilder noTrace() {
- return header("X-No-Log", true);
+ return header(NoTrace.of(true));
}
/**
* Sets the value for the <c>Origin</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Origin"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Origin"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Origin.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder origin(Object value) {
- return header("Origin", value);
+ public RestClientBuilder origin(String value) {
+ return header(Origin.of(value));
}
/**
* Sets the value for the <c>Pragma</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Pragma"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Pragma"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Pragma.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder pragma(Object value) {
- return header("Pragma", value);
+ public RestClientBuilder pragma(String value) {
+ return header(Pragma.of(value));
}
/**
* Sets the value for the <c>Proxy-Authorization</c> request header on
all requests.
*
* <p>
- * This is a shortcut for calling
<code>header(<js>"Proxy-Authorization"</js>, value);</code>
+ * This is equivalent to calling
<code>header(<js>"ProxyAuthorization"</js>, <jv>value</jv>);</code>
+ * or
<code>header(ProxyAuthorization.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder proxyAuthorization(Object value) {
- return header("Proxy-Authorization", value);
+ public RestClientBuilder proxyAuthorization(String value) {
+ return header(ProxyAuthorization.of(value));
}
/**
* Sets the value for the <c>Range</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Range"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Range"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Range.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder range(Object value) {
- return header("Range", value);
+ public RestClientBuilder range(String value) {
+ return header(Range.of(value));
}
/**
* Sets the value for the <c>Referer</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Referer"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Referer"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Referer.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder referer(Object value) {
- return header("Referer", value);
+ public RestClientBuilder referer(String value) {
+ return header(Referer.of(value));
}
/**
* Sets the value for the <c>TE</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"TE"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"TE"</js>,
<jv>value</jv>);</code>
+ * or <code>header(TE.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder te(Object value) {
- return header("TE", value);
+ public RestClientBuilder te(String value) {
+ return header(TE.of(value));
}
/**
* Sets the value for the <c>User-Agent</c> request header on all
requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"User-Agent"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"User-Agent"</js>,
<jv>value</jv>);</code>
+ * or <code>header(UserAgent.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder userAgent(Object value) {
- return header("User-Agent", value);
+ public RestClientBuilder userAgent(String value) {
+ return header(UserAgent.of(value));
}
/**
* Sets the value for the <c>Upgrade</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Upgrade"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Upgrade"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Upgrade.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder upgrade(Object value) {
- return header("Upgrade", value);
+ public RestClientBuilder upgrade(String value) {
+ return header(Upgrade.of(value));
}
/**
* Sets the value for the <c>Via</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Via"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Via"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Via.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder via(Object value) {
- return header("Via", value);
+ public RestClientBuilder via(String value) {
+ return header(Via.of(value));
}
/**
* Sets the value for the <c>Warning</c> request header on all requests.
*
* <p>
- * This is a shortcut for calling <code>header(<js>"Warning"</js>,
value);</code>
+ * This is equivalent to calling <code>header(<js>"Warning"</js>,
<jv>value</jv>);</code>
+ * or <code>header(Warning.<jsm>of</jsm>(<jv>value</jv>));</code>
*
* @param value The new header value.
* @return This object (for method chaining).
*/
@FluentSetter
- public RestClientBuilder warning(Object value) {
- return header("Warning", value);
+ public RestClientBuilder warning(String value) {
+ return header(Warning.of(value));
}
//-----------------------------------------------------------------------------------------------------------------
@@ -4695,12 +4787,6 @@ public class RestClientBuilder extends
BeanContextBuilder {
}
@Override /* GENERATED - ContextBuilder */
- public RestClientBuilder debug() {
- super.debug();
- return this;
- }
-
- @Override /* GENERATED - ContextBuilder */
public RestClientBuilder locale(Locale value) {
super.locale(value);
return this;
@@ -5409,24 +5495,6 @@ public class RestClientBuilder extends
BeanContextBuilder {
}
/**
- * Assigns <c>User-Agent</c> value.
- *
- * <ul class='notes'>
- * <li>This value can be overridden by the {@link
#httpProcessor(HttpProcessor)} method.
- * <li>{@link #userAgent(Object)} is an equivalent method.
- * </ul>
- *
- * @param userAgent New property value.
- * @return This object (for method chaining).
- * @see HttpClientBuilder#setUserAgent(String)
- */
- @FluentSetter
- public RestClientBuilder userAgent(String userAgent) {
- httpClientBuilder.setUserAgent(userAgent);
- return this;
- }
-
- /**
* Assigns default request header values.
*
* <ul class='notes'>
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
index c14c67c..f178b70 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
@@ -359,7 +359,7 @@ public class MockRestClient extends RestClient implements
HttpClientConnection {
* <p>
* Equivalent to calling:
* <p class='bcode w800'>
- *
MockRestClient.<jsm>create</jsm>(<jv>impl</jv>).ignoreErrors().noLog().build();
+ *
MockRestClient.<jsm>create</jsm>(<jv>impl</jv>).ignoreErrors().noTrace().build();
* </p>
*
* @param impl
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
index 895acec..34a00dc 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
@@ -23,6 +23,7 @@ import static org.apache.juneau.rest.util.RestUtils.*;
import java.io.*;
import java.lang.annotation.*;
import java.lang.reflect.Method;
+import java.time.*;
import org.apache.http.*;
import org.apache.http.client.*;
@@ -277,12 +278,6 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - ContextBuilder */
- public MockRestClientBuilder mediaType(MediaType value) {
- super.mediaType(value);
- return this;
- }
-
- @Override /* GENERATED - ContextBuilder */
public MockRestClientBuilder prependTo(String name, Object value) {
super.prependTo(name, value);
return this;
@@ -637,25 +632,25 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder accept(Object value) {
+ public MockRestClientBuilder accept(String value) {
super.accept(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder acceptCharset(Object value) {
+ public MockRestClientBuilder acceptCharset(String value) {
super.acceptCharset(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder acceptEncoding(Object value) {
+ public MockRestClientBuilder acceptEncoding(String value) {
super.acceptEncoding(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder acceptLanguage(Object value) {
+ public MockRestClientBuilder acceptLanguage(String value) {
super.acceptLanguage(value);
return this;
}
@@ -697,7 +692,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder authorization(Object value) {
+ public MockRestClientBuilder authorization(String value) {
super.authorization(value);
return this;
}
@@ -715,7 +710,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder cacheControl(Object value) {
+ public MockRestClientBuilder cacheControl(String value) {
super.cacheControl(value);
return this;
}
@@ -733,13 +728,13 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder clientVersion(Object value) {
+ public MockRestClientBuilder clientVersion(String value) {
super.clientVersion(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder connection(Object value) {
+ public MockRestClientBuilder connection(String value) {
super.connection(value);
return this;
}
@@ -793,25 +788,25 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder contentEncoding(Object value) {
+ public MockRestClientBuilder contentEncoding(String value) {
super.contentEncoding(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder contentLength(Object value) {
+ public MockRestClientBuilder contentLength(Long value) {
super.contentLength(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder contentType(Object value) {
+ public MockRestClientBuilder contentType(String value) {
super.contentType(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder date(Object value) {
+ public MockRestClientBuilder date(ZonedDateTime value) {
super.date(value);
return this;
}
@@ -937,7 +932,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder expect(Object value) {
+ public MockRestClientBuilder expect(String value) {
super.expect(value);
return this;
}
@@ -997,20 +992,20 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder forwarded(Object value) {
+ public MockRestClientBuilder forwarded(String value) {
super.forwarded(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder from(Object value) {
+ public MockRestClientBuilder from(String value) {
super.from(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder header(Header header) {
- super.header(header);
+ public MockRestClientBuilder header(Header value) {
+ super.header(value);
return this;
}
@@ -1063,7 +1058,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder host(Object value) {
+ public MockRestClientBuilder host(String value) {
super.host(value);
return this;
}
@@ -1105,31 +1100,31 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder ifMatch(Object value) {
+ public MockRestClientBuilder ifMatch(String value) {
super.ifMatch(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder ifModifiedSince(Object value) {
+ public MockRestClientBuilder ifModifiedSince(String value) {
super.ifModifiedSince(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder ifNoneMatch(Object value) {
+ public MockRestClientBuilder ifNoneMatch(String value) {
super.ifNoneMatch(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder ifRange(Object value) {
+ public MockRestClientBuilder ifRange(String value) {
super.ifRange(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder ifUnmodifiedSince(Object value) {
+ public MockRestClientBuilder ifUnmodifiedSince(String value) {
super.ifUnmodifiedSince(value);
return this;
}
@@ -1249,7 +1244,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder maxForwards(Object value) {
+ public MockRestClientBuilder maxForwards(Integer value) {
super.maxForwards(value);
return this;
}
@@ -1261,6 +1256,18 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
+ public MockRestClientBuilder mediaType(String value) {
+ super.mediaType(value);
+ return this;
+ }
+
+ @Override /* GENERATED - RestClientBuilder */
+ public MockRestClientBuilder mediaType(MediaType value) {
+ super.mediaType(value);
+ return this;
+ }
+
+ @Override /* GENERATED - RestClientBuilder */
public MockRestClientBuilder msgPack() {
super.msgPack();
return this;
@@ -1291,7 +1298,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder origin(Object value) {
+ public MockRestClientBuilder origin(String value) {
super.origin(value);
return this;
}
@@ -1370,7 +1377,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder pragma(Object value) {
+ public MockRestClientBuilder pragma(String value) {
super.pragma(value);
return this;
}
@@ -1388,7 +1395,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder proxyAuthorization(Object value) {
+ public MockRestClientBuilder proxyAuthorization(String value) {
super.proxyAuthorization(value);
return this;
}
@@ -1460,7 +1467,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder range(Object value) {
+ public MockRestClientBuilder range(String value) {
super.range(value);
return this;
}
@@ -1472,7 +1479,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder referer(Object value) {
+ public MockRestClientBuilder referer(String value) {
super.referer(value);
return this;
}
@@ -1593,7 +1600,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder te(Object value) {
+ public MockRestClientBuilder te(String value) {
super.te(value);
return this;
}
@@ -1629,7 +1636,7 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder upgrade(Object value) {
+ public MockRestClientBuilder upgrade(String value) {
super.upgrade(value);
return this;
}
@@ -1671,31 +1678,25 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder userAgent(Object value) {
+ public MockRestClientBuilder userAgent(String value) {
super.userAgent(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder userAgent(String userAgent) {
- super.userAgent(userAgent);
- return this;
- }
-
- @Override /* GENERATED - RestClientBuilder */
public MockRestClientBuilder userTokenHandler(UserTokenHandler
userTokenHandler) {
super.userTokenHandler(userTokenHandler);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder via(Object value) {
+ public MockRestClientBuilder via(String value) {
super.via(value);
return this;
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder warning(Object value) {
+ public MockRestClientBuilder warning(String value) {
super.warning(value);
return this;
}
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
index f8e9793..4d0ca3a 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
@@ -958,7 +958,7 @@ public class MockServletRequest implements
HttpServletRequest {
*/
protected MockServletRequest debug(boolean value) {
if (value)
- header("X-Debug", true);
+ header("Debug", true);
return this;
}
@@ -973,7 +973,7 @@ public class MockServletRequest implements
HttpServletRequest {
*/
public MockServletRequest noTrace(boolean value) {
if (value)
- header("X-NoTrace", true);
+ header("No-Trace", true);
return this;
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index 7df7af3..b842a27 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -1698,7 +1698,7 @@ public final class RestRequest {
}
/**
- * Sets the <js>"NoLog"</js> attribute to the specified boolean.
+ * Sets the <js>"NoTrace"</js> attribute to the specified boolean.
*
* <p>
* This flag is used by {@link BasicRestLogger} and tells it not to log
the current request.
@@ -1706,18 +1706,18 @@ public final class RestRequest {
* @param b The attribute value.
* @return This object (for method chaining).
*/
- public RestRequest setNoLog(Boolean b) {
- setAttribute("NoLog", b);
+ public RestRequest setNoTrace(Boolean b) {
+ setAttribute("NoTrace", b);
return this;
}
/**
- * Shortcut for calling <c>setNoLog(<jk>true</jk>)</c>.
+ * Shortcut for calling <c>setNoTrace(<jk>true</jk>)</c>.
*
* @return This object (for method chaining).
*/
- public RestRequest setNoLog() {
- return setNoLog(true);
+ public RestRequest setNoTrace() {
+ return setNoTrace(true);
}
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index 4f4bee4..191f4a6 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -118,7 +118,7 @@ public final class RestResponse {
}
request.getContext().getDefaultResponseHeaders().forEach(x->addHeader(x.getValue(),
resolveUris(x.getValue()))); // Done this way to avoid list/array copy.
-
+
opContext.getDefaultResponseHeaders().forEach(x->addHeader(x.getName(),
resolveUris(x.getValue())));
if (charset == null)
@@ -646,7 +646,7 @@ public final class RestResponse {
}
/**
- * Sets the <js>"NoLog"</js> attribute to the specified boolean.
+ * Sets the <js>"NoTrace"</js> attribute to the specified boolean.
*
* <p>
* This flag is used by {@link BasicRestLogger} and tells it not to log
the current request.
@@ -654,18 +654,18 @@ public final class RestResponse {
* @param b The attribute value.
* @return This object (for method chaining).
*/
- public RestResponse setNoLog(Boolean b) {
- request.setNoLog(b);
+ public RestResponse setNoTrace(Boolean b) {
+ request.setNoTrace(b);
return this;
}
/**
- * Shortcut for calling <c>setNoLog(<jk>true</jk>)</c>.
+ * Shortcut for calling <c>setNoTrace(<jk>true</jk>)</c>.
*
* @return This object (for method chaining).
*/
- public RestResponse setNoLog() {
- return setNoLog(true);
+ public RestResponse setNoTrace() {
+ return setNoTrace(true);
}
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicTestRestLogger.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicTestRestLogger.java
index 31f4d27..e4836d2 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicTestRestLogger.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicTestRestLogger.java
@@ -31,9 +31,9 @@ import org.apache.juneau.rest.*;
* <p>
* Requests can be tagged as no-log (meaning don't log if there's an error) in
any of the following ways:
* <ul>
- * <li>A <js>"X-No-Log: true"</js> header.
- * <li>A <js>"noLog=true"</js> query parameter.
- * <li>A <js>"NoLog"</js> request attribute with a string value of
<js>"true"</js>.
+ * <li>A <js>"No-Trace: true"</js> header.
+ * <li>A <js>"noTrace=true"</js> query parameter.
+ * <li>A <js>"NoTrace"</js> request attribute with a string value of
<js>"true"</js>.
* </ul>
*
* <h5 class='section'>Configured Settings:</h5>
@@ -67,7 +67,7 @@ public class BasicTestRestLogger extends BasicRestLogger {
.requestDetail(HEADER)
.responseDetail(HEADER)
.enabled(CONDITIONAL)
- .enabledTest(x -> ! isNoLog(x)) //
Only log if it's not a no-trace request.
+ .enabledTest(x -> ! isNoTrace(x)) //
Only log if it's not a no-trace request.
.logStackTrace()
.build(),
RestLoggerRule.create() // Log 400-500 errors
with just status-line information.
@@ -76,7 +76,7 @@ public class BasicTestRestLogger extends BasicRestLogger {
.requestDetail(STATUS_LINE)
.responseDetail(STATUS_LINE)
.enabled(CONDITIONAL)
- .enabledTest(x -> ! isNoLog(x)) //
Only log if it's not a no-trace request.
+ .enabledTest(x -> ! isNoTrace(x)) //
Only log if it's not a no-trace request.
.logStackTrace()
.build()
)
@@ -91,13 +91,13 @@ public class BasicTestRestLogger extends BasicRestLogger {
;
}
- private static boolean isNoLog(HttpServletRequest req) {
- Object o = req.getAttribute("NoLog");
+ private static boolean isNoTrace(HttpServletRequest req) {
+ Object o = req.getAttribute("NoTrace");
if (o != null)
return "true".equalsIgnoreCase(o.toString());
- String s = req.getHeader("X-No-Log");
+ String s = req.getHeader("No-Trace");
if (s != null)
return "true".equalsIgnoreCase(s);
- return emptyIfNull(req.getQueryString()).contains("noLog=true");
+ return
emptyIfNull(req.getQueryString()).contains("noTrace=true");
}
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
index fabe096..742df2c 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
@@ -27,6 +27,7 @@ import java.util.*;
import org.apache.http.Header;
import org.apache.juneau.collections.*;
import org.apache.juneau.http.header.*;
+import org.apache.juneau.http.header.Date;
import org.apache.juneau.http.part.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.marshall.*;
@@ -217,30 +218,30 @@ public class RestClient_Headers_Test {
checkClient("Accept-Language").acceptLanguage("en").build().get("/headers").run().assertBody().is("['en']");
checkClient("Authorization").authorization("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Cache-Control").cacheControl("none").build().get("/headers").run().assertBody().is("['none']");
-
checkClient("X-Client-Version").clientVersion("1").build().get("/headers").run().assertBody().is("['1']");
+
checkClient("Client-Version").clientVersion("1").build().get("/headers").run().assertBody().is("['1']");
checkClient("Connection").connection("foo").build().get("/headers").run().assertBody().is("['foo']");
-
checkClient("Content-Length").contentLength("123").build().get("/headers").run().assertBody().is("['123']");
+
checkClient("Content-Length").contentLength(123l).build().get("/headers").run().assertBody().is("['123']");
checkClient("Content-Type").contentType("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Content-Encoding").contentEncoding("identity").build().get("/headers").run().assertBody().is("['identity']");
-
checkClient("Date").date("123").build().get("/headers").run().assertBody().is("['123']");
+ checkClient("Date").date(Date.of("Sat, 29 Oct 1994 19:43:31
GMT")).build().get("/headers").run().assertBody().is("['Sat, 29 Oct 1994
19:43:31 GMT']");
checkClient("Expect").expect("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Forwarded").forwarded("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("From").from("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Host").host("foo").build().get("/headers").run().assertBody().is("['foo']");
-
checkClient("If-Match").ifMatch("foo").build().get("/headers").run().assertBody().is("['foo']");
-
checkClient("If-Modified-Since").ifModifiedSince("foo").build().get("/headers").run().assertBody().is("['foo']");
-
checkClient("If-None-Match").ifNoneMatch("foo").build().get("/headers").run().assertBody().is("['foo']");
-
checkClient("If-Range").ifRange("foo").build().get("/headers").run().assertBody().is("['foo']");
-
checkClient("If-Unmodified-Since").ifUnmodifiedSince("foo").build().get("/headers").run().assertBody().is("['foo']");
-
checkClient("Max-Forwards").maxForwards("10").build().get("/headers").run().assertBody().is("['10']");
-
checkClient("X-No-Log").noTrace().build().get("/headers").run().assertBody().is("['true']");
+
checkClient("If-Match").ifMatch("\"foo\"").build().get("/headers").run().assertBody().is("['\"foo\"']");
+ checkClient("If-Modified-Since").ifModifiedSince("Sat, 29 Oct
1994 19:43:31 GMT").build().get("/headers").run().assertBody().is("['Sat, 29
Oct 1994 19:43:31 GMT']");
+
checkClient("If-None-Match").ifNoneMatch("\"foo\"").build().get("/headers").run().assertBody().is("['\"foo\"']");
+
checkClient("If-Range").ifRange("\"foo\"").build().get("/headers").run().assertBody().is("['\"foo\"']");
+ checkClient("If-Unmodified-Since").ifUnmodifiedSince("Sat, 29
Oct 1994 19:43:31 GMT").build().get("/headers").run().assertBody().is("['Sat,
29 Oct 1994 19:43:31 GMT']");
+
checkClient("Max-Forwards").maxForwards(10).build().get("/headers").run().assertBody().is("['10']");
+
checkClient("No-Trace").noTrace().build().get("/headers").run().assertBody().is("['true']");
checkClient("Origin").origin("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Pragma").pragma("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Proxy-Authorization").proxyAuthorization("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Range").range("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Referer").referer("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("TE").te("foo").build().get("/headers").run().assertBody().is("['foo']");
- checkClient("User-Agent").userAgent(new
StringBuilder("foo")).build().get("/headers").run().assertBody().is("['foo']");
+
checkClient("User-Agent").userAgent("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Upgrade").upgrade("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Via").via("foo").build().get("/headers").run().assertBody().is("['foo']");
checkClient("Warning").warning("foo").build().get("/headers").run().assertBody().is("['foo']");