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 13d5801 REST refactoring.
13d5801 is described below
commit 13d5801fe348ca7a61154f4c2892df9c50b3e368
Author: JamesBognar <[email protected]>
AuthorDate: Sat Feb 20 16:41:02 2021 -0500
REST refactoring.
---
.../java/org/apache/juneau/http/BasicHeader.java | 12 ++
.../java/org/apache/juneau/rest/RequestBody.java | 8 +-
.../org/apache/juneau/rest/RequestFormParams.java | 3 +-
.../java/org/apache/juneau/rest/RestRequest.java | 170 ++++++++++-----------
.../org/apache/juneau/rest/args/TimeZoneArg.java | 2 +-
5 files changed, 103 insertions(+), 92 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 7d73d03..1e159cd 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
@@ -242,6 +242,18 @@ public class BasicHeader implements Header, Cloneable,
Serializable {
}
/**
+ * Returns <jk>true</jk> if the value exists and is not empty.
+ *
+ * <p>
+ * This is a shortcut for calling
<c>!asString().orElse(<js>""</js>).isEmpty()</c>.
+ *
+ * @return <jk>true</jk> if the value exists and is not empty.
+ */
+ public boolean isNotEmpty() {
+ return ! asString().orElse("").isEmpty();
+ }
+
+ /**
* If a value is present, returns the value, otherwise throws {@link
NoSuchElementException}.
*
* <p>
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 91e4305..f83cf30 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
@@ -364,10 +364,10 @@ public class RequestBody {
private MediaType getMediaType() {
if (mediaType != null)
return mediaType;
- Optional<ContentType> ct = req.getContentType();
+ ContentType ct = req.getContentType();
if (!ct.isPresent() && body != null)
return MediaType.UON;
- return ct.isPresent() ? ct.get().asMediaType().orElse(null) :
null;
+ return ct.isNotEmpty() ? ct.asMediaType().orElse(null) : null;
}
/**
@@ -476,10 +476,10 @@ public class RequestBody {
if ((isEmpty(mt) || mt.toString().startsWith("text/plain")) &&
cm.hasStringMutater())
return cm.getStringMutater().mutate(asString());
- Optional<ContentType> ct = req.getContentType();
+ ContentType ct = req.getContentType();
throw new UnsupportedMediaType(
"Unsupported media-type in request header
''Content-Type'': ''{0}''\n\tSupported media-types: {1}",
- ct.isPresent() ? ct.get().asMediaType().orElse(null) :
"not-specified", req.getOpContext().getParsers().getSupportedMediaTypes()
+ ct.isPresent() ? ct.asMediaType().orElse(null) :
"not-specified", req.getOpContext().getParsers().getSupportedMediaTypes()
);
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
index 2874708..f8ada01 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
@@ -23,7 +23,6 @@ import javax.servlet.http.*;
import org.apache.http.*;
import org.apache.juneau.collections.*;
-import org.apache.juneau.http.header.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.internal.*;
import org.apache.juneau.rest.util.*;
@@ -49,7 +48,7 @@ public class RequestFormParams {
Collection<Part> c = null;
RequestBody body = req.getBody();
- if (body.isLoaded() || !
req.getContentType().orElse(ContentType.TEXT_PLAIN).equalsIgnoreCase("multipart/form-data"))
+ if (body.isLoaded() || !
req.getContentType().equalsIgnoreCase("multipart/form-data"))
m = RestUtils.parseQuery(body.getReader());
else {
c = req.getHttpServletRequest().getParts();
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 4a2251b..3fc81ec 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
@@ -498,10 +498,10 @@ public final class RestRequest {
* Accept: text/plain
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Accept> getAccept() {
- return
ofNullable(Accept.of(headers.getString("Accept").orElse(null)));
+ public Accept getAccept() {
+ return headers.get("Accept").asHeader(Accept.class);
}
/**
@@ -515,10 +515,10 @@ public final class RestRequest {
* Accept-Charset: utf-8
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<AcceptCharset> getAcceptCharset() {
- return
ofNullable(AcceptCharset.of(headers.getString("Accept-Charset").orElse(null)));
+ public AcceptCharset getAcceptCharset() {
+ return
headers.get("Accept-Charset").asHeader(AcceptCharset.class);
}
/**
@@ -532,10 +532,10 @@ public final class RestRequest {
* Accept-Encoding: gzip, deflate
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<AcceptEncoding> getAcceptEncoding() {
- return
ofNullable(AcceptEncoding.of(headers.getString("Accept-Encoding").orElse(null)));
+ public AcceptEncoding getAcceptEncoding() {
+ return
headers.get("Accept-Encoding").asHeader(AcceptEncoding.class);
}
/**
@@ -549,10 +549,10 @@ public final class RestRequest {
* Accept-Language: en-US
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<AcceptLanguage> getAcceptLanguage() {
- return
ofNullable(AcceptLanguage.of(headers.getString("Accept-Language").orElse(null)));
+ public AcceptLanguage getAcceptLanguage() {
+ return
headers.get("Accept-Language").asHeader(AcceptLanguage.class);
}
/**
@@ -566,10 +566,10 @@ public final class RestRequest {
* Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Authorization> getAuthorization() {
- return
ofNullable(Authorization.of(headers.getString("Authorization").orElse(null)));
+ public Authorization getAuthorization() {
+ return
headers.get("Authorization").asHeader(Authorization.class);
}
/**
@@ -583,10 +583,10 @@ public final class RestRequest {
* Cache-Control: no-cache
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<CacheControl> getCacheControl() {
- return
ofNullable(CacheControl.of(headers.getString("Cache-Control").orElse(null)));
+ public CacheControl getCacheControl() {
+ return
headers.get("Cache-Control").asHeader(CacheControl.class);
}
/**
@@ -601,10 +601,10 @@ public final class RestRequest {
* Connection: Upgrade
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Connection> getConnection() {
- return
ofNullable(Connection.of(headers.getString("Connection").orElse(null)));
+ public Connection getConnection() {
+ return headers.get("Connection").asHeader(Connection.class);
}
/**
@@ -618,10 +618,10 @@ public final class RestRequest {
* Content-Length: 348
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<ContentLength> getContentLength() {
- return
ofNullable(ContentLength.of(headers.getString("Content-Length").orElse(null)));
+ public ContentLength getContentLength() {
+ return
headers.get("Content-Length").asHeader(ContentLength.class);
}
/**
@@ -635,10 +635,10 @@ public final class RestRequest {
* Content-Type: application/x-www-form-urlencoded
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<ContentType> getContentType() {
- return
ofNullable(ContentType.of(headers.getString("Content-Type").orElse(null)));
+ public ContentType getContentType() {
+ return headers.get("Content-Type").asHeader(ContentType.class);
}
/**
@@ -652,10 +652,10 @@ public final class RestRequest {
* Date: Tue, 15 Nov 1994 08:12:31 GMT
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Date> getDate() {
- return
ofNullable(Date.of(headers.getString("Date").orElse(null)));
+ public Date getDate() {
+ return headers.get("Date").asHeader(Date.class);
}
/**
@@ -669,10 +669,10 @@ public final class RestRequest {
* Expect: 100-continue
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Expect> getExpect() {
- return
ofNullable(Expect.of(headers.getString("Expect").orElse(null)));
+ public Expect getExpect() {
+ return headers.get("Expect").asHeader(Expect.class);
}
/**
@@ -686,10 +686,10 @@ public final class RestRequest {
* From: [email protected]
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<From> getFrom() {
- return
ofNullable(From.of(headers.getString("From").orElse(null)));
+ public From getFrom() {
+ return headers.get("From").asHeader(From.class);
}
/**
@@ -705,10 +705,10 @@ public final class RestRequest {
* Host: en.wikipedia.org
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Host> getHost() {
- return
ofNullable(Host.of(headers.getString("Host").orElse(null)));
+ public Host getHost() {
+ return headers.get("Host").asHeader(Host.class);
}
/**
@@ -724,10 +724,10 @@ public final class RestRequest {
* If-Match: "737060cd8c284d8af7ad3082f209582d"
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<IfMatch> getIfMatch() {
- return
ofNullable(IfMatch.of(headers.getString("If-Match").orElse(null)));
+ public IfMatch getIfMatch() {
+ return headers.get("If-Match").asHeader(IfMatch.class);
}
/**
@@ -741,10 +741,10 @@ public final class RestRequest {
* If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<IfModifiedSince> getIfModifiedSince() {
- return
ofNullable(IfModifiedSince.of(headers.getString("If-Modified-Since").orElse(null)));
+ public IfModifiedSince getIfModifiedSince() {
+ return
headers.get("If-Modified-Since").asHeader(IfModifiedSince.class);
}
/**
@@ -758,10 +758,10 @@ public final class RestRequest {
* If-None-Match: "737060cd8c284d8af7ad3082f209582d"
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<IfNoneMatch> getIfNoneMatch() {
- return
ofNullable(IfNoneMatch.of(headers.getString("If-None-Match").orElse(null)));
+ public IfNoneMatch getIfNoneMatch() {
+ return headers.get("If-None-Match").asHeader(IfNoneMatch.class);
}
/**
@@ -775,10 +775,10 @@ public final class RestRequest {
* If-Range: "737060cd8c284d8af7ad3082f209582d"
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<IfRange> getIfRange() {
- return
ofNullable(IfRange.of(headers.getString("If-Range").orElse(null)));
+ public IfRange getIfRange() {
+ return headers.get("If-Range").asHeader(IfRange.class);
}
/**
@@ -792,10 +792,10 @@ public final class RestRequest {
* If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<IfUnmodifiedSince> getIfUnmodifiedSince() {
- return
ofNullable(IfUnmodifiedSince.of(headers.getString("If-Unmodified-Since").orElse(null)));
+ public IfUnmodifiedSince getIfUnmodifiedSince() {
+ return
headers.get("If-Unmodified-Since").asHeader(IfUnmodifiedSince.class);
}
/**
@@ -809,10 +809,10 @@ public final class RestRequest {
* Max-Forwards: 10
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<MaxForwards> getMaxForwards() {
- return
ofNullable(MaxForwards.of(headers.getString("Max-Forwards").orElse(null)));
+ public MaxForwards getMaxForwards() {
+ return headers.get("Max-Forwards").asHeader(MaxForwards.class);
}
/**
@@ -826,10 +826,10 @@ public final class RestRequest {
* Pragma: no-cache
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Pragma> getPragma() {
- return
ofNullable(Pragma.of(headers.getString("Pragma").orElse(null)));
+ public Pragma getPragma() {
+ return headers.get("Pragma").asHeader(Pragma.class);
}
/**
@@ -843,10 +843,10 @@ public final class RestRequest {
* Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<ProxyAuthorization> getProxyAuthorization() {
- return
ofNullable(ProxyAuthorization.of(headers.getString("Proxy-Authorization").orElse(null)));
+ public ProxyAuthorization getProxyAuthorization() {
+ return
headers.get("Proxy-Authorization").asHeader(ProxyAuthorization.class);
}
/**
@@ -860,10 +860,10 @@ public final class RestRequest {
* Range: bytes=500-999
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Range> getRange() {
- return
ofNullable(Range.of(headers.getString("Range").orElse(null)));
+ public Range getRange() {
+ return headers.get("Range").asHeader(Range.class);
}
/**
@@ -877,10 +877,10 @@ public final class RestRequest {
* Referer: http://en.wikipedia.org/wiki/Main_Page
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Referer> getReferer() {
- return
ofNullable(Referer.of(headers.getString("Referer").orElse(null)));
+ public Referer getReferer() {
+ return headers.get("Referer").asHeader(Referer.class);
}
/**
@@ -896,10 +896,10 @@ public final class RestRequest {
* TE: trailers, deflate
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<TE> getTE() {
- return ofNullable(TE.of(headers.getString("TE").orElse(null)));
+ public TE getTE() {
+ return headers.get("TE").asHeader(TE.class);
}
/**
@@ -908,7 +908,7 @@ public final class RestRequest {
* <p>
* Example: <js>"GMT"</js>.
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
public Optional<TimeZone> getTimeZone() {
String tz = headers.getString("Time-Zone").orElse(null);
@@ -928,10 +928,10 @@ public final class RestRequest {
* User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0)
Gecko/20100101 Firefox/21.0
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<UserAgent> getUserAgent() {
- return
ofNullable(UserAgent.of(headers.getString("User-Agent").orElse(null)));
+ public UserAgent getUserAgent() {
+ return headers.get("Upgrade").asHeader(UserAgent.class);
}
/**
@@ -945,10 +945,10 @@ public final class RestRequest {
* Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Upgrade> getUpgrade() {
- return
ofNullable(Upgrade.of(headers.getString("Upgrade").orElse(null)));
+ public Upgrade getUpgrade() {
+ return headers.get("Upgrade").asHeader(Upgrade.class);
}
/**
@@ -962,10 +962,10 @@ public final class RestRequest {
* Via: 1.0 fred, 1.1 example.com (Apache/1.1)
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Via> getVia() {
- return
ofNullable(Via.of(headers.getString("Via").orElse(null)));
+ public Via getVia() {
+ return headers.get("Via").asHeader(Via.class);
}
/**
@@ -979,10 +979,10 @@ public final class RestRequest {
* Warning: 199 Miscellaneous warning
* </p>
*
- * @return The parsed header on the request, or {@link
Optional#empty()} if not present.
+ * @return The parsed header on the request, never <jk>null</jk>.
*/
- public Optional<Warning> getWarning() {
- return
ofNullable(Warning.of(headers.getString("Warning").orElse(null)));
+ public Warning getWarning() {
+ return headers.get("Warning").asHeader(Warning.class);
}
//-----------------------------------------------------------------------------------------------------------------
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 2fb91bf..dc0d0eb 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
@@ -42,6 +42,6 @@ public class TimeZoneArg extends SimpleRestOperationArg {
* Constructor.
*/
protected TimeZoneArg() {
- super((c)->c.getRestRequest().getTimeZone());
+ super((c)->c.getRestRequest().getTimeZone().orElse(null));
}
}