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 <james.bog...@salesforce.com> 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>