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 25fb6b6 Context API refactoring.
25fb6b6 is described below
commit 25fb6b69627cec51d7012ede603da055be4b8056
Author: JamesBognar <[email protected]>
AuthorDate: Mon Sep 13 20:40:35 2021 -0400
Context API refactoring.
---
.../java/org/apache/juneau/rest/RestContext.java | 33 ++++++++++------------
.../org/apache/juneau/rest/RestContextBuilder.java | 18 ++++++++++++
2 files changed, 33 insertions(+), 18 deletions(-)
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 0704889..152731c 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -298,27 +298,24 @@ public class RestContext extends Context {
restChildren = builder.restChildren(this).build();
Object r = resource.get();
+ swaggerProvider = createSwaggerProvider(r, builder, bs,
fileFinder, messages, varResolver);
List<RestOpContext> opContexts =
restOperations.getOpContexts();
- if (builder.produces != null)
- produces = AList.unmodifiable(builder.produces);
- else {
- Set<MediaType> s = opContexts.isEmpty() ?
emptySet() : new
LinkedHashSet<>(opContexts.get(0).getSerializers().getSupportedMediaTypes());
- opContexts.forEach(x ->
s.retainAll(x.getSerializers().getSupportedMediaTypes()));
- produces = AList.unmodifiable(s);
- }
-
- if (builder.consumes != null)
- consumes = AList.unmodifiable(builder.consumes);
- else {
- Set<MediaType> s = opContexts.isEmpty() ?
emptySet() : new
LinkedHashSet<>(opContexts.get(0).getParsers().getSupportedMediaTypes());
- opContexts.forEach(x ->
s.retainAll(x.getParsers().getSupportedMediaTypes()));
- consumes = AList.unmodifiable(s);
- }
-
-
- swaggerProvider = createSwaggerProvider(r, builder, bs,
fileFinder, messages, varResolver);
+ produces = builder.produces().orElseGet(
+ ()->{
+ Set<MediaType> s = opContexts.isEmpty()
? emptySet() : new
LinkedHashSet<>(opContexts.get(0).getSerializers().getSupportedMediaTypes());
+ opContexts.forEach(x ->
s.retainAll(x.getSerializers().getSupportedMediaTypes()));
+ return AList.unmodifiable(s);
+ }
+ );
+ consumes = builder.consumes().orElseGet(
+ ()->{
+ Set<MediaType> s = opContexts.isEmpty()
? emptySet() : new
LinkedHashSet<>(opContexts.get(0).getParsers().getSupportedMediaTypes());
+ opContexts.forEach(x ->
s.retainAll(x.getParsers().getSupportedMediaTypes()));
+ return AList.unmodifiable(s);
+ }
+ );
} catch (BasicHttpException e) {
_initException = e;
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index 6e92a9b..5969b2a 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -4532,6 +4532,15 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
}
/**
+ * Returns the media types produced by this resource if it's manually
specified.
+ *
+ * @return The media types.
+ */
+ public Optional<List<MediaType>> produces() {
+ return ofNullable(produces);
+ }
+
+ /**
* Supported content media types.
*
* <p>
@@ -4586,6 +4595,15 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
}
/**
+ * Returns the media types consumed by this resource if it's manually
specified.
+ *
+ * @return The media types.
+ */
+ public Optional<List<MediaType>> consumes() {
+ return ofNullable(consumes);
+ }
+
+ /**
* Swagger provider.
*
* <p>