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 7fbc620  REST refactoring.
7fbc620 is described below

commit 7fbc62027619a2825bca94342d8049d93a2b1bcd
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Sat Feb 20 13:06:18 2021 -0500

    REST refactoring.
---
 .../java/org/apache/juneau/http/BasicHeader.java   |  41 ++++-
 .../juneau/http/header/BasicStringHeader.java      |  19 +--
 .../apache/juneau/rest/client/ResponseHeader.java  |  17 ++-
 .../org/apache/juneau/rest/client/RestClient.java  |   2 +-
 .../java/org/apache/juneau/rest/RequestBody.java   |   4 +-
 .../java/org/apache/juneau/rest/RequestHeader.java |  19 ++-
 .../org/apache/juneau/rest/RequestHeaders.java     |   4 +-
 .../org/apache/juneau/rest/RequestQueryParam.java  |  17 ++-
 .../org/apache/juneau/rest/RequestQueryParams.java |   4 +-
 .../java/org/apache/juneau/rest/RestRequest.java   | 165 +++------------------
 .../java/org/apache/juneau/rest/RestResponse.java  |   2 +-
 .../org/apache/juneau/rest/args/HeaderArg.java     |   4 +-
 .../apache/juneau/rest/args/RequestHeadersArg.java |   4 +-
 .../org/apache/juneau/rest/args/TimeZoneArg.java   |   4 +-
 .../juneau/rest/reshandlers/DefaultHandler.java    |   6 +-
 .../juneau/http/SerializedHttpEntity_Test.java     |   2 +-
 .../http/remote/Remote_HeaderAnnotation_Test.java  |   2 +-
 .../org/apache/juneau/http/remote/Remote_Test.java |   2 +-
 .../org/apache/juneau/rest/RestOp_Params_Test.java |   2 +-
 .../juneau/rest/annotation/RestHook_Test.java      |  14 +-
 .../rest/client/RestClient_BasicCalls_Test.java    |   2 +-
 .../juneau/rest/client/RestClient_Body_Test.java   |   2 +-
 .../client/RestClient_CallbackStrings_Test.java    |   2 +-
 .../client/RestClient_Config_BeanContext_Test.java |   4 +-
 .../client/RestClient_Config_OpenApi_Test.java     |   2 +-
 .../client/RestClient_Config_RestClient_Test.java  |   4 +-
 .../rest/client/RestClient_Headers_Test.java       |   2 +-
 .../client/RestClient_Response_Headers_Test.java   |   8 +-
 .../rest/client/RestClient_Response_Test.java      |  10 +-
 29 files changed, 156 insertions(+), 214 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
index 400192e..d5585d5 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
@@ -221,12 +221,49 @@ public class BasicHeader implements Header, Cloneable, 
Serializable {
        }
 
        /**
+        * Returns the value of this header as a string.
+        *
+        * @return The value of this header as a string, or {@link 
Optional#empty()} if the value is <jk>null</jk>
+        */
+       public Optional<String> asString() {
+               return Optional.ofNullable(getValue());
+       }
+
+       /**
         * Returns <jk>true</jk> if the value exists.
+        * 
+        * <p>
+        * This is a shortcut for calling <c>asString().isPresent()</c>.
         *
         * @return <jk>true</jk> if the value exists.
         */
