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 58d872e Context API refactoring.
58d872e is described below
commit 58d872eec3980cd4b38c37b436ff56179144f19f
Author: JamesBognar <[email protected]>
AuthorDate: Tue Sep 14 11:41:37 2021 -0400
Context API refactoring.
---
.../main/java/org/apache/juneau/cp/BeanStore.java | 12 +-
.../main/java/org/apache/juneau/cp/Messages.java | 29 +-
.../org/apache/juneau/rest/RestContextBuilder.java | 871 ++++++++++++---------
.../juneau/rest/annotation/RestAnnotation.java | 2 +-
.../org/apache/juneau/rest/logging/RestLogger.java | 14 +-
5 files changed, 521 insertions(+), 407 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
index 79e24dd..0a032f3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
@@ -91,7 +91,7 @@ public class BeanStore {
*/
public static class Builder {
- Class<? extends BeanStore> implClass = BeanStore.class;
+ Class<? extends BeanStore> type = BeanStore.class;
BeanStore impl;
Object outer;
BeanStore parent;
@@ -108,7 +108,7 @@ public class BeanStore {
* @param copyFrom The bean store to copy from.
*/
protected Builder(BeanStore copyFrom) {
- implClass = copyFrom.getClass();
+ type = copyFrom.getClass();
outer = copyFrom.outer.orElse(null);
parent = copyFrom.parent.orElse(null);
readOnly = copyFrom.readOnly;
@@ -123,9 +123,9 @@ public class BeanStore {
try {
if (impl != null)
return impl;
- if (implClass == BeanStore.class)
+ if (type == BeanStore.class)
return new BeanStore(this);
- Class<? extends BeanStore> ic =
isConcrete(implClass) ? implClass : BeanStore.class;
+ Class<? extends BeanStore> ic =
isConcrete(type) ? type : BeanStore.class;
return new BeanStore().addBeans(Builder.class,
this).createBean(ic);
} catch (ExecutableException e) {
throw runtimeException(e);
@@ -139,8 +139,8 @@ public class BeanStore {
* @return This object.
*/
@FluentSetter
- public Builder implClass(Class<? extends BeanStore> value) {
- implClass = value;
+ public Builder type(Class<? extends BeanStore> value) {
+ type = value;
return this;
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
index 0224e1c..231cd13 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
@@ -155,11 +155,11 @@ public class Messages extends ResourceBundle {
public static class Builder {
Class<?> forClass;
- Locale locale = Locale.getDefault();
+ Locale locale;
Messages impl;
String name;
Messages parent;
- List<Tuple2<Class<?>,String>> locations = new ArrayList<>();
+ List<Tuple2<Class<?>,String>> locations;
private String[] baseNames =
{"{package}.{name}","{package}.i18n.{name}","{package}.nls.{name}","{package}.messages.{name}"};
@@ -171,6 +171,22 @@ public class Messages extends ResourceBundle {
protected Builder(Class<?> forClass) {
this.forClass = forClass;
this.name = forClass.getSimpleName();
+ locations = new ArrayList<>();
+ locale = Locale.getDefault();
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param copyFrom The builder being copied.
+ */
+ protected Builder(Builder copyFrom) {
+ forClass = copyFrom.forClass;
+ locale = copyFrom.locale;
+ impl = copyFrom.impl;
+ name = copyFrom.name;
+ parent = copyFrom.parent;
+ locations = new ArrayList<>(copyFrom.locations);
}
/**
@@ -318,6 +334,15 @@ public class Messages extends ResourceBundle {
}
return null;
}
+
+ /**
+ * Creates a copy of this builder.
+ *
+ * @return A copy of this builder.
+ */
+ public Builder copy() {
+ return new Builder(this);
+ }
}
//-----------------------------------------------------------------------------------------------------------------
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 33c07bb..2a6daab 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
@@ -14,7 +14,6 @@ package org.apache.juneau.rest;
import static org.apache.juneau.assertions.Assertions.*;
import static org.apache.juneau.http.HttpHeaders.*;
-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.*;
@@ -171,6 +170,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
Class<? extends RestOpContext> opContextClass = RestOpContext.class;
Class<? extends RestOperations> operationsClass = RestOperations.class;
+ // TODO
EncoderGroup.Builder encoders =
EncoderGroup.create().add(IdentityEncoder.INSTANCE);
SerializerGroup.Builder serializers = SerializerGroup.create();
ParserGroup.Builder parsers = ParserGroup.create();
@@ -468,8 +468,13 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected BeanStore.Builder createBeanStore(Class<?> resourceClass,
Supplier<?> resource) {
- // Create default builder.
- Value<BeanStore.Builder> v =
Value.of(BeanStore.create().parent(rootBeanStore()));
+ // Default value.
+ Value<BeanStore.Builder> v = Value.of(
+ BeanStore
+ .create()
+ .parent(rootBeanStore())
+ .outer(resource.get())
+ );
// Apply @Rest(beanStore).
ClassInfo.of(resourceClass)
@@ -478,17 +483,17 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
.map(x -> x.beanStore())
.filter(x -> x != BeanStore.Null.class)
.reduce((x1,x2)->x2)
- .ifPresent(x -> v.get().implClass(x));
+ .ifPresent(x -> v.get().type(x));
- // Replace with builder: public static BeanStore.Builder
createBeanStore()
+ // Replace with builder from: public [static]
BeanStore.Builder createBeanStore(<args>)
v.get().build()
- .beanCreateMethodFinder(BeanStore.Builder.class,
resource.get())
+ .beanCreateMethodFinder(BeanStore.Builder.class)
.find("createBeanStore")
.run(x -> v.set(x));
- // Replace with implementations: public static BeanStore
createBeanStore()
+ // Replace with bean from: public [static] BeanStore
createBeanStore(<args>)
v.get().build()
- .beanCreateMethodFinder(BeanStore.class, resource.get())
+ .beanCreateMethodFinder(BeanStore.class)
.find("createBeanStore")
.run(x -> v.get().impl(x));
@@ -565,42 +570,36 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected VarResolver.Builder createVarResolver(BeanStore beanStore,
Class<?> resourceClass) {
- Value<VarResolver.Builder> v = Value.empty();
+ // Default value.
+ Value<VarResolver.Builder> v = Value.of(
+ VarResolver
+ .create()
+ .defaultVars()
+ .vars(createVars(beanStore, resourceClass))
+ .vars(FileVar.class)
+ .bean(FileFinder.class,
FileFinder.create().cp(resourceClass,null,true).build())
+ );
- // Get builder from: public static VarResolver.Builder
createVarResolver()
+ // Replace with builder from bean store.
beanStore
- .beanCreateMethodFinder(VarResolver.Builder.class,
resourceClass)
- .find("createVarResolver")
- .run(x -> v.set(x));
-
- // Get builder from bean store.
- if (v.isEmpty()) {
- beanStore
- .getBean(VarResolver.Builder.class)
- .map(y -> y.copy())
- .ifPresent(x -> v.set(x));
- }
-
- // Create default builder.
- if (v.isEmpty()) {
- v.set(
- VarResolver
- .create()
- .defaultVars()
- .vars(createVars(beanStore,
resourceClass))
- .vars(FileVar.class)
- .bean(FileFinder.class,
FileFinder.create().cp(resourceClass,null,true).build())
- );
- }
+ .getBean(VarResolver.Builder.class)
+ .map(y -> y.copy())
+ .ifPresent(x -> v.set(x));
- // Get implementation from bean store.
+ // Replace with bean from bean store.
beanStore
.getBean(VarResolver.class)
.ifPresent(x -> v.get().impl(x));
- // Get implementation from: public static VarResolver
createVarResolver()
+ // Replace with builder from: public [static]
VarResolver.Builder createVarResolver(<args>)
beanStore
- .beanCreateMethodFinder(VarResolver.class,
resourceClass)
+ .beanCreateMethodFinder(VarResolver.Builder.class)
+ .find("createVarResolver")
+ .run(x -> v.set(x));
+
+ // Replace with bean from: public [static] VarResolver
createVarResolver(<args>)
+ beanStore
+ .beanCreateMethodFinder(VarResolver.class)
.addBean(VarResolver.Builder.class, v.get())
.find("createVarResolver")
.run(x -> v.get().impl(x));
@@ -630,42 +629,38 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected VarList createVars(BeanStore beanStore, Class<?>
resourceClass) {
- Value<VarList> v = Value.empty();
+ // Default value.
+ Value<VarList> v = Value.of(
+ VarList.of(
+ ConfigVar.class,
+ FileVar.class,
+ LocalizationVar.class,
+ RequestAttributeVar.class,
+ RequestFormDataVar.class,
+ RequestHeaderVar.class,
+ RequestPathVar.class,
+ RequestQueryVar.class,
+ RequestVar.class,
+ RequestSwaggerVar.class,
+ SerializedRequestAttrVar.class,
+ ServletInitParamVar.class,
+ SwaggerVar.class,
+ UrlVar.class,
+ UrlEncodeVar.class,
+ HtmlWidgetVar.class
+ )
+ .addDefault()
+ );
- // Get implementation from bean store.
+ // Replace with bean from bean store.
beanStore
.getBean(VarList.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- // Create default.
- if (v.isEmpty()) {
- v.set(
- VarList.of(
- ConfigVar.class,
- FileVar.class,
- LocalizationVar.class,
- RequestAttributeVar.class,
- RequestFormDataVar.class,
- RequestHeaderVar.class,
- RequestPathVar.class,
- RequestQueryVar.class,
- RequestVar.class,
- RequestSwaggerVar.class,
- SerializedRequestAttrVar.class,
- ServletInitParamVar.class,
- SwaggerVar.class,
- UrlVar.class,
- UrlEncodeVar.class,
- HtmlWidgetVar.class
- )
- .addDefault()
- );
- }
-
- // Get implementation from: public static VarList createVars()
+ // Replace with bean from: public [static] VarList
createVars(<args>)
beanStore
- .beanCreateMethodFinder(VarList.class, resourceClass)
+ .beanCreateMethodFinder(VarList.class)
.addBean(VarList.class, v.get())
.find("createVars")
.run(x -> v.set(x));
@@ -728,16 +723,6 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
Value<Config> v = Value.empty();
- // Get implementation from: public static Config createConfig()
- beanStore
- .beanCreateMethodFinder(Config.class, resourceClass)
- .find("createConfig")
- .run(x -> v.set(x));
-
- // Get implementation from bean store.
- if (v.isEmpty())
- beanStore.getBean(Config.class).ifPresent(x ->
v.set(x));
-
// Find our config file. It's the last non-empty
@RestResource(config).
VarResolver vr =
beanStore.getBean(VarResolver.class).orElseThrow(()->runtimeException("VarResolver
not found."));
String cf = ClassInfo
@@ -762,6 +747,18 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
v.set(cb.build());
}
+ // Replace with bean from bean store.
+ beanStore
+ .getBean(Config.class)
+ .ifPresent(x -> v.set(x));
+
+ // Replace with bean from: public [static] Config
createConfig(<args>)
+ beanStore
+ .beanCreateMethodFinder(Config.class)
+ .addBean(Config.class, v.get())
+ .find("createConfig")
+ .run(x -> v.set(x));
+
return v.get();
}
@@ -777,7 +774,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
public final Logger logger() {
if (logger == null)
- logger = createLogger(beanStore(), resource());
+ logger = createLogger(beanStore(), resourceClass);
return logger;
}
@@ -785,7 +782,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
* Sets the logger to use for the REST resource.
*
* <p>
- * If not specified, the logger used is created by {@link
#createLogger(BeanStore, Supplier)}.
+ * If not specified, the logger used is created by {@link
#createLogger(BeanStore, Class)}.
*
* @param value The logger to use for the REST resource.
* @return This object.
@@ -812,25 +809,26 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
* <li>Instantiates via
<c>Logger.<jsm>getLogger</jsm>(<jv>resource</jv>.getClass().getName())</c>.
* </ul>
*
- * @param resource
- * The REST servlet/bean instance that this context is defined
against.
+ * @param resourceClass
+ * The REST servlet/bean class that this context is defined
against.
* @param beanStore
* The factory used for creating beans and retrieving injected
beans.
* <br>Created by {@link RestContextBuilder#beanStore()}.
* @return The logger for this REST resource.
*/
- protected Logger createLogger(BeanStore beanStore, Supplier<?>
resource) {
+ protected Logger createLogger(BeanStore beanStore, Class<?>
resourceClass) {
- Value<Logger> v = Value.empty();
- Object r = resource.get();
+ // Default value.
+ Value<Logger> v = Value.of(
+ Logger.getLogger(resourceClass.getClass().getName())
+ );
+ // Replace with bean from bean store.
beanStore
.getBean(Logger.class)
.ifPresent(x -> v.set(x));
- if (v.isEmpty())
- v.set(Logger.getLogger(className(r)));
-
+ // Replace with bean from: public [static] Logger
createLogger(<args>)
beanStore
.beanCreateMethodFinder(Logger.class)
.addBean(Logger.class, v.get())
@@ -884,33 +882,38 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected ThrownStore.Builder createThrownStore(BeanStore beanStore,
Supplier<?> resource, RestContext parent) {
- Value<ThrownStore.Builder> v = Value.empty();
+ // Default value.
+ Value<ThrownStore.Builder> v = Value.of(
+ ThrownStore
+ .create()
+ .beanStore(beanStore)
+ .impl(parent == null ? null :
parent.getThrownStore())
+ );
+
+ // Specify the implementation class if its set as a default.
+ defaultClasses()
+ .get(ThrownStore.class)
+ .ifPresent(x -> v.get().implClass(x));
+ // Replace with builder from bean store.
beanStore
.getBean(ThrownStore.Builder.class)
.map(x -> x.copy())
.ifPresent(x->v.set(x));
+ // Replace with bean from bean store.
+ beanStore
+ .getBean(ThrownStore.class)
+ .ifPresent(x->v.get().impl(x));
+
+ // Replace with builder from: public [static]
ThrownStore.Builder createThrownStore(<args>)
beanStore
.beanCreateMethodFinder(ThrownStore.Builder.class)
.addBean(ThrownStore.Builder.class, v.get())
.find("createThrownStore")
.run(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- ThrownStore
- .create()
- .beanStore(beanStore)
- .impl(parent == null ? null :
parent.getThrownStore())
- );
- }
-
- // Specify the implementation class if its set as a default.
- defaultClasses()
- .get(ThrownStore.class)
- .ifPresent(x -> v.get().implClass(x));
-
+ // Replace with bean from: public [static] ThrownStore
createThrownStore(<args>)
beanStore
.beanCreateMethodFinder(ThrownStore.class)
.addBean(ThrownStore.Builder.class, v.get())
@@ -946,32 +949,37 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodExecStore.Builder createMethodExecStore(BeanStore
beanStore, Supplier<?> resource) {
- Value<MethodExecStore.Builder> v = Value.empty();
+ // Default value.
+ Value<MethodExecStore.Builder> v = Value.of(
+ MethodExecStore
+ .create()
+ .beanStore(beanStore)
+ );
+ // Specify the implementation class if its set as a default.
+ defaultClasses()
+ .get(MethodExecStore.class)
+ .ifPresent(x -> v.get().implClass(x));
+
+ // Replace with builder from bean store.
beanStore
.getBean(MethodExecStore.Builder.class)
.map(x -> x.copy())
.ifPresent(x->v.set(x));
+ // Replace with bean from bean store.
+ beanStore
+ .getBean(MethodExecStore.class)
+ .ifPresent(x->v.get().impl(x));
+
+ // Replace with builder from: public [static]
MethodExecStore.Builder createThrownStore(<args>)
beanStore
.beanCreateMethodFinder(MethodExecStore.Builder.class)
.addBean(MethodExecStore.Builder.class, v.get())
.find("createMethodExecStore")
.run(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- MethodExecStore
- .create()
- .beanStore(beanStore)
- );
- }
-
- // Specify the implementation class if its set as a default.
- defaultClasses()
- .get(MethodExecStore.class)
- .ifPresent(x -> v.get().implClass(x));
-
+ // Replace with bean from: public [static] MethodExecStore
createThrownStore(<args>)
beanStore
.beanCreateMethodFinder(MethodExecStore.class)
.addBean(MethodExecStore.Builder.class, v.get())
@@ -1080,20 +1088,30 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected Messages.Builder createMessages(BeanStore beanStore,
Supplier<?> resource) {
- Value<Messages.Builder> v = Value.empty();
+ // Default value.
+ Value<Messages.Builder> v = Value.of(
+ Messages
+ .create(resourceClass)
+ );
+ // Replace with builder from bean store.
+ beanStore
+ .getBean(Messages.Builder.class)
+ .map(x -> x.copy())
+ .ifPresent(x->v.set(x));
+
+ // Replace with bean from bean store.
+ beanStore
+ .getBean(Messages.class)
+ .ifPresent(x->v.get().impl(x));
+
+ // Replace with builder from: public [static] Messages.Builder
createMessages(<args>)
beanStore
.beanCreateMethodFinder(Messages.Builder.class)
.find("createMessages")
.run(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- Messages
- .create(resourceClass)
- );
- }
-
+ // Replace with bean from: public [static] Messages
createMessages(<args>)
beanStore
.beanCreateMethodFinder(Messages.class)
.addBean(Messages.Builder.class, v.get())
@@ -1229,42 +1247,43 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected ResponseProcessorList.Builder
createResponseProcessors(BeanStore beanStore, Supplier<?> resource) {
- Value<ResponseProcessorList.Builder> v = Value.empty();
+ // Default value.
+ Value<ResponseProcessorList.Builder> v = Value.of(
+ ResponseProcessorList
+ .create()
+ .beanStore(beanStore)
+ .add(
+ ReaderProcessor.class,
+ InputStreamProcessor.class,
+ ThrowableProcessor.class,
+ HttpResponseProcessor.class,
+ HttpResourceProcessor.class,
+ HttpEntityProcessor.class,
+ ResponseBeanProcessor.class,
+ PlainTextPojoProcessor.class,
+ SerializedPojoProcessor.class
+ )
+ );
+ // Replace with builder from bean store.
beanStore
.getBean(ResponseProcessorList.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- ResponseProcessorList
- .create()
- .beanStore(beanStore)
- .add(
- ReaderProcessor.class,
- InputStreamProcessor.class,
- ThrowableProcessor.class,
- HttpResponseProcessor.class,
- HttpResourceProcessor.class,
- HttpEntityProcessor.class,
- ResponseBeanProcessor.class,
- PlainTextPojoProcessor.class,
- SerializedPojoProcessor.class
- )
- );
- }
+ // Replace with bean from bean store.
+ beanStore
+ .getBean(ResponseProcessorList.class)
+ .ifPresent(x -> v.get().impl(x));
+ // Replace with builder from: public [static]
ResponseProcessorList.Builder createResponseProcessors(<args>)
beanStore
.beanCreateMethodFinder(ResponseProcessorList.Builder.class)
.addBean(ResponseProcessorList.Builder.class, v.get())
.find("createResponseProcessors")
.run(x -> v.set(x));
- beanStore
- .getBean(ResponseProcessorList.class)
- .ifPresent(x -> v.get().impl(x));
-
+ // Replace with bean from: public [static]
ResponseProcessorList createResponseProcessors(<args>)
beanStore
.beanCreateMethodFinder(ResponseProcessorList.class)
.addBean(ResponseProcessorList.Builder.class, v.get())
@@ -1382,60 +1401,62 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected RestLogger.Builder createCallLogger(BeanStore beanStore,
Supplier<?> resource) {
- Value<RestLogger.Builder> v = Value.empty();
+ // Default value.
+ Value<RestLogger.Builder> v = Value.of(
+ RestLogger
+ .create()
+ .beanStore(beanStore)
+ .normalRules( // Rules when debugging is not
enabled.
+ RestLoggerRule.create() // Log 500+
errors with status-line and header information.
+ .statusFilter(a -> a >= 500)
+ .level(SEVERE)
+ .requestDetail(HEADER)
+ .responseDetail(HEADER)
+ .build(),
+ RestLoggerRule.create() // Log 400-500
errors with just status-line information.
+ .statusFilter(a -> a >= 400)
+ .level(WARNING)
+ .requestDetail(STATUS_LINE)
+ .responseDetail(STATUS_LINE)
+ .build()
+ )
+ .debugRules( // Rules when debugging is
enabled.
+ RestLoggerRule.create() // Log
everything with full details.
+ .level(SEVERE)
+ .requestDetail(ENTITY)
+ .responseDetail(ENTITY)
+ .build()
+ )
+ );
+ // Replace with builder from bean store.
beanStore
.getBean(RestLogger.Builder.class)
.map(x -> x.copy())
.ifPresent(x-> v.set(x));
+ // Replace with bean from bean store.
beanStore
- .beanCreateMethodFinder(RestLogger.Builder.class)
- .addBean(RestLogger.Builder.class, v.get())
- .find("createCallLogger")
- .run(x -> v.set(x));
-
- if (v.isEmpty()) {
- v.set(
- RestLogger
- .create()
- .beanStore(beanStore)
- .normalRules( // Rules when debugging
is not enabled.
- RestLoggerRule.create() // Log
500+ errors with status-line and header information.
- .statusFilter(a -> a >=
500)
- .level(SEVERE)
- .requestDetail(HEADER)
- .responseDetail(HEADER)
- .build(),
- RestLoggerRule.create() // Log
400-500 errors with just status-line information.
- .statusFilter(a -> a >=
400)
- .level(WARNING)
-
.requestDetail(STATUS_LINE)
-
.responseDetail(STATUS_LINE)
- .build()
- )
- .debugRules( // Rules when debugging
is enabled.
- RestLoggerRule.create() // Log
everything with full details.
- .level(SEVERE)
- .requestDetail(ENTITY)
- .responseDetail(ENTITY)
- .build()
- )
- );
- }
+ .getBean(RestLogger.class)
+ .ifPresent(x-> v.get().impl(x));
+ // Replace with this bean.
resourceAs(RestLogger.class)
.ifPresent(x -> v.get().impl(x));
- beanStore
- .getBean(RestLogger.class)
- .ifPresent(x-> v.get().impl(x));
-
- // Specify the implementation class if its set as a default.
+ // Specify the bean type if its set as a default.
defaultClasses()
.get(RestLogger.class)
- .ifPresent(x -> v.get().implClass(x));
+ .ifPresent(x -> v.get().type(x));
+ // Replace with builder from: public [static]
RestLogger.Builder createCallLogger(<args>)
+ beanStore
+ .beanCreateMethodFinder(RestLogger.Builder.class)
+ .addBean(RestLogger.Builder.class, v.get())
+ .find("createCallLogger")
+ .run(x -> v.set(x));
+
+ // Replace with bean from: public [static] RestLogger
createCallLogger(<args>)
beanStore
.beanCreateMethodFinder(RestLogger.class)
.addBean(RestLogger.Builder.class, v.get())
@@ -1491,41 +1512,41 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected HttpPartSerializer.Creator createPartSerializer(BeanStore
beanStore, Supplier<?> resource) {
- Value<HttpPartSerializer.Creator> v = Value.empty();
+ // Default value.
+ Value<HttpPartSerializer.Creator> v = Value.of(
+ HttpPartSerializer
+ .creator()
+ .type(OpenApiSerializer.class)
+ );
- // Get builder from bean store.
+ // Replace with builder from bean store.
beanStore
.getBean(HttpPartSerializer.Creator.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- // Create default.
- if (v.isEmpty()) {
- v.set(
- HttpPartSerializer
- .creator()
- .type(OpenApiSerializer.class)
- );
- }
-
- // Set implementation if in bean store.
+ // Replace with bean from bean store.
beanStore
.getBean(HttpPartSerializer.class)
.ifPresent(x -> v.get().impl(x));
- // Set default type.
- defaultClasses
+ // Replace with this bean.
+ resourceAs(HttpPartSerializer.class)
+ .ifPresent(x -> v.get().impl(x));
+
+ // Specify the bean type if its set as a default.
+ defaultClasses()
.get(HttpPartSerializer.class)
.ifPresent(x -> v.get().type(x));
- // Call: public [static] HttpPartSerializer.Creator
createPartSerializer(<anything-in-bean-store>)
+ // Replace with builder from: public [static]
HttpPartSerializer.Creator createPartSerializer(<args>)
beanStore
.beanCreateMethodFinder(HttpPartSerializer.Creator.class)
.addBean(HttpPartSerializer.Creator.class, v.get())
.find("createPartSerializer")
.run(x -> v.set(x));
- // Call: public [static] HttpPartSerializer
createPartSerializer(<anything-in-bean-store>)
+ // Replace with bean from: public [static] HttpPartSerializer
createPartSerializer(<args>)
beanStore
.beanCreateMethodFinder(HttpPartSerializer.class)
.addBean(HttpPartSerializer.Creator.class, v.get())
@@ -1581,41 +1602,41 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected HttpPartParser.Creator createPartParser(BeanStore beanStore,
Supplier<?> resource) {
- Value<HttpPartParser.Creator> v = Value.empty();
+ // Default value.
+ Value<HttpPartParser.Creator> v = Value.of(
+ HttpPartParser
+ .creator()
+ .type(OpenApiParser.class)
+ );
- // Get builder from bean store.
+ // Replace with builder from bean store.
beanStore
.getBean(HttpPartParser.Creator.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- // Create default.
- if (v.isEmpty()) {
- v.set(
- HttpPartParser
- .creator()
- .type(OpenApiParser.class)
- );
- }
-
- // Set implementation if in bean store.
+ // Replace with bean from bean store.
beanStore
.getBean(HttpPartParser.class)
.ifPresent(x -> v.get().impl(x));
- // Set default type.
- defaultClasses
+ // Replace with this bean.
+ resourceAs(HttpPartParser.class)
+ .ifPresent(x -> v.get().impl(x));
+
+ // Specify the bean type if its set as a default.
+ defaultClasses()
.get(HttpPartParser.class)
.ifPresent(x -> v.get().type(x));
- // Call: public [static] HttpPartParser.Creator
createPartParser(<anything-in-bean-store>)
+ // Replace with builder from: public [static]
HttpPartParser.Creator createPartParser(<args>)
beanStore
.beanCreateMethodFinder(HttpPartParser.Creator.class)
.addBean(HttpPartParser.Creator.class, v.get())
.find("createPartParser")
.run(x -> v.set(x));
- // Call: public [static] HttpPartParser
createPartParser(<anything-in-bean-store>)
+ // Replace with bean from: public [static] HttpPartParser
createPartParser(<args>)
beanStore
.beanCreateMethodFinder(HttpPartParser.class)
.addBean(HttpPartParser.Creator.class, v.get())
@@ -1665,29 +1686,30 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected JsonSchemaGeneratorBuilder
createJsonSchemaGenerator(BeanStore beanStore, Supplier<?> resource) {
- Value<JsonSchemaGeneratorBuilder> v = Value.empty();
+ // Default value.
+ Value<JsonSchemaGeneratorBuilder> v = Value.of(
+ JsonSchemaGenerator.create()
+ );
+ // Replace with builder from bean store.
beanStore
.getBean(JsonSchemaGeneratorBuilder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- JsonSchemaGenerator.create()
- );
- }
-
+ // Replace with bean from bean store.
beanStore
.getBean(JsonSchemaGenerator.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with builder from: public [static]
JsonSchemaGeneratorBuilder createJsonSchemaGenerator(<args>)
beanStore
.beanCreateMethodFinder(JsonSchemaGeneratorBuilder.class)
.addBean(JsonSchemaGeneratorBuilder.class, v.get())
.find("createJsonSchemaGenerator")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] JsonSchemaGenerator
createJsonSchemaGenerator(<args>)
beanStore
.beanCreateMethodFinder(JsonSchemaGenerator.class)
.addBean(JsonSchemaGeneratorBuilder.class, v.get())
@@ -1841,44 +1863,47 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected FileFinder.Builder createFileFinder(BeanStore beanStore,
Supplier<?> resource) {
- Value<FileFinder.Builder> v = Value.empty();
+ // Default value.
+ Value<FileFinder.Builder> v = Value.of(
+ FileFinder
+ .create()
+ .beanStore(beanStore)
+ .dir("static")
+ .dir("htdocs")
+ .cp(resourceClass, "htdocs", true)
+ .cp(resourceClass, "/htdocs", true)
+ .caching(1_000_000)
+ .exclude("(?i).*\\.(class|properties)")
+ );
+ // Replace with builder from bean store.
beanStore
.getBean(FileFinder.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- FileFinder
- .create()
- .beanStore(beanStore)
- .dir("static")
- .dir("htdocs")
- .cp(resourceClass, "htdocs", true)
- .cp(resourceClass, "/htdocs", true)
- .caching(1_000_000)
- .exclude("(?i).*\\.(class|properties)")
- );
- }
-
+ // Replace with bean from bean store.
beanStore
.getBean(FileFinder.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with this bean.
resourceAs(FileFinder.class)
.ifPresent(x -> v.get().impl(x));
- defaultClasses
+ // Specify the bean type if its set as a default.
+ defaultClasses()
.get(FileFinder.class)
.ifPresent(x -> v.get().type(x));
+ // Replace with builder from: public [static]
FileFinder.Builder createFileFinder(<args>)
beanStore
.beanCreateMethodFinder(FileFinder.Builder.class)
.addBean(FileFinder.Builder.class, v.get())
.find("createFileFinder")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] FileFinder
createFileFinder(<args>)
beanStore
.beanCreateMethodFinder(FileFinder.class)
.addBean(FileFinder.Builder.class, v.get())
@@ -2023,45 +2048,48 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected StaticFiles.Builder createStaticFiles(BeanStore beanStore,
Supplier<?> resource) {
- Value<StaticFiles.Builder> v = Value.empty();
+ // Default value.
+ Value<StaticFiles.Builder> v = Value.of(
+ StaticFiles
+ .create()
+ .beanStore(beanStore)
+ .dir("static")
+ .dir("htdocs")
+ .cp(resourceClass, "htdocs", true)
+ .cp(resourceClass, "/htdocs", true)
+ .caching(1_000_000)
+ .exclude("(?i).*\\.(class|properties)")
+ .headers(cacheControl("max-age=86400, public"))
+ );
+ // Replace with builder from bean store.
beanStore
.getBean(StaticFiles.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- StaticFiles
- .create()
- .beanStore(beanStore)
- .dir("static")
- .dir("htdocs")
- .cp(resourceClass, "htdocs", true)
- .cp(resourceClass, "/htdocs", true)
- .caching(1_000_000)
- .exclude("(?i).*\\.(class|properties)")
- .headers(cacheControl("max-age=86400,
public"))
- );
- }
-
+ // Replace with bean from bean store.
beanStore
.getBean(StaticFiles.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with this bean.
resourceAs(StaticFiles.class)
.ifPresent(x -> v.get().impl(x));
- defaultClasses
+ // Specify the bean type if its set as a default.
+ defaultClasses()
.get(StaticFiles.class)
.ifPresent(x -> v.get().type(x));
+ // Replace with builder from: public [static]
StaticFiles.Builder createStaticFiles(<args>)
beanStore
.beanCreateMethodFinder(StaticFiles.Builder.class)
.addBean(StaticFiles.Builder.class, v.get())
.find("createStaticFiles")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] StaticFiles
createStaticFiles(<args>)
beanStore
.beanCreateMethodFinder(StaticFiles.class)
.addBean(StaticFiles.Builder.class, v.get())
@@ -2188,26 +2216,30 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected HeaderList.Builder createDefaultRequestHeaders(BeanStore
beanStore, Supplier<?> resource) {
- Value<HeaderList.Builder> v = Value.empty();
+ // Default value.
+ Value<HeaderList.Builder> v = Value.of(
+ HeaderList.create()
+ );
+ // Replace with builder from bean store.
beanStore
.getBean("RestContext.defaultRequestHeaders",
HeaderList.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty())
- v.set(HeaderList.create());
-
+ // Replace with bean from bean store.
beanStore
.getBean("RestContext.defaultRequestHeaders",
HeaderList.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with builder from: public [static]
HeaderList.Builder createDefaultRequestHeaders(<args>)
beanStore
.beanCreateMethodFinder(HeaderList.Builder.class)
.addBean(HeaderList.Builder.class, v.get())
.find("createDefaultRequestHeaders")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] HeaderList
createDefaultRequestHeaders(<args>)
beanStore
.beanCreateMethodFinder(HeaderList.class)
.addBean(HeaderList.Builder.class, v.get())
@@ -2300,26 +2332,30 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected HeaderList.Builder createDefaultResponseHeaders(BeanStore
beanStore, Supplier<?> resource) {
- Value<HeaderList.Builder> v = Value.empty();
+ // Default value.
+ Value<HeaderList.Builder> v = Value.of(
+ HeaderList.create()
+ );
+ // Replace with builder from bean store.
beanStore
.getBean("RestContext.defaultResponseHeaders",
HeaderList.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty())
- v.set(HeaderList.create());
-
+ // Replace with bean from bean store.
beanStore
.getBean("RestContext.defaultResponseHeaders",
HeaderList.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with builder from: public [static]
HeaderList.Builder createDefaultResponseHeaders(<args>)
beanStore
.beanCreateMethodFinder(HeaderList.Builder.class)
.addBean(HeaderList.Builder.class, v.get())
.find("createDefaultResponseHeaders")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] HeaderList
createDefaultResponseHeaders(<args>)
beanStore
.beanCreateMethodFinder(HeaderList.class)
.addBean(HeaderList.Builder.class, v.get())
@@ -2409,16 +2445,18 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected NamedAttributeList createDefaultRequestAttributes(BeanStore
beanStore, Supplier<?> resource) {
- Value<NamedAttributeList> v = Value.empty();
+ // Default value.
+ Value<NamedAttributeList> v = Value.of(
+ NamedAttributeList.create()
+ );
+ // Replace with bean from bean store.
beanStore
.getBean("RestContext.defaultRequestAttributes",
NamedAttributeList.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty())
- v.set(NamedAttributeList.create());
-
+ // Replace with bean from: public [static] NamedAttributeList
createDefaultRequestAttributes(<args>)
beanStore
.beanCreateMethodFinder(NamedAttributeList.class)
.addBean(NamedAttributeList.class, v.get())
@@ -2542,72 +2580,73 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected RestOpArgList.Builder createRestOpArgs(BeanStore beanStore,
Supplier<?> resource) {
- Value<RestOpArgList.Builder> v = Value.empty();
+ // Default value.
+ Value<RestOpArgList.Builder> v = Value.of(
+ RestOpArgList
+ .of(
+ AttributeArg.class,
+ BodyArg.class,
+ ConfigArg.class,
+ FormDataArg.class,
+ HasFormDataArg.class,
+ HasQueryArg.class,
+ HeaderArg.class,
+ HttpServletRequestArg.class,
+ HttpServletResponseArg.class,
+ InputStreamArg.class,
+ InputStreamParserArg.class,
+ LocaleArg.class,
+ MessagesArg.class,
+ MethodArg.class,
+ OutputStreamArg.class,
+ ParserArg.class,
+ PathArg.class,
+ QueryArg.class,
+ ReaderArg.class,
+ ReaderParserArg.class,
+ RequestAttributesArg.class,
+ RequestBeanArg.class,
+ RequestBodyArg.class,
+ RequestFormDataArg.class,
+ RequestHeadersArg.class,
+ RequestPathArg.class,
+ RequestQueryArg.class,
+ ResourceBundleArg.class,
+ ResponseBeanArg.class,
+ ResponseHeaderArg.class,
+ ResponseStatusArg.class,
+ RestContextArg.class,
+ RestRequestArg.class,
+ ServetInputStreamArg.class,
+ ServletOutputStreamArg.class,
+ SwaggerArg.class,
+ TimeZoneArg.class,
+ UriContextArg.class,
+ UriResolverArg.class,
+ WriterArg.class,
+ DefaultArg.class
+ )
+ );
+ // Replace with builder from bean store.
beanStore
.getBean("RestContext.restOpArgs",
RestOpArgList.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- RestOpArgList
- .of(
- AttributeArg.class,
- BodyArg.class,
- ConfigArg.class,
- FormDataArg.class,
- HasFormDataArg.class,
- HasQueryArg.class,
- HeaderArg.class,
- HttpServletRequestArg.class,
- HttpServletResponseArg.class,
- InputStreamArg.class,
- InputStreamParserArg.class,
- LocaleArg.class,
- MessagesArg.class,
- MethodArg.class,
- OutputStreamArg.class,
- ParserArg.class,
- PathArg.class,
- QueryArg.class,
- ReaderArg.class,
- ReaderParserArg.class,
- RequestAttributesArg.class,
- RequestBeanArg.class,
- RequestBodyArg.class,
- RequestFormDataArg.class,
- RequestHeadersArg.class,
- RequestPathArg.class,
- RequestQueryArg.class,
- ResourceBundleArg.class,
- ResponseBeanArg.class,
- ResponseHeaderArg.class,
- ResponseStatusArg.class,
- RestContextArg.class,
- RestRequestArg.class,
- ServetInputStreamArg.class,
- ServletOutputStreamArg.class,
- SwaggerArg.class,
- TimeZoneArg.class,
- UriContextArg.class,
- UriResolverArg.class,
- WriterArg.class,
- DefaultArg.class
- )
- );
- }
-
+ // Replace with bean from bean store.
beanStore
.getBean("RestContext.restOpArgs", RestOpArgList.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with builder from: public [static]
RestOpArgList.Builder createRestOpArgs(<args>)
beanStore
.beanCreateMethodFinder(RestOpArgList.Builder.class)
.addBean(RestOpArgList.Builder.class, v.get())
.find("createRestOpArgs")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] RestOpArgList
createRestOpArgs(<args>)
beanStore
.beanCreateMethodFinder(RestOpArgList.class)
.addBean(RestOpArgList.Builder.class, v.get())
@@ -2643,49 +2682,50 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected RestOpArgList.Builder createHookMethodArgs(BeanStore
beanStore, Supplier<?> resource) {
- Value<RestOpArgList.Builder> v = Value.empty();
+ // Default value.
+ Value<RestOpArgList.Builder> v = Value.of(
+ RestOpArgList
+ .of(
+ ConfigArg.class,
+ HeaderArg.class,
+ HttpServletRequestArg.class,
+ HttpServletResponseArg.class,
+ InputStreamArg.class,
+ LocaleArg.class,
+ MessagesArg.class,
+ MethodArg.class,
+ OutputStreamArg.class,
+ ReaderArg.class,
+ ResourceBundleArg.class,
+ RestContextArg.class,
+ RestRequestArg.class,
+ ServetInputStreamArg.class,
+ ServletOutputStreamArg.class,
+ TimeZoneArg.class,
+ WriterArg.class,
+ DefaultArg.class
+ )
+ );
+ // Replace with builder from bean store.
beanStore
.getBean("RestContext.hookMethodArgs",
RestOpArgList.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty()) {
- v.set(
- RestOpArgList
- .of(
- ConfigArg.class,
- HeaderArg.class,
- HttpServletRequestArg.class,
- HttpServletResponseArg.class,
- InputStreamArg.class,
- LocaleArg.class,
- MessagesArg.class,
- MethodArg.class,
- OutputStreamArg.class,
- ReaderArg.class,
- ResourceBundleArg.class,
- RestContextArg.class,
- RestRequestArg.class,
- ServetInputStreamArg.class,
- ServletOutputStreamArg.class,
- TimeZoneArg.class,
- WriterArg.class,
- DefaultArg.class
- )
- );
- }
-
+ // Replace with bean from bean store.
beanStore
.getBean("RestContext.hookMethodArgs",
RestOpArgList.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with builder from: public [static]
RestOpArgList.Builder createHookMethodArgs(<args>)
beanStore
.beanCreateMethodFinder(RestOpArgList.Builder.class)
.addBean(RestOpArgList.Builder.class, v.get())
.find("createHookMethodArgs")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] RestOpArgList
createHookMethodArgs(<args>)
beanStore
.beanCreateMethodFinder(RestOpArgList.class)
.addBean(RestOpArgList.Builder.class, v.get())
@@ -2786,53 +2826,56 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected DebugEnablement.Builder createDebugEnablement(BeanStore
beanStore, Supplier<?> resource) {
- Value<DebugEnablement.Builder> v = Value.empty();
+ // Default value.
+ Value<DebugEnablement.Builder> v = Value.of(
+ DebugEnablement
+ .create()
+ .beanStore(beanStore)
+ );
+
+ // Default debug enablement if not overridden at class/method
level.
+ Enablement debugDefault = defaultSettings.get(Enablement.class,
"RestContext.debugDefault").orElse(isDebug() ? Enablement.ALWAYS :
Enablement.NEVER);
+ v.get().defaultEnable(debugDefault);
+
+ // Gather @RestOp(debug) settings.
+ for (MethodInfo mi :
ClassInfo.ofProxy(resource.get()).getPublicMethods()) {
+ mi
+ .getAnnotationGroupList(RestOp.class)
+ .getValues(String.class, "debug")
+ .stream()
+ .filter(y->!y.isEmpty())
+ .findFirst()
+ .ifPresent(x ->
v.get().enable(Enablement.fromString(x), mi.getFullName()));
+ }
+ // Replace with builder from bean store.
beanStore
.getBean(DebugEnablement.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- if (v.isEmpty()) {
- DebugEnablement.Builder b = DebugEnablement
- .create()
- .beanStore(beanStore);
-
- // Default debug enablement if not overridden at
class/method level.
- Enablement debugDefault =
defaultSettings.get(Enablement.class,
"RestContext.debugDefault").orElse(isDebug() ? Enablement.ALWAYS :
Enablement.NEVER);
- b.defaultEnable(debugDefault);
-
- // Gather @RestOp(debug) settings.
- for (MethodInfo mi :
ClassInfo.ofProxy(resource.get()).getPublicMethods()) {
- mi
- .getAnnotationGroupList(RestOp.class)
- .getValues(String.class, "debug")
- .stream()
- .filter(y->!y.isEmpty())
- .findFirst()
- .ifPresent(x ->
b.enable(Enablement.fromString(x), mi.getFullName()));
- }
-
- v.set(b);
- }
+ // Replace with bean from bean store.
+ beanStore
+ .getBean(DebugEnablement.class)
+ .ifPresent(x -> v.get().impl(x));
+ // Replace with this bean.
resourceAs(DebugEnablement.class)
.ifPresent(x -> v.get().impl(x));
- defaultClasses
+ // Specify the implementation class if its set as a default.
+ defaultClasses()
.get(DebugEnablement.class)
.ifPresent(x -> v.get().type(x));
- beanStore
- .getBean(DebugEnablement.class)
- .ifPresent(x -> v.get().impl(x));
-
+ // Replace with builder from: public [static]
DebugEnablement.Builder createDebugEnablement(<args>)
beanStore
.beanCreateMethodFinder(DebugEnablement.Builder.class)
.addBean(DebugEnablement.Builder.class, v.get())
.find("createDebugEnablement")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] DebugEnablement
createDebugEnablement(<args>)
beanStore
.beanCreateMethodFinder(DebugEnablement.class)
.addBean(DebugEnablement.Builder.class, v.get())
@@ -2868,8 +2911,12 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodList createStartCallMethods(BeanStore beanStore,
Supplier<?> resource) {
- Value<MethodList> v = Value.of(getHookMethods(resource,
HookEvent.START_CALL));
+ // Default value.
+ Value<MethodList> v = Value.of(
+ getHookMethods(resource, HookEvent.START_CALL)
+ );
+ // Replace with bean from: public [static] MethodList
createStartCallMethods(<args>)
beanStore
.beanCreateMethodFinder(MethodList.class)
.addBean(MethodList.class, v.get())
@@ -2905,8 +2952,12 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodList createEndCallMethods(BeanStore beanStore,
Supplier<?> resource) {
- Value<MethodList> v = Value.of(getHookMethods(resource,
HookEvent.END_CALL));
+ // Default value.
+ Value<MethodList> v = Value.of(
+ getHookMethods(resource, HookEvent.END_CALL)
+ );
+ // Replace with bean from: public [static] MethodList
createEndCallMethods(<args>)
beanStore
.beanCreateMethodFinder(MethodList.class)
.addBean(MethodList.class, v.get())
@@ -2942,8 +2993,12 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodList createPostInitMethods(BeanStore beanStore,
Supplier<?> resource) {
- Value<MethodList> v = Value.of(getHookMethods(resource,
HookEvent.POST_INIT));
+ // Default value.
+ Value<MethodList> v = Value.of(
+ getHookMethods(resource, HookEvent.POST_INIT)
+ );
+ // Replace with bean from: public [static] MethodList
createPostInitMethods(<args>)
beanStore
.beanCreateMethodFinder(MethodList.class)
.addBean(MethodList.class, v.get())
@@ -2979,8 +3034,12 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodList createPostInitChildFirstMethods(BeanStore
beanStore, Supplier<?> resource) {
- Value<MethodList> v = Value.of(getHookMethods(resource,
HookEvent.POST_INIT_CHILD_FIRST));
+ // Default value.
+ Value<MethodList> v = Value.of(
+ getHookMethods(resource,
HookEvent.POST_INIT_CHILD_FIRST)
+ );
+ // Replace with bean from: public [static] MethodList
createPostInitChildFirstMethods(<args>)
beanStore
.beanCreateMethodFinder(MethodList.class)
.addBean(MethodList.class, v.get())
@@ -3015,8 +3074,12 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodList createDestroyMethods(BeanStore beanStore,
Supplier<?> resource) {
- Value<MethodList> v = Value.of(getHookMethods(resource,
HookEvent.DESTROY));
+ // Default value.
+ Value<MethodList> v = Value.of(
+ getHookMethods(resource, HookEvent.DESTROY)
+ );
+ // Replace with bean from: public [static] MethodList
createDestroyMethods(<args>)
beanStore
.beanCreateMethodFinder(MethodList.class)
.addBean(MethodList.class, v.get())
@@ -3052,8 +3115,12 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodList createPreCallMethods(BeanStore beanStore,
Supplier<?> resource) {
- Value<MethodList> v = Value.of(getHookMethods(resource,
HookEvent.PRE_CALL));
+ // Default value.
+ Value<MethodList> v = Value.of(
+ getHookMethods(resource, HookEvent.PRE_CALL)
+ );
+ // Replace with bean from: public [static] MethodList
createPreCallMethods(<args>)
beanStore
.beanCreateMethodFinder(MethodList.class)
.addBean(MethodList.class, v.get())
@@ -3089,8 +3156,12 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected MethodList createPostCallMethods(BeanStore beanStore,
Supplier<?> resource) {
- Value<MethodList> v = Value.of(getHookMethods(resource,
HookEvent.POST_CALL));
+ // Default value.
+ Value<MethodList> v = Value.of(
+ getHookMethods(resource, HookEvent.POST_CALL)
+ );
+ // Replace with bean from: public [static] MethodList
createPostCallMethods(<args>)
beanStore
.beanCreateMethodFinder(MethodList.class)
.addBean(MethodList.class, v.get())
@@ -3130,7 +3201,10 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected RestOperations.Builder createRestOperations(BeanStore
beanStore, Supplier<?> resource, RestContext restContext) throws
RestServletException {
- Value<RestOperations.Builder> v =
Value.of(RestOperations.create());
+ // Default value.
+ Value<RestOperations.Builder> v = Value.of(
+ RestOperations.create()
+ );
ClassInfo rci = ClassInfo.of(resource.get());
@@ -3183,12 +3257,14 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
}
}
+ // Replace with builder from: public [static]
RestOperations.Builder createRestOperations(<args>)
beanStore
.beanCreateMethodFinder(RestOperations.Builder.class)
.addBean(RestOperations.Builder.class, v.get())
- .find("createRestOperationsBuilder")
+ .find("createRestOperations")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] RestOperations
createRestOperations(<args>)
beanStore
.beanCreateMethodFinder(RestOperations.class)
.addBean(RestOperations.Builder.class, v.get())
@@ -3228,7 +3304,13 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected RestChildren.Builder createRestChildren(BeanStore beanStore,
Supplier<?> resource, RestContext restContext) throws Exception {
- Value<RestChildren.Builder> v =
Value.of(RestChildren.create().beanStore(beanStore).type(childrenClass));
+ // Default value.
+ Value<RestChildren.Builder> v = Value.of(
+ RestChildren
+ .create()
+ .beanStore(beanStore)
+ .type(childrenClass)
+ );
// Initialize our child resources.
for (Object o : children) {
@@ -3274,12 +3356,14 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
v.get().add(cc);
}
+ // Replace with builder from: public [static]
RestChildren.Builder createRestChildren(<args>)
beanStore
.beanCreateMethodFinder(RestChildren.Builder.class)
.addBean(RestChildren.Builder.class, v.get())
- .find("createRestChildrenBuilder")
+ .find("createRestChildren")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] RestChildren
createRestChildren(<args>)
beanStore
.beanCreateMethodFinder(RestChildren.class)
.addBean(RestChildren.Builder.class, v.get())
@@ -3340,6 +3424,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
protected SwaggerProvider.Builder createSwaggerProvider(BeanStore
beanStore, Supplier<?> resource) {
+ // Default value.
Value<SwaggerProvider.Builder> v = Value.of(
SwaggerProvider
.create()
@@ -3350,28 +3435,33 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
.jsonSchemaGenerator(()->beanStore.getBean(JsonSchemaGenerator.class).orElseThrow(()->runtimeException("JsonSchemaGenerator
bean not found.")))
);
+ // Replace with builder from bean store.
beanStore
.getBean(SwaggerProvider.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
- resourceAs(SwaggerProvider.class)
- .ifPresent(x -> v.get().impl(x));
-
+ // Replace with builder from bean store.
beanStore
.getBean(SwaggerProvider.class)
.ifPresent(x -> v.get().impl(x));
+ // Replace with this bean.
+ resourceAs(SwaggerProvider.class)
+ .ifPresent(x -> v.get().impl(x));
+
+ // Replace with builder from: public [static]
SwaggerProvider.Builder createSwaggerProvider(<args>)
beanStore
.beanCreateMethodFinder(SwaggerProvider.Builder.class)
.addBean(SwaggerProvider.Builder.class, v.get())
- .find("createSwaggerProviderBuilder")
+ .find("createSwaggerProvider")
.run(x -> v.set(x));
+ // Replace with bean from: public [static] SwaggerProvider
createSwaggerProvider(<args>)
beanStore
.beanCreateMethodFinder(SwaggerProvider.class)
.addBean(SwaggerProvider.Builder.class, v.get())
- .find("createSwaggerProviderBuilder")
+ .find("createSwaggerProvider")
.run(x -> v.get().impl(x));
return v.get();
@@ -4093,7 +4183,6 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
return this;
}
-
//----------------------------------------------------------------------------------------------------
// Methods that give access to the config file, var resolver, and
properties.
//----------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
index a9c5410..06dd5b3 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
@@ -1087,7 +1087,7 @@ public class RestAnnotation {
type(a.staticFiles()).ifPresent(x ->
b.staticFiles().type(x));
string(a.path()).ifPresent(x -> b.path(x));
string(a.clientVersionHeader()).ifPresent(x ->
b.clientVersionHeader(x));
- type(a.callLogger()).ifPresent(x ->
b.callLogger().implClass(x));
+ type(a.callLogger()).ifPresent(x ->
b.callLogger().type(x));
type(a.swaggerProvider()).ifPresent(x ->
b.swaggerProvider(x));
type(a.restOpContextClass()).ifPresent(x ->
b.restOpContextClass(x));
type(a.restChildrenClass()).ifPresent(x ->
b.restChildrenClass(x));
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
index 2587e99..5d4feb5 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
@@ -34,7 +34,7 @@ import org.apache.juneau.rest.annotation.*;
* Interface class used for logging HTTP requests.
*
* <p>
- * The {@link Builder#implClass(Class)} method has been provided for easy
extension of this class.
+ * The {@link Builder#type(Class)} method has been provided for easy extension
of this class.
*
* <p>
* The following default implementations are also provided:
@@ -159,7 +159,7 @@ public interface RestLogger {
RestLoggingDetail requestDetail, responseDetail;
Level level;
BeanStore beanStore;
- Class<? extends RestLogger> implClass;
+ Class<? extends RestLogger> type;
RestLogger impl;
/**
@@ -183,7 +183,7 @@ public interface RestLogger {
responseDetail = copyFrom.responseDetail;
level = copyFrom.level;
beanStore = copyFrom.beanStore;
- implClass = copyFrom.implClass;
+ type = copyFrom.type;
impl = copyFrom.impl;
}
@@ -191,7 +191,7 @@ public interface RestLogger {
* Creates a new {@link RestLogger} object from this builder.
*
* <p>
- * Instantiates an instance of the {@link #implClass(Class)
implementation class} or
+ * Instantiates an instance of the {@link #type(Class)
implementation class} or
* else {@link BasicRestLogger} if implementation class was not
specified.
*
* @return A new {@link RestLogger} object.
@@ -200,7 +200,7 @@ public interface RestLogger {
try {
if (impl != null)
return impl;
- Class<? extends RestLogger> ic =
isConcrete(implClass) ? implClass : BasicRestLogger.class;
+ Class<? extends RestLogger> ic =
isConcrete(type) ? type : BasicRestLogger.class;
return
BeanStore.of(beanStore).addBeans(Builder.class, this).createBean(ic);
} catch (Exception e) {
throw toHttpException(e,
InternalServerError.class);
@@ -224,8 +224,8 @@ public interface RestLogger {
* @param value The new value for this setting.
* @return This object.
*/
- public Builder implClass(Class<? extends RestLogger> value) {
- implClass = value;
+ public Builder type(Class<? extends RestLogger> value) {
+ type = value;
return this;
}