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 47915f2  Context API refactoring.
47915f2 is described below

commit 47915f2b06a3bdbf88db798438a4f5f591314ad9
Author: JamesBognar <[email protected]>
AuthorDate: Sun Sep 19 16:04:25 2021 -0400

    Context API refactoring.
---
 .../juneau/rest/BasicSwaggerProviderSession.java   |   2 +-
 .../java/org/apache/juneau/rest/RestContext.java   |  11 +
 .../org/apache/juneau/rest/RestContextBuilder.java |  81 +++++
 .../java/org/apache/juneau/rest/RestOpContext.java |  33 +-
 .../apache/juneau/rest/RestOpContextBuilder.java   | 379 +++------------------
 .../java/org/apache/juneau/rest/RestRequest.java   |   2 +-
 .../org/apache/juneau/rest/RrpcRestOpContext.java  |   2 +-
 7 files changed, 174 insertions(+), 336 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicSwaggerProviderSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicSwaggerProviderSession.java
index 2ec8f3c..95e74d8 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicSwaggerProviderSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicSwaggerProviderSession.java
@@ -210,7 +210,7 @@ public class BasicSwaggerProviderSession {
                // Iterate through all the @RestOp methods.
                for (RestOpContext sm : context.getOpContexts()) {
 
-                       BeanSession bs = sm.createBeanSession();
+                       BeanSession bs = 
sm.getBeanContext().createBeanSession();
 
                        Method m = sm.getJavaMethod();
                        MethodInfo mi = MethodInfo.of(m);
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 7b5f67b..a9583ad 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
@@ -165,6 +165,7 @@ public class RestContext extends Context {
        private final Set<String> allowedMethodParams, allowedHeaderParams, 
allowedMethodHeaders;
 
        private final Class<? extends RestOpArg>[] restOpArgs, hookMethodArgs;
+       private final BeanContext beanContext;
        private final HttpPartSerializer partSerializer;
        private final HttpPartParser partParser;
        private final JsonSchemaGenerator jsonSchemaGenerator;
@@ -271,6 +272,7 @@ public class RestContext extends Context {
                        uriResolution = builder.uriResolution;
                        uriRelativity = builder.uriRelativity;
 
+                       beanContext = bs.add(BeanContext.class, 
builder.beanContext().build());
                        logger = bs.add(Logger.class, builder.logger());
                        thrownStore = bs.add(ThrownStore.class, 
builder.thrownStore().build());
                        methodExecStore = bs.add(MethodExecStore.class, 
builder.methodExecStore().thrownStoreOnce(thrownStore).build());
@@ -363,6 +365,15 @@ public class RestContext extends Context {
        }
 
        /**
+        * Returns the bean context associated with this context.
+        *
+        * @return The bean store associated with this context.
+        */
+       public BeanContext getBeanContext() {
+               return beanContext;
+       }
+
+       /**
         * Returns the time statistics gatherer for the specified method.
         *
         * @param m The method to get statistics for.
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 390b11b..3f7b60e 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
@@ -148,6 +148,7 @@ public class RestContextBuilder extends ContextBuilder 
implements ServletConfig
        private RestOperations.Builder restOperations;
        private RestChildren.Builder restChildren;
        private SwaggerProvider.Builder swaggerProvider;
+       private BeanContextBuilder beanContext;
 
        String
                allowedHeaderParams = env("RestContext.allowedHeaderParams", 
"Accept,Content-Type"),
@@ -265,6 +266,7 @@ public class RestContextBuilder extends ContextBuilder 
implements ServletConfig
                VarResolverSession vrs = varResolver().build().createSession();
                AnnotationWorkList al = 
rci.getAnnotationList(ContextApplyFilter.INSTANCE).getWork(vrs);
                apply(al);
+               beanContext().apply(al);
                partSerializer().apply(al);
                partParser().apply(al);
                jsonSchemaGenerator().apply(al);
@@ -1475,6 +1477,85 @@ public class RestContextBuilder extends ContextBuilder 
implements ServletConfig
         *
         * @return The part serializer builder for this context.
         */
+       public final BeanContextBuilder beanContext() {
+               if (beanContext == null)
+                       beanContext = createBeanContext(beanStore(), 
resource());
+               return beanContext;
+       }
+
+       /**
+        * Instantiates the HTTP part serializer for this REST resource.
+        *
+        * <p>
+        * Instantiates based on the following logic:
+        * <ul>
+        *      <li>Returns the resource class itself is an instance of {@link 
HttpPartSerializer}.
+        *      <li>Looks for part serializer set via any of the following:
+        *              <ul>
+        *                      <li>{@link RestContextBuilder#partSerializer()}
+        *                      <li>{@link Rest#partSerializer()}.
+        *              </ul>
+        *      <li>Looks for a static or non-static 
<c>createPartSerializer()</> method that returns <c>{@link 
HttpPartSerializer}</c> on the
+        *              resource class with any of the following arguments:
+        *              <ul>
+        *                      <li>{@link RestContext}
+        *                      <li>{@link BeanStore}
+        *                      <li>Any {@doc RestInjection injected beans}.
+        *              </ul>
+        *      <li>Resolves it via the bean store registered in this context.
+        *      <li>Instantiates an {@link OpenApiSerializer}.
+        * </ul>
+        *
+        * @param beanStore
+        *      The factory used for creating beans and retrieving injected 
beans.
+        * @param resource
+        *      The REST servlet/bean instance that this context is defined 
against.
+        * @return The HTTP part serializer for this REST resource.
+        */
+       protected BeanContextBuilder createBeanContext(BeanStore beanStore, 
Supplier<?> resource) {
+
+               // Default value.
+               Value<BeanContextBuilder> v = Value.of(
+                       BeanContext.create()
+               );
+
+               // Replace with builder from bean store.
+               beanStore
+                       .getBean(BeanContextBuilder.class)
+                       .map(x -> x.copy())
+                       .ifPresent(x -> v.set(x));
+
+               // Replace with bean from bean store.
+               beanStore
+                       .getBean(BeanContext.class)
+                       .ifPresent(x -> v.get().impl(x));
+
+               // Replace with builder from:  public [static] 
BeanContextBuilder createBeanContext(<args>)
+               beanStore
+                       .beanCreateMethodFinder(BeanContextBuilder.class)
+                       .addBean(BeanContextBuilder.class, v.get())
+                       .find("createBeanContext")
+                       .run(x -> v.set(x));
+
+               // Replace with builder from:  public [static] BeanContext 
createBeanContext(<args>)
+               beanStore
+                       .beanCreateMethodFinder(BeanContext.class)
+                       .addBean(BeanContextBuilder.class, v.get())
+                       .find("createBeanContext")
+                       .run(x -> v.get().impl(x));
+
+               return v.get();
+       }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // partSerializer
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Returns the part serializer builder for this context.
+        *
+        * @return The part serializer builder for this context.
+        */
        public final HttpPartSerializer.Creator partSerializer() {
                if (partSerializer == null)
                        partSerializer = createPartSerializer(beanStore(), 
resource());
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index e260bc3..22df3a0 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest;
 
 import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.ObjectUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.internal.StringUtils.firstNonEmpty;
@@ -63,7 +64,7 @@ import org.apache.juneau.utils.*;
  * {@review}
  */
 @ConfigurableContext(nocache=true)
-public class RestOpContext extends BeanContext implements 
Comparable<RestOpContext>  {
+public class RestOpContext extends Context implements 
Comparable<RestOpContext>  {
 
        /** Represents a null value for the {@link RestOp#contextClass()} 
annotation.*/
        @SuppressWarnings("javadoc")
@@ -83,6 +84,7 @@ public class RestOpContext extends BeanContext implements 
Comparable<RestOpConte
        private final Method method;
        private final MethodInvoker methodInvoker;
        private final MethodInfo mi;
+       private final BeanContext beanContext;
        private final SerializerGroup serializers;
        private final ParserGroup parsers;
        private final EncoderGroup encoders;
@@ -124,7 +126,7 @@ public class RestOpContext extends BeanContext implements 
Comparable<RestOpConte
         * @throws ServletException If context could not be created.
         */
        public RestOpContext(RestOpContextBuilder builder) throws 
ServletException {
-               super(builder.getContextProperties());
+               super(builder);
 
                try {
                        context = builder.restContext;
@@ -145,6 +147,8 @@ public class RestOpContext extends BeanContext implements 
Comparable<RestOpConte
                                .addBean(AnnotationWorkList.class, 
builder.getApplied());
                        bs.addBean(BeanStore.class, bs);
 
+                       beanContext = bs.add(BeanContext.class, 
builder.getBeanContext().orElse(context.getBeanContext()));
+
                        serializers = createSerializers(r, builder, bs);
                        bs.addBean(SerializerGroup.class, serializers);
 
@@ -215,6 +219,15 @@ public class RestOpContext extends BeanContext implements 
Comparable<RestOpConte
        }
 
        /**
+        * Returns the bean context associated with this context.
+        *
+        * @return The bean context associated with this context.
+        */
+       public BeanContext getBeanContext() {
+               return beanContext;
+       }
+
+       /**
         * Instantiates the guards for this REST resource method.
         *
         * <p>
@@ -1228,6 +1241,21 @@ public class RestOpContext extends BeanContext 
implements Comparable<RestOpConte
        // Other methods
        
//-----------------------------------------------------------------------------------------------------------------
 
+       @Override /* Context */
+       public ContextBuilder copy() {
+               throw unsupportedOperationException("Method not implemented.");
+       }
+
+       @Override /* Context */
+       public Session createSession(SessionArgs args) {
+               throw unsupportedOperationException("Method not implemented.");
+       }
+
+       @Override /* Context */
+       public SessionArgs createDefaultSessionArgs() {
+               throw unsupportedOperationException("Method not implemented.");
+       }
+
        /*
         * compareTo() method is used to keep SimpleMethods ordered in the 
RestCallRouter list.
         * It maintains the order in which matches are made during requests.
@@ -1289,6 +1317,7 @@ public class RestOpContext extends BeanContext implements 
Comparable<RestOpConte
        public int hashCode() {
                return method.hashCode();
        }
+
        @Override /* Context */
        public OMap toMap() {
                return super.toMap()
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
index 788122b..bb81df2 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
@@ -15,6 +15,8 @@ package org.apache.juneau.rest;
 import static java.util.Arrays.*;
 import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.rest.HttpRuntimeException.*;
+import static java.util.Optional.*;
+
 import java.lang.annotation.*;
 import java.util.*;
 import java.util.function.*;
@@ -46,15 +48,17 @@ import java.nio.charset.*;
  * Builder class for {@link RestOpContext} objects.
  */
 @FluentSetters
-public class RestOpContextBuilder extends BeanContextBuilder {
+public class RestOpContextBuilder extends ContextBuilder {
 
        RestContext restContext;
+       RestContextBuilder parent;
        Method restMethod;
        String httpMethod, clientVersion;
        Enablement debug;
        List<String> path;
 
        private RestConverterList.Builder converters;
+       private BeanContextBuilder beanContext;
 
        PartList.Builder defaultFormData, defaultQueryData;
        NamedAttributeList defaultRequestAttributes;
@@ -101,6 +105,7 @@ public class RestOpContextBuilder extends 
BeanContextBuilder {
        RestOpContextBuilder(java.lang.reflect.Method method, RestContext 
context) {
 
                this.restContext = context;
+               this.parent = context.builder;
                this.restMethod = method;
                this.beanStore = BeanStore
                        .of(context.getRootBeanStore(), 
context.builder.resource().get())
@@ -123,6 +128,8 @@ public class RestOpContextBuilder extends 
BeanContextBuilder {
 
                        apply(al);
 
+                       if (context.builder.beanContext().canApply(al))
+                               beanContext().apply(al);
                        if (context.builder.serializers.canApply(al))
                                getSerializers().apply(al);
                        if (context.builder.parsers.canApply(al))
@@ -183,6 +190,46 @@ public class RestOpContextBuilder extends 
BeanContextBuilder {
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
+       // beanContext
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Returns the builder for the {@link BeanContext} object in the REST 
context.
+        *
+        * @return The builder for the {@link BeanContext} object in the REST 
context.
+        */
+       public final BeanContextBuilder beanContext() {
+               if (beanContext == null)
+                       beanContext = createBeanContext(beanStore(), parent, 
resource());
+               return beanContext;
+       }
+
+       /**
+        * Constructs the bean context builder for this REST method.
+        *
+        * @param beanStore
+        *      The factory used for creating beans and retrieving injected 
beans.
+        * @param parent
+        *      The builder for the REST resource class.
+        * @param resource
+        *      The REST servlet/bean instance that this context is defined 
against.
+        * @return The bean context builder for this REST resource.
+        */
+       protected BeanContextBuilder createBeanContext(BeanStore beanStore, 
RestContextBuilder parent, Supplier<?> resource) {
+
+               // Default value.
+               Value<BeanContextBuilder> v = Value.of(
+                       parent.beanContext().copy()
+               );
+
+               return v.get();
+       }
+
+       final Optional<BeanContext> getBeanContext() {
+               return beanContext == null ? empty() : 
of(beanContext().build());
+       }
+
+       
//-----------------------------------------------------------------------------------------------------------------
        // converters
        
//-----------------------------------------------------------------------------------------------------------------
 
@@ -1254,18 +1301,6 @@ public class RestOpContextBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public RestOpContextBuilder locale(Locale value) {
-               super.locale(value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public RestOpContextBuilder mediaType(MediaType value) {
-               super.mediaType(value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
        public RestOpContextBuilder prependTo(String name, Object value) {
                super.prependTo(name, value);
                return this;
@@ -1308,12 +1343,6 @@ public class RestOpContextBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public RestOpContextBuilder timeZone(TimeZone value) {
-               super.timeZone(value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
        public RestOpContextBuilder unset(String name) {
                super.unset(name);
                return this;
@@ -1325,317 +1354,5 @@ public class RestOpContextBuilder extends 
BeanContextBuilder {
                return this;
        }
 
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanClassVisibility(Visibility value) {
-               super.beanClassVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanConstructorVisibility(Visibility value) 
{
-               super.beanConstructorVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanFieldVisibility(Visibility value) {
-               super.beanFieldVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
-               super.beanInterceptor(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanMapPutReturnsOldValue() {
-               super.beanMapPutReturnsOldValue();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanMethodVisibility(Visibility value) {
-               super.beanMethodVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanProperties(Map<String,Object> values) {
-               super.beanProperties(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanProperties(Class<?> beanClass, String 
properties) {
-               super.beanProperties(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanProperties(String beanClassName, String 
properties) {
-               super.beanProperties(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesExcludes(Map<String,Object> 
values) {
-               super.beanPropertiesExcludes(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesExcludes(Class<?> beanClass, 
String properties) {
-               super.beanPropertiesExcludes(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesExcludes(String 
beanClassName, String properties) {
-               super.beanPropertiesExcludes(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesReadOnly(Map<String,Object> 
values) {
-               super.beanPropertiesReadOnly(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesReadOnly(Class<?> beanClass, 
String properties) {
-               super.beanPropertiesReadOnly(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesReadOnly(String 
beanClassName, String properties) {
-               super.beanPropertiesReadOnly(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesWriteOnly(Map<String,Object> 
values) {
-               super.beanPropertiesWriteOnly(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesWriteOnly(Class<?> beanClass, 
String properties) {
-               super.beanPropertiesWriteOnly(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beanPropertiesWriteOnly(String 
beanClassName, String properties) {
-               super.beanPropertiesWriteOnly(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beansRequireDefaultConstructor() {
-               super.beansRequireDefaultConstructor();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beansRequireSerializable() {
-               super.beansRequireSerializable();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder beansRequireSettersForGetters() {
-               super.beansRequireSettersForGetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder dictionary(Object...values) {
-               super.dictionary(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder dictionaryOn(Class<?> on, 
java.lang.Class<?>...values) {
-               super.dictionaryOn(on, values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder disableBeansRequireSomeProperties() {
-               super.disableBeansRequireSomeProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder disableIgnoreMissingSetters() {
-               super.disableIgnoreMissingSetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder disableIgnoreTransientFields() {
-               super.disableIgnoreTransientFields();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder disableIgnoreUnknownNullBeanProperties() {
-               super.disableIgnoreUnknownNullBeanProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder disableInterfaceProxies() {
-               super.disableInterfaceProxies();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public <T> RestOpContextBuilder example(Class<T> pojoClass, T o) {
-               super.example(pojoClass, o);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public <T> RestOpContextBuilder example(Class<T> pojoClass, String 
json) {
-               super.example(pojoClass, json);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder findFluentSetters() {
-               super.findFluentSetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder findFluentSetters(Class<?> on) {
-               super.findFluentSetters(on);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder ignoreInvocationExceptionsOnGetters() {
-               super.ignoreInvocationExceptionsOnGetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder ignoreInvocationExceptionsOnSetters() {
-               super.ignoreInvocationExceptionsOnSetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder ignoreUnknownBeanProperties() {
-               super.ignoreUnknownBeanProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder implClass(Class<?> interfaceClass, Class<?> 
implClass) {
-               super.implClass(interfaceClass, implClass);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder implClasses(Map<Class<?>,Class<?>> values) {
-               super.implClasses(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder interfaceClass(Class<?> on, Class<?> value) 
{
-               super.interfaceClass(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder interfaces(java.lang.Class<?>...value) {
-               super.interfaces(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder notBeanClasses(Object...values) {
-               super.notBeanClasses(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder notBeanPackages(Object...values) {
-               super.notBeanPackages(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
-               super.propertyNamer(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder propertyNamer(Class<?> on, Class<? extends 
org.apache.juneau.PropertyNamer> value) {
-               super.propertyNamer(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder sortProperties() {
-               super.sortProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder sortProperties(java.lang.Class<?>...on) {
-               super.sortProperties(on);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder stopClass(Class<?> on, Class<?> value) {
-               super.stopClass(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder swaps(Object...values) {
-               super.swaps(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder typeName(Class<?> on, String value) {
-               super.typeName(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder typePropertyName(String value) {
-               super.typePropertyName(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder typePropertyName(Class<?> on, String value) 
{
-               super.typePropertyName(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder useEnumNames() {
-               super.useEnumNames();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestOpContextBuilder useJavaBeanIntrospector() {
-               super.useJavaBeanIntrospector();
-               return this;
-       }
-
        // </FluentSetters>
 }
\ No newline at end of file
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 ed3238a..63b9115 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
@@ -163,7 +163,7 @@ public final class RestRequest {
 
                pathParams = new RequestPathParams(call, this, true);
 
-               beanSession = opContext.createSession();
+               beanSession = opContext.getBeanContext().createSession();
 
                parserSessionArgs =
                        ParserSessionArgs
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpContext.java
index b4733da..6babc0a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpContext.java
@@ -41,7 +41,7 @@ public class RrpcRestOpContext extends RestOpContext {
        public RrpcRestOpContext(RestOpContextBuilder builder) throws 
ServletException {
                super(builder);
 
-               ClassMeta<?> interfaceClass = 
getClassMeta(getJavaMethod().getGenericReturnType());
+               ClassMeta<?> interfaceClass = 
getBeanContext().getClassMeta(getJavaMethod().getGenericReturnType());
                meta = new RrpcInterfaceMeta(interfaceClass.getInnerClass(), 
null);
                if (meta.getMethodsByPath().isEmpty())
                        throw new InternalServerError("Method {0} returns an 
interface {1} that doesn't define any remote methods.", 
getJavaMethod().getName(), interfaceClass.getFullName());

Reply via email to