-       public boolean exists() {
-               return getValue() != null;
+       public boolean isPresent() {
+               return asString().isPresent();
+       }
+
+       /**
+        * If a value is present, returns the value, otherwise throws {@link 
NoSuchElementException}.
+        * 
+        * <p>
+        * This is a shortcut for calling <c>asString().get()</c>.
+        *
+        * @return The value if present.
+        */
+       public String get() {
+               return asString().get();
+       }
+
+       /**
+        * If a value is present, returns the value, otherwise returns other.
+        * 
+        * <p>
+        * This is a shortcut for calling 
<c>asString().orElse(<jv>other</jv>)</c>.
+        *
+        * @param other The other value.
+        * @return The value if present or the other value if not.
+        */
+       public String orElse(String other) {
+               return asString().orElse(other);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java
index 900b249..9cfd4ed 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java
@@ -122,28 +122,11 @@ public class BasicStringHeader extends BasicHeader {
                return getParsedValue();
        }
 
-       /**
-        * Returns the value of this header as a string.
-        *
-        * @return The value of this header as a string, or {@link 
Optional#empty()} if the value is <jk>null</jk>
-        */
+       @Override /* BasicHeader */
        public Optional<String> asString() {
                return Optional.ofNullable(getParsedValue());
        }
 
-       /**
-        * Return the value if present, otherwise return other.
-        *
-        * <p>
-        * This is a shortened form for calling 
<c>asString().orElse(<jv>other</jv>)</c>.
-        *
-        * @param other The value to be returned if there is no value present, 
may be <jk>null</jk>.
-        * @return The value, if present, otherwise other.
-        */
-       public String orElse(String other) {
-               return asString().orElse(other);
-       }
-
        private String getParsedValue() {
                if (parsed != null)
                        return parsed;
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
index 679c55a..cb467fa 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
@@ -128,13 +128,28 @@ public class ResponseHeader implements Header {
        /**
         * Returns <jk>true</jk> if this header exists on the response.
         *
+        * <p>
+        * This is a shortened form for calling <c>asString().isPresent()</c>.
+        *
         * @return <jk>true</jk> if this header exists on the response.
         */
-       public boolean exists() {
+       public boolean isPresent() {
                return value != null;
        }
 
        /**
+        * If a value is present, returns the value, otherwise throws {@link 
NoSuchElementException}.
+        *
+        * <p>
+        * This is a shortened form for calling <c>asString().get()</c>.
+        *
+        * @return The value if present.
+        */
+       public String get() {
+               return asString().get();
+       }
+
+       /**
         * Return the value if present, otherwise return other.
         *
         * <p>
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 eb07958..0ebeeb3 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
@@ -602,7 +602,7 @@ import org.apache.juneau.utils.*;
  * <ul class='javatree'>
  *     <li class='jc'>{@link ResponseHeader}
  *     <ul>
- *             <li class='jm'><c>{@link ResponseHeader#exists() exists()} 
<jk>returns</jk> <jk>boolean</jk></c>
+ *             <li class='jm'><c>{@link ResponseHeader#isPresent() 
isPresent()} <jk>returns</jk> <jk>boolean</jk></c>
  *             <li class='jm'><c>{@link ResponseHeader#asString() asString()} 
<jk>returns</jk> String</c>
  *             <li class='jm'><c>{@link ResponseHeader#asType(Type,Type...) 
asType(Type,Type...)} <jk>returns</jk> T</c>
  *             <li class='jm'><c>{@link ResponseHeader#asType(Class) 
asType(Class&lt;T&gt;)} <jk>returns</jk> T</c>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
index 1b8257f..c77f6b7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
@@ -491,14 +491,14 @@ public class RequestBody {
 
        private Encoder getEncoder() throws UnsupportedMediaType {
                if (encoder == null) {
-                       String ce = 
req.getStringHeader("content-encoding").orElse(null);
+                       String ce = 
req.getHeader("content-encoding").orElse(null);
                        if (isNotEmpty(ce)) {
                                ce = ce.trim();
                                encoder = encoders.getEncoder(ce);
                                if (encoder == null)
                                        throw new UnsupportedMediaType(
                                                "Unsupported encoding in 
request header ''Content-Encoding'': ''{0}''\n\tSupported codings: {1}",
-                                               
req.getStringHeader("content-encoding").orElse(null), 
encoders.getSupportedEncodings()
+                                               
req.getHeader("content-encoding").orElse(null), encoders.getSupportedEncodings()
                                        );
                        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
index 68309b4..bcb0bdc 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
@@ -96,10 +96,25 @@ public class RequestHeader implements Header {
        /**
         * Returns <jk>true</jk> if this header exists on the request.
         *
+        * <p>
+        * This is a shortened form for calling <c>asString().isPresent()</c>.
+        *
         * @return <jk>true</jk> if this header exists on the request.
         */
-       public boolean exists() {
-               return value != null;
+       public boolean isPresent() {
+               return asString().isPresent();
+       }
+
+       /**
+        * If a value is present, returns the value, otherwise throws {@link 
NoSuchElementException}.
+        *
+        * <p>
+        * This is a shortened form for calling <c>asString().get()</c>.
+        *
+        * @return The value if present.
+        */
+       public String get() {
+               return asString().get();
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
index d939a23..c5ddde4 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
@@ -135,7 +135,7 @@ public class RequestHeaders {
         * Returns the first header with the specified name.
         *
         * <p>
-        * Note that this method never returns <jk>null</jk> and that {@link 
RequestHeader#exists()} can be used
+        * Note that this method never returns <jk>null</jk> and that {@link 
RequestHeader#isPresent()} can be used
         * to test for the existence of the header.
         *
         * @param name The header name.  Must not be <jk>null</jk>.
@@ -151,7 +151,7 @@ public class RequestHeaders {
         * Returns the last header with the specified name.
         *
         * <p>
-        * Note that this method never returns <jk>null</jk> and that {@link 
RequestHeader#exists()} can be used
+        * Note that this method never returns <jk>null</jk> and that {@link 
RequestHeader#isPresent()} can be used
         * to test for the existence of the header.
         *
         * @param name The header name.  Must not be <jk>null</jk>.
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
index 568082c..7a0fb13 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
@@ -95,14 +95,29 @@ public class RequestQueryParam implements NameValuePair {
 
        /**
         * Returns <jk>true</jk> if this parameter exists on the request.
+        * 
+        * <p>
+        * This is a shortened form for calling <c>asString().isPresent()</c>.
         *
         * @return <jk>true</jk> if this parameter exists on the request.
         */
-       public boolean exists() {
+       public boolean isPresent() {
                return value != null;
        }
 
        /**
+        * If a value is present, returns the value, otherwise throws {@link 
NoSuchElementException}.
+        *
+        * <p>
+        * This is a shortened form for calling <c>asString().get()</c>.
+        *
+        * @return The value if present.
+        */
+       public String get() {
+               return asString().get();
+       }
+
+       /**
         * Return the value if present, otherwise return other.
         *
         * <p>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
index fe78dc3..ec403d7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
@@ -112,7 +112,7 @@ public class RequestQueryParams {
         * Returns the first parameter with the specified name.
         *
         * <p>
-        * Note that this method never returns <jk>null</jk> and that {@link 
RequestQueryParam#exists()} can be used
+        * Note that this method never returns <jk>null</jk> and that {@link 
RequestQueryParam#isPresent()} can be used
         * to test for the existence of the parameter.
         *
         * @param name The parameter name.
@@ -128,7 +128,7 @@ public class RequestQueryParams {
         * Returns the last parameter with the specified name.
         *
         * <p>
-        * Note that this method never returns <jk>null</jk> and that {@link 
RequestQueryParam#exists()} can be used
+        * Note that this method never returns <jk>null</jk> and that {@link 
RequestQueryParam#isPresent()} can be used
         * to test for the existence of the parameter.
         *
         * @param name The parameter name.
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 c7674bc..2aaf8d1 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
@@ -104,7 +104,7 @@ import org.apache.juneau.utils.*;
  * </ul>
  */
 @SuppressWarnings({ "unchecked", "unused" })
-public final class RestRequest implements HttpRequest {
+public final class RestRequest {
 
        // Constructor initialized.
        private HttpServletRequest inner;
@@ -167,7 +167,7 @@ public final class RestRequest implements HttpRequest {
                                .create()
                                .javaMethod(opContext.getJavaMethod())
                                .locale(getLocale())
-                               
.timeZone(getRequestHeaders().getTimeZone().orElse(null))
+                               
.timeZone(getHeaders().getTimeZone().orElse(null))
                                .debug(isDebug() ? true : null);
 
                partParserSession = 
opContext.getPartParser().createPartSession(parserSessionArgs);
@@ -176,7 +176,7 @@ public final class RestRequest implements HttpRequest {
                        .create()
                        .javaMethod(opContext.getJavaMethod())
                        .locale(getLocale())
-                       
.timeZone(getRequestHeaders().getTimeZone().orElse(null))
+                       .timeZone(getHeaders().getTimeZone().orElse(null))
                        .debug(isDebug() ? true : null)
                        .uriContext(getUriContext())
                        .resolver(getVarResolverSession())
@@ -213,7 +213,11 @@ public final class RestRequest implements HttpRequest {
        // Request line.
        
//-----------------------------------------------------------------------------------------------------------------
 
-       @Override /* HttpRequest */
+       /**
+        * Returns the request line of this request.
+        *
+        * @return The request line of this request.
+        */
        public RequestLine getRequestLine() {
                String x = inner.getProtocol();
                int i = x.indexOf('/');
@@ -222,7 +226,11 @@ public final class RestRequest implements HttpRequest {
                return new BasicRequestLine(inner.getMethod(), 
inner.getRequestURI(), pv);
        }
 
-       @Override /* HttpRequest */
+       /**
+        * Returns the protocol version from the request line of this request.
+        *
+        * @return The protocol version from the request line of this request.
+        */
        public ProtocolVersion getProtocolVersion() {
                return getRequestLine().getProtocolVersion();
        }
@@ -345,7 +353,7 @@ public final class RestRequest implements HttpRequest {
         *      The headers on this request.
         *      <br>Never <jk>null</jk>.
         */
-       public RequestHeaders getRequestHeaders() {
+       public RequestHeaders getHeaders() {
                return headers;
        }
 
@@ -356,146 +364,32 @@ public final class RestRequest implements HttpRequest {
         * If there is more than one matching header in the message the last 
element of <c>getHeaders(String)</c> is returned.
         * <br>If there is no matching header in the message, an empty request 
header object is returned.
         *
-        * <p>
-        * This method is identical to {@link #getLastHeader(String)}.
-        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
         *      <jc>// Gets a header and throws a BadRequest if it doesn't 
exist.</jc>
         *      <jv>request</jv>
         *              .getHeader(<js>"Foo"</js>)
         *              .assertValue().exists()
-        *              .asString().get();
+        *              .get();
         * </p>
         *
         * @param name The header name.
         * @return The request header object, never <jk>null</jk>.
         */
        public RequestHeader getHeader(String name) {
-               return getLastHeader(name);
-       }
-
-       /**
-        * Returns the last header with a specified name as a string value.
-        *
-        * <p>
-        * This method is equivalent to calling 
<c>getLastHeader(<jv>name</jv>).asString()</c>.
-        *
-        * @param name The header name.
-        * @return The request header value as a string, never <jk>null</jk>.
-        */
-       public Optional<String> getStringHeader(String name) {
-               return getLastHeader(name).asString();
-       }
-
-       /**
-        * Returns the first header with a specified name of this message.
-        *
-        * <p>
-        * If there is more than one matching header in the message the first 
element of <c>getHeaders(String)</c> is returned.
-        * <br>If there is no matching header in the message, an empty request 
header object is returned.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// Gets a header and throws a BadRequest if it doesn't 
exist.</jc>
-        *      <jv>request</jv>
-        *              .getFirstHeader(<js>"Foo"</js>)
-        *              .assertValue().exists()
-        *              .asString().get();
-        * </p>
-        *
-        * @param name The header name.
-        * @return The request header object, never <jk>null</jk>.
-        */
-       @Override /* HttpRequest */
-       public RequestHeader getFirstHeader(String name) {
-               return headers.getFirst(name);
+               return headers.getLast(name);
        }
 
        /**
-        * Returns the last header with a specified name of this message.
-        *
-        * <p>
-        * If there is more than one matching header in the message the last 
element of <c>getHeaders(String)</c> is returned.
-        * <br>If there is no matching header in the message, an empty request 
header object is returned.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// Gets a header and throws a BadRequest if it doesn't 
exist.</jc>
-        *      <jv>request</jv>
-        *              .getLastHeader(<js>"Foo"</js>)
-        *              .assertValue().exists()
-        *              .asString().get();
-        * </p>
+        * Returns <jk>true</jk> if this request contains the specified header.
         *
         * @param name The header name.
-        * @return The request header object, never <jk>null</jk>.
+        * @return <jk>true</jk> if this request contains the specified header.
         */
-       @Override /* HttpRequest */
-       public RequestHeader getLastHeader(String name) {
-               return headers.getLast(name);
-       }
-
-       @Override /* HttpRequest */
-       public RequestHeader[] getAllHeaders() {
-               return headers.getAll().toArray(new RequestHeader[0]);
-       }
-
-       @Override /* HttpRequest */
-       public void addHeader(org.apache.http.Header header) {
-               headers.add(header);
-       }
-
-       @Override /* HttpRequest */
-       public void addHeader(String name, String value) {
-               headers.add(name, value);
-       }
-
-       @Override /* HttpRequest */
-       public void setHeader(org.apache.http.Header header) {
-               headers.set(header);
-       }
-
-       @Override /* HttpRequest */
-       public void setHeader(String name, String value) {
-               headers.set(name, value);
-       }
-
-       @Override /* HttpRequest */
-       public void setHeaders(org.apache.http.Header[] headers) {
-               this.headers.set(headers);
-       }
-
-       @Override /* HttpRequest */
-       public void removeHeader(org.apache.http.Header header) {
-               headers.remove(header);
-       }
-
-       @Override /* HttpRequest */
-       public void removeHeaders(String name) {
-               headers.remove(name);
-       }
-
-       @Override /* HttpRequest */
-       public HeaderIterator headerIterator() {
-               return headers.iterator();
-       }
-
-       @Override /* HttpRequest */
-       public HeaderIterator headerIterator(String name) {
-               return headers.iterator(name);
-       }
-
-       @Override /* HttpRequest */
        public boolean containsHeader(String name) {
                return headers.contains(name);
        }
 
-       @Override /* HttpRequest */
-       public RequestHeader[] getHeaders(String name) {
-               return headers.getAll(name).toArray(new RequestHeader[0]);
-       }
-
        /**
         * Provides the ability to perform fluent-style assertions on the 
response character encoding.
         *
@@ -532,7 +426,7 @@ public final class RestRequest implements HttpRequest {
                        // Determine charset
                        // NOTE:  Don't use super.getCharacterEncoding() 
because the spec is implemented inconsistently.
                        // Jetty returns the default charset instead of null if 
the character is not specified on the request.
-                       String h = getLastHeader("Content-Type").orElse(null);
+                       String h = getHeader("Content-Type").orElse(null);
                        if (h != null) {
                                int i = h.indexOf(";charset=");
                                if (i > 0)
@@ -1540,7 +1434,7 @@ public final class RestRequest implements HttpRequest {
                                                        if (pt == FORMDATA)
                                                                return 
getFormData().get(pp, schema, name, type);
                                                        if (pt == HEADER)
-                                                               return 
getLastHeader(name).parser(pp).schema(schema).asType(type);
+                                                               return 
getHeader(name).parser(pp).schema(schema).asType(type);
                                                        if (pt == PATH)
                                                                return 
getPathMatch().get(pp, schema, name, type);
                                                }
@@ -1583,23 +1477,6 @@ public final class RestRequest implements HttpRequest {
        }
 
        /**
-        * Not implemented.
-        */
-       @SuppressWarnings("deprecation")
-       @Override
-       public HttpParams getParams() {
-               return null;
-       }
-
-       /**
-        * Not implemented.
-        */
-       @SuppressWarnings("deprecation")
-       @Override
-       public void setParams(HttpParams params) {
-       }
-
-       /**
         * Returns the current session associated with this request, or if the 
request does not have a session, creates one.
         *
         * @return The current request session.
@@ -1637,7 +1514,7 @@ public final class RestRequest implements HttpRequest {
        public String toString() {
                StringBuilder sb = new 
StringBuilder("\n").append(getRequestLine()).append("\n");
                sb.append("---Headers---\n");
-               for (RequestHeader h : getAllHeaders()) {
+               for (RequestHeader h : getHeaders().getAll()) {
                        sb.append("\t").append(h).append("\n");
                }
                String m = getMethod();
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 72ca20d..d1657c7 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
@@ -116,7 +116,7 @@ public final class RestResponse {
                        setHeaderSafe(e.getName(), stringify(e.getValue()));
 
                if (charset == null)
-                       throw new NotAcceptable("No supported charsets in 
header ''Accept-Charset'': ''{0}''", 
request.getStringHeader("Accept-Charset").orElse(null));
+                       throw new NotAcceptable("No supported charsets in 
header ''Accept-Charset'': ''{0}''", 
request.getHeader("Accept-Charset").orElse(null));
                inner.setCharacterEncoding(charset.name());
 
        }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/HeaderArg.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/HeaderArg.java
index d48188a..d85a2df 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/HeaderArg.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/HeaderArg.java
@@ -30,7 +30,7 @@ import org.apache.juneau.rest.annotation.*;
  * Resolves method parameters and parameter types annotated with {@link 
Header} on {@link RestOp}-annotated Java methods.
  *
  * <p>
- * The parameter value is resolved using <c><jv>call</jv>.{@link 
RestCall#getRestRequest() getRestRequest}().{@link 
RestRequest#getRequestHeaders() getHeaders}()./c>
+ * The parameter value is resolved using <c><jv>call</jv>.{@link 
RestCall#getRestRequest() getRestRequest}().{@link RestRequest#getHeaders() 
getHeaders}()./c>
  * with a {@link HttpPartSchema schema} derived from the {@link Header} 
annotation.
  *
  * <p>
@@ -99,7 +99,7 @@ public class HeaderArg implements RestOperationArg {
        public Object resolve(RestCall call) throws Exception {
                RestRequest req = call.getRestRequest();
                HttpPartParserSession ps = partParser == null ? 
req.getPartParserSession() : 
partParser.createPartSession(req.getParserSessionArgs());
-               RequestHeaders rh = call.getRestRequest().getRequestHeaders();
+               RequestHeaders rh = call.getRestRequest().getHeaders();
                BeanSession bs = call.getRestRequest().getBeanSession();
                ClassMeta<?> cm = bs.getClassMeta(type.innerType());
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/RequestHeadersArg.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/RequestHeadersArg.java
index 4175642..1d94e43 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/RequestHeadersArg.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/RequestHeadersArg.java
@@ -20,7 +20,7 @@ import org.apache.juneau.rest.annotation.*;
  * Resolves method parameters of type {@link RequestHeaders} on {@link 
RestOp}-annotated Java methods.
  *
  * <p>
- * The parameter value is resolved using <c><jv>call</jv>.{@link 
RestCall#getRestRequest() getRestRequest}().{@link 
RestRequest#getRequestHeaders() getHeaders}()</c>.
+ * The parameter value is resolved using <c><jv>call</jv>.{@link 
RestCall#getRestRequest() getRestRequest}().{@link RestRequest#getHeaders() 
getHeaders}()</c>.
  */
 public class RequestHeadersArg extends SimpleRestOperationArg {
 
@@ -40,6 +40,6 @@ public class RequestHeadersArg extends SimpleRestOperationArg 
{
         * Constructor.
         */
        protected RequestHeadersArg() {
-               super((c)->c.getRestRequest().getRequestHeaders());
+               super((c)->c.getRestRequest().getHeaders());
        }
 }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/TimeZoneArg.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/TimeZoneArg.java
index d57da5e..bc48b5a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/TimeZoneArg.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/TimeZoneArg.java
@@ -22,7 +22,7 @@ import org.apache.juneau.rest.annotation.*;
  * Resolves method parameters of type {@link TimeZone} on {@link 
RestOp}-annotated Java methods.
  *
  * <p>
- * The parameter value is resolved using <c><jv>call</jv>.{@link 
RestCall#getRestRequest() getRestRequest}().{@link 
RestRequest#getRequestHeaders() getHeaders}().{@link 
RequestHeaders#getTimeZone() getTimeZone}()</c>.
+ * The parameter value is resolved using <c><jv>call</jv>.{@link 
RestCall#getRestRequest() getRestRequest}().{@link RestRequest#getHeaders() 
getHeaders}().{@link RequestHeaders#getTimeZone() getTimeZone}()</c>.
  */
 public class TimeZoneArg extends SimpleRestOperationArg {
 
@@ -42,6 +42,6 @@ public class TimeZoneArg extends SimpleRestOperationArg {
         * Constructor.
         */
        protected TimeZoneArg() {
-               
super((c)->c.getRestRequest().getRequestHeaders().getTimeZone());
+               super((c)->c.getRestRequest().getHeaders().getTimeZone());
        }
 }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/DefaultHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/DefaultHandler.java
index 8795e96..f9dddf0 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/DefaultHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/DefaultHandler.java
@@ -55,7 +55,7 @@ public class DefaultHandler implements ResponseHandler {
        @Override /* ResponseHandler */
        public boolean handle(RestRequest req, RestResponse res) throws 
IOException, InternalServerError, NotAcceptable {
                SerializerGroup g = res.getOpContext().getSerializers();
-               String accept = 
req.getRequestHeaders().getString("Accept").orElse("*/*");
+               String accept = req.getHeader("Accept").orElse("*/*");
                SerializerMatch sm = g.getSerializerMatch(accept);
                HttpPartSchema schema = null;
 
@@ -178,7 +178,7 @@ public class DefaultHandler implements ResponseHandler {
                                                .properties(req.getAttributes())
                                                
.javaMethod(req.getOpContext().getJavaMethod())
                                                .locale(req.getLocale())
-                                               
.timeZone(req.getRequestHeaders().getTimeZone().orElse(null))
+                                               
.timeZone(req.getHeaders().getTimeZone().orElse(null))
                                                .mediaType(mediaType)
                                                .streamCharset(res.getCharset())
                                                .schema(schema)
@@ -248,7 +248,7 @@ public class DefaultHandler implements ResponseHandler {
 
                throw new NotAcceptable(
                        "Unsupported media-type in request header ''Accept'': 
''{0}''\n\tSupported media-types: {1}",
-                       req.getRequestHeaders().getString("Accept").orElse(""), 
g.getSupportedMediaTypes()
+                       req.getHeader("Accept").orElse(""), 
g.getSupportedMediaTypes()
                );
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
index fd97286..bdb85ae 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
@@ -41,7 +41,7 @@ public class SerializedHttpEntity_Test {
        public static class A extends BasicRestObject {
                @RestPost
                public String[] checkHeader(org.apache.juneau.rest.RestRequest 
req) {
-                       return 
req.getRequestHeaders().getAll(req.getStringHeader("Check").get()).stream().map(x
 -> x.getValue()).toArray(String[]::new);
+                       return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
                }
                @RestPost
                public Reader checkBody(org.apache.juneau.rest.RestRequest req) 
throws IOException {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_HeaderAnnotation_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_HeaderAnnotation_Test.java
index 21916de..c77fb7a 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_HeaderAnnotation_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_HeaderAnnotation_Test.java
@@ -678,7 +678,7 @@ public class Remote_HeaderAnnotation_Test {
        public static class K {
                @RestOp
                public String get(RestRequest req) throws Exception {
-                       return 
req.getRequestHeaders().subset("a,b,c,d,e,f,g,h,i,i1,i2,i3,a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,e1,e2,e3,e4,f1,f2,f3,f4".split("\\,")).toString(true);
+                       return 
req.getHeaders().subset("a,b,c,d,e,f,g,h,i,i1,i2,i3,a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,e1,e2,e3,e4,f1,f2,f3,f4".split("\\,")).toString(true);
                }
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
index b00359a..459b7f7 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
@@ -567,7 +567,7 @@ public class Remote_Test {
        public static class F extends BasicRestObject {
                @RestGet
                public String[] headers(org.apache.juneau.rest.RestRequest req) 
{
-                       return 
req.getRequestHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x
 -> x.getValue()).toArray(String[]::new);
+                       return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
                }
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
index dcf6af9..04a48fd 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
@@ -386,7 +386,7 @@ public class RestOp_Params_Test {
 
                @Override
                public Object resolve(RestCall call) throws Exception {
-                       return new 
B2b(call.getRestRequest().getStringHeader("Custom").orElse(null));
+                       return new 
B2b(call.getRestRequest().getHeader("Custom").orElse(null));
                }
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestHook_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestHook_Test.java
index 053153e..ee7a9b8 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestHook_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestHook_Test.java
@@ -58,9 +58,9 @@ public class RestHook_Test {
                        attrs.put("p2", "xp2");
                        attrs.put("p4", "xp4");
                        attrs.put("p5", "xp5"); // New property
-                       String overrideContentType = 
req.getStringHeader("Override-Content-Type").orElse(null);
+                       String overrideContentType = 
req.getHeader("Override-Content-Type").orElse(null);
                        if (overrideContentType != null)
-                               req.getRequestHeaders().set("Content-Type", 
overrideContentType);
+                               req.getHeaders().set("Content-Type", 
overrideContentType);
                }
 
                @RestPut(
@@ -128,10 +128,10 @@ public class RestHook_Test {
                        attrs.put("p2", "xp2");
                        attrs.put("p4", "xp4");
                        attrs.put("p5", "xp5"); // New property
-                       String overrideAccept = 
req.getStringHeader("Override-Accept").orElse(null);
+                       String overrideAccept = 
req.getHeader("Override-Accept").orElse(null);
                        if (overrideAccept != null)
-                               req.getRequestHeaders().set("Accept", 
overrideAccept);
-                       String overrideContentType = 
req.getStringHeader("Override-Content-Type").orElse(null);
+                               req.getHeaders().set("Accept", overrideAccept);
+                       String overrideContentType = 
req.getHeader("Override-Content-Type").orElse(null);
                        if (overrideContentType != null)
                                attrs.put("Override-Content-Type", 
overrideContentType);
                }
@@ -151,9 +151,9 @@ public class RestHook_Test {
                public String b(RestRequest req, RequestAttributes attrs) 
throws Exception {
                        attrs.put("p3", "pp3");
                        attrs.put("p4", "pp4");
-                       String accept = 
req.getStringHeader("Accept").orElse(null);
+                       String accept = req.getHeader("Accept").orElse(null);
                        if (accept == null || accept.isEmpty())
-                               req.getRequestHeaders().set("Accept", 
"text/s2");
+                               req.getHeaders().set("Accept", "text/s2");
                        return null;
                }
        }
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
index 4e8c688..bc0be86 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
@@ -83,7 +83,7 @@ public class RestClient_BasicCalls_Test {
                }
                @RestOp(path="/checkHeader")
                public String[] postHeader(org.apache.juneau.rest.RestRequest 
req) {
-                       return 
req.getRequestHeaders().getAll(req.getStringHeader("Check").orElse(null)).stream().map(x
 -> x.getValue()).toArray(String[]::new);
+                       return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
                }
                @RestOp(path="/",method="*")
                public Reader echoMethod(@Method String method) {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
index f694ebf..89173bf 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
@@ -36,7 +36,7 @@ public class RestClient_Body_Test {
        public static class A extends BasicRestObject {
                @RestPost
                public Reader post(org.apache.juneau.rest.RestRequest req, 
org.apache.juneau.rest.RestResponse res) throws IOException {
-                       for (RequestHeader e : req.getRequestHeaders().getAll())
+                       for (RequestHeader e : req.getHeaders().getAll())
                                res.addHeader("X-" + e.getName(), e.getValue());
                        return req.getReader();
                }
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
index 49c3508..839bbf9 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
@@ -42,7 +42,7 @@ public class RestClient_CallbackStrings_Test {
                }
                private Map<String,Object> getFooHeaders(RestRequest req) {
                        Map<String,Object> m = new TreeMap<>();
-                       req.getRequestHeaders().getAll().stream().filter(x -> 
x.getName().startsWith("Foo-")).forEach(x -> m.put(x.getName(), x.getValue()));
+                       req.getHeaders().getAll().stream().filter(x -> 
x.getName().startsWith("Foo-")).forEach(x -> m.put(x.getName(), x.getValue()));
                        return m;
                }
        }
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
index 092cbb0..d0fbacb 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
@@ -41,7 +41,7 @@ public class RestClient_Config_BeanContext_Test {
                }
                @RestGet
                public String[] checkHeader(org.apache.juneau.rest.RestRequest 
req) {
-                       return 
req.getRequestHeaders().getAll(req.getStringHeader("Check").orElse(null)).stream().map(x
 -> x.getValue()).toArray(String[]::new);
+                       return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
                }
                @RestGet
                public Reader checkQuery(org.apache.juneau.rest.RestRequest 
req) {
@@ -90,7 +90,7 @@ public class RestClient_Config_BeanContext_Test {
        public static class A2b extends BasicRestObject {
                @RestPost
                public Reader test(org.apache.juneau.rest.RestRequest 
req,org.apache.juneau.rest.RestResponse res) throws IOException {
-                       
res.setHeader("X",req.getRequestHeaders().getString("X").orElse(null));
+                       res.setHeader("X",req.getHeader("X").orElse(null));
                        return req.getBody().getReader();
                }
        }
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
index 3050f5a..de85c28 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
@@ -36,7 +36,7 @@ public class RestClient_Config_OpenApi_Test {
                }
                @RestGet
                public String[] checkHeader(org.apache.juneau.rest.RestRequest 
req) {
-                       return 
req.getRequestHeaders().getAll(req.getStringHeader("Check").orElse(null)).stream().map(x
 -> x.getValue()).toArray(String[]::new);
+                       return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
                }
                @RestGet
                public Reader checkQuery(org.apache.juneau.rest.RestRequest 
req) {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
index 92653e3..1e05bbb 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
@@ -86,7 +86,7 @@ public class RestClient_Config_RestClient_Test {
                }
                @RestOp(path="/checkHeader")
                public String[] getHeader(org.apache.juneau.rest.RestRequest 
req) {
-                       return 
req.getRequestHeaders().getAll(req.getStringHeader("Check").orElse(null)).stream().map(x
 -> x.getValue()).toArray(String[]::new);
+                       return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
                }
        }
 
@@ -446,7 +446,7 @@ public class RestClient_Config_RestClient_Test {
                @RestGet(path="/")
                public Ok get(@Header(name="Foo",multi=true) ABean[] 
foo,org.apache.juneau.rest.RestRequest req,org.apache.juneau.rest.RestResponse 
res) throws Exception {
                        assertEquals(2,foo.length);
-                       
assertObject(req.getRequestHeaders().getAll("Foo").stream().map(RequestHeader::getValue).collect(Collectors.toList())).asJson().is("['x{f:1}','x{f:1}']");
+                       
assertObject(req.getHeaders().getAll("Foo").stream().map(RequestHeader::getValue).collect(Collectors.toList())).asJson().is("['x{f:1}','x{f:1}']");
                        assertEquals("{f:1}",foo[0].toString());
                        assertEquals("{f:1}",foo[1].toString());
                        res.header("Foo",bean);
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 08b3fc8..e23209d 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
@@ -58,7 +58,7 @@ public class RestClient_Headers_Test {
        public static class A extends BasicRestObject {
                @RestGet
                public String[] headers(org.apache.juneau.rest.RestRequest req) 
{
-                       return 
req.getRequestHeaders().getAll(req.getStringHeader("Check").get()).stream().map(x
 -> x.getValue()).toArray(String[]::new);
+                       return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
                }
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
index 57892dc..1da8a77 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
@@ -36,8 +36,8 @@ public class RestClient_Response_Headers_Test {
        public static class A extends BasicRestObject {
                @RestGet
                public String echo(org.apache.juneau.rest.RestRequest req, 
org.apache.juneau.rest.RestResponse res) {
-                       String c = req.getStringHeader("Check").get();
-                       String[] h = 
req.getRequestHeaders().getAll(c).stream().map(x -> 
x.getValue()).toArray(String[]::new);
+                       String c = req.getHeader("Check").orElse(null);
+                       String[] h = req.getHeaders().getAll(c).stream().map(x 
-> x.getValue()).toArray(String[]::new);
                        if (h != null)
                                for (String hh : h)
                                        res.addHeader(c, hh);
@@ -52,8 +52,8 @@ public class RestClient_Response_Headers_Test {
 
        @Test
        public void a01_exists() throws Exception {
-               
assertFalse(checkFooClient().build().get("/echo").run().getResponseHeader("Foo").exists());
-               
assertTrue(checkFooClient().build().get("/echo").header("Foo","bar").run().getResponseHeader("Foo").exists());
+               
assertFalse(checkFooClient().build().get("/echo").run().getResponseHeader("Foo").isPresent());
+               
assertTrue(checkFooClient().build().get("/echo").header("Foo","bar").run().getResponseHeader("Foo").isPresent());
        }
 
        public static class A2 extends BasicHeader {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
index 3b43a3c..ca3bad3 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
@@ -149,8 +149,8 @@ public class RestClient_Response_Test {
        public static class C extends BasicRestObject {
                @RestGet(path="/")
                public String getHeader(org.apache.juneau.rest.RestRequest req, 
org.apache.juneau.rest.RestResponse res) {
-                       String n = req.getStringHeader("Check").get();
-                       String v = 
req.getRequestHeaders().getString(n).orElse(null);
+                       String n = req.getHeader("Check").orElse(null);
+                       String v = req.getHeader(n).orElse(null);
                        res.setHeader(n,v);
                        return v;
                }
@@ -195,9 +195,9 @@ public class RestClient_Response_Test {
                assertEquals(3, r.getHeaders("Foo").length);
                assertEquals(0, r.getHeaders("Bar").length);
                r.getFirstHeader("Foo").assertValue().is("bar");
-               assertFalse(r.getFirstHeader("Bar").exists());
+               assertFalse(r.getFirstHeader("Bar").isPresent());
                r.getLastHeader("Foo").assertValue().is("qux");
-               assertFalse(r.getLastHeader("Bar").exists());
+               assertFalse(r.getLastHeader("Bar").isPresent());
 
                r.setHeaders(new Header[]{BasicHeader.of("Foo", "quux")});
                r.getFirstHeader("Foo").assertValue().is("quux");
@@ -214,7 +214,7 @@ public class RestClient_Response_Test {
                assertEquals("quux", i.nextHeader().getValue());
 
                r.removeHeader(BasicHeader.of("Foo","quux"));
-               assertFalse(r.getFirstHeader("Foo").exists());
+               assertFalse(r.getFirstHeader("Foo").isPresent());
 
                r.setHeader(BasicHeader.of("Foo","quuux"));
                r.getResponseHeader("Foo").assertValue().is("quuux");

Reply via email to