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>

Reply via email to