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());