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<T>)} <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");