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 3e36e21 Context API refactoring.
3e36e21 is described below
commit 3e36e218a3d28e080892d142d8ec9f13e2e94e4a
Author: JamesBognar <[email protected]>
AuthorDate: Sun Sep 19 11:28:43 2021 -0400
Context API refactoring.
---
.../apache/juneau/config/event/ConfigEvent.java | 4 +-
.../juneau/config/store/ConfigClasspathStore.java | 2 +-
.../juneau/config/store/ConfigFileStore.java | 2 +-
.../juneau/config/store/ConfigMemoryStore.java | 2 +-
.../apache/juneau/config/store/ConfigStore.java | 2 +-
.../main/java/org/apache/juneau/BeanBuilder.java | 15 ++-
.../java/org/apache/juneau/BeanSessionArgs.java | 2 +-
.../main/java/org/apache/juneau/SessionArgs.java | 2 +-
.../java/org/apache/juneau/collections/AList.java | 8 +-
.../java/org/apache/juneau/collections/AMap.java | 8 +-
.../java/org/apache/juneau/collections/ASet.java | 8 +-
.../org/apache/juneau/collections/ASortedMap.java | 8 +-
.../org/apache/juneau/collections/ASortedSet.java | 8 +-
.../java/org/apache/juneau/collections/OList.java | 14 +--
.../java/org/apache/juneau/collections/OMap.java | 14 +--
.../main/java/org/apache/juneau/cp/BeanStore.java | 14 ++-
.../main/java/org/apache/juneau/cp/FileFinder.java | 14 ++-
.../main/java/org/apache/juneau/cp/Messages.java | 42 ++++----
.../org/apache/juneau/encoders/EncoderGroup.java | 18 +++-
.../java/org/apache/juneau/http/HttpHeaders.java | 2 +-
.../java/org/apache/juneau/http/HttpParts.java | 2 +-
.../org/apache/juneau/http/header/HeaderList.java | 18 +++-
.../java/org/apache/juneau/http/part/PartList.java | 27 ++++--
.../juneau/http/resource/HttpResourceBuilder.java | 2 +-
.../juneau/http/response/HttpExceptionBuilder.java | 2 +-
.../juneau/http/response/HttpResponseBuilder.java | 2 +-
.../org/apache/juneau/mstat/MethodExecStats.java | 14 ++-
.../org/apache/juneau/mstat/MethodExecStore.java | 14 ++-
.../java/org/apache/juneau/mstat/ThrownStore.java | 14 ++-
.../java/org/apache/juneau/parser/ParserGroup.java | 59 ++++++++----
.../apache/juneau/parser/ParserSessionArgs.java | 2 +-
.../java/org/apache/juneau/reflect/ClassInfo.java | 2 +-
.../org/apache/juneau/reflect/ConstructorInfo.java | 2 +-
.../java/org/apache/juneau/reflect/FieldInfo.java | 4 +-
.../java/org/apache/juneau/reflect/MethodInfo.java | 2 +-
.../java/org/apache/juneau/reflect/ParamInfo.java | 6 +-
.../apache/juneau/serializer/SerializerGroup.java | 63 ++++++++----
.../juneau/serializer/SerializerSessionArgs.java | 2 +-
.../java/org/apache/juneau/svl/VarResolver.java | 14 ++-
.../apache/juneau/microservice/Microservice.java | 4 +-
.../microservice/resources/DirectoryResource.java | 2 +-
.../microservice/jetty/JettyMicroservice.java | 2 +-
.../apache/juneau/rest/client/ResponseHeader.java | 2 +-
.../juneau/rest/client/ResponseStatusLine.java | 4 +-
.../org/apache/juneau/rest/client/RestClient.java | 2 +-
.../org/apache/juneau/rest/RequestFormParam.java | 2 +-
.../org/apache/juneau/rest/RequestFormParams.java | 2 +-
.../java/org/apache/juneau/rest/RequestHeader.java | 2 +-
.../org/apache/juneau/rest/RequestHeaders.java | 2 +-
.../org/apache/juneau/rest/RequestPathParam.java | 2 +-
.../org/apache/juneau/rest/RequestPathParams.java | 2 +-
.../org/apache/juneau/rest/RequestQueryParam.java | 2 +-
.../org/apache/juneau/rest/RequestQueryParams.java | 2 +-
.../apache/juneau/rest/ResponseProcessorList.java | 69 +++++++-------
.../main/java/org/apache/juneau/rest/RestCall.java | 2 +-
.../java/org/apache/juneau/rest/RestChildren.java | 103 +++++++++-----------
.../java/org/apache/juneau/rest/RestContext.java | 41 ++++----
.../org/apache/juneau/rest/RestConverterList.java | 59 +++++++++---
.../java/org/apache/juneau/rest/RestGuardList.java | 63 +++++++++---
.../org/apache/juneau/rest/RestMatcherList.java | 63 +++++++++---
.../java/org/apache/juneau/rest/RestObject.java | 2 +-
.../java/org/apache/juneau/rest/RestOpArgList.java | 66 +++++++------
.../java/org/apache/juneau/rest/RestOpContext.java | 2 +-
.../org/apache/juneau/rest/RestOperations.java | 106 +++++++++------------
.../java/org/apache/juneau/rest/RestServlet.java | 2 +-
.../java/org/apache/juneau/rest/StaticFiles.java | 14 ++-
.../org/apache/juneau/rest/logging/RestLogger.java | 100 ++++++++-----------
.../apache/juneau/rest/logging/RestLoggerRule.java | 76 +++++++++++++--
68 files changed, 742 insertions(+), 498 deletions(-)
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvent.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvent.java
index 3acfc7b..af5fddd 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvent.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvent.java
@@ -41,7 +41,7 @@ public class ConfigEvent {
}
//---------------------------------------------------------------------------------------------
- // Static creators.
+ // Static
//---------------------------------------------------------------------------------------------
/**
@@ -123,7 +123,7 @@ public class ConfigEvent {
//---------------------------------------------------------------------------------------------
- // Instance methods.
+ // Instance
//---------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigClasspathStore.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigClasspathStore.java
index 6664fb8..c0c27c4 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigClasspathStore.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigClasspathStore.java
@@ -130,7 +130,7 @@ public class ConfigClasspathStore extends ConfigStore {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
@Override /* Context */
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
index d5cbc99..5ab1264 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
@@ -346,7 +346,7 @@ public class ConfigFileStore extends ConfigStore {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
@Override /* Context */
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigMemoryStore.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigMemoryStore.java
index a463d2b..433d736 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigMemoryStore.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigMemoryStore.java
@@ -113,7 +113,7 @@ public class ConfigMemoryStore extends ConfigStore {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
@Override /* Context */
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
index 7be7427..a82ab96 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
@@ -204,7 +204,7 @@ public abstract class ConfigStore extends Context
implements Closeable {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
@Override /* Context */
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java
index c12fcbb..2031030 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java
@@ -72,11 +72,22 @@ public class BeanBuilder<T> {
return impl;
if (type == null || type == defaultType)
return buildDefault();
+ return creator().run();
+ }
+
+ /**
+ * Instantiates the creator for this bean.
+ *
+ * <p>
+ * Subclasses can override this to provide specialized handling.
+ *
+ * @return The creator for this bean.
+ */
+ protected BeanCreator<? extends T> creator() {
return beanStore
.creator(type().orElseThrow(()->runtimeException("Type
not specified.")))
.outer(outer)
- .builder(this)
- .run();
+ .builder(this);
}
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
index 22e22f7..8754c08 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
@@ -49,7 +49,7 @@ public class BeanSessionArgs extends SessionArgs {
}
//-----------------------------------------------------------------------------------------------------------------
- // Properties.
+ // Properties
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/SessionArgs.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/SessionArgs.java
index acddb8e..d940e57 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/SessionArgs.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/SessionArgs.java
@@ -36,7 +36,7 @@ public class SessionArgs {
public SessionArgs() {}
//-----------------------------------------------------------------------------------------------------------------
- // Properties.
+ // Properties
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AList.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AList.java
index efa9a92..78b41e5 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AList.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AList.java
@@ -57,7 +57,7 @@ public class AList<T> extends ArrayList<T> {
private static final long serialVersionUID = 1L;
//------------------------------------------------------------------------------------------------------------------
- // Constructors.
+ // Constructors
//------------------------------------------------------------------------------------------------------------------
/**
@@ -89,7 +89,7 @@ public class AList<T> extends ArrayList<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Creators.
+ // Creators
//------------------------------------------------------------------------------------------------------------------
/**
@@ -192,7 +192,7 @@ public class AList<T> extends ArrayList<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Appenders.
+ // Appenders
//------------------------------------------------------------------------------------------------------------------
/**
@@ -350,7 +350,7 @@ public class AList<T> extends ArrayList<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AMap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AMap.java
index de56610..af593e8 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AMap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/AMap.java
@@ -53,7 +53,7 @@ public class AMap<K,V> extends LinkedHashMap<K,V> {
private static final long serialVersionUID = 1L;
//------------------------------------------------------------------------------------------------------------------
- // Constructors.
+ // Constructors
//------------------------------------------------------------------------------------------------------------------
/**
@@ -71,7 +71,7 @@ public class AMap<K,V> extends LinkedHashMap<K,V> {
}
//------------------------------------------------------------------------------------------------------------------
- // Creators.
+ // Creators
//------------------------------------------------------------------------------------------------------------------
/**
@@ -184,7 +184,7 @@ public class AMap<K,V> extends LinkedHashMap<K,V> {
}
//------------------------------------------------------------------------------------------------------------------
- // Appenders.
+ // Appenders
//------------------------------------------------------------------------------------------------------------------
/**
@@ -258,7 +258,7 @@ public class AMap<K,V> extends LinkedHashMap<K,V> {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASet.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASet.java
index 565e0f2..28f4137 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASet.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASet.java
@@ -56,7 +56,7 @@ public class ASet<T> extends LinkedHashSet<T> {
private static final long serialVersionUID = 1L;
//------------------------------------------------------------------------------------------------------------------
- // Constructors.
+ // Constructors
//------------------------------------------------------------------------------------------------------------------
/**
@@ -74,7 +74,7 @@ public class ASet<T> extends LinkedHashSet<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Creators.
+ // Creators
//------------------------------------------------------------------------------------------------------------------
/**
@@ -167,7 +167,7 @@ public class ASet<T> extends LinkedHashSet<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Appenders.
+ // Appenders
//------------------------------------------------------------------------------------------------------------------
/**
@@ -271,7 +271,7 @@ public class ASet<T> extends LinkedHashSet<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedMap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedMap.java
index 951753b..f8f49c7 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedMap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedMap.java
@@ -52,7 +52,7 @@ public class ASortedMap<K,V> extends TreeMap<K,V> {
private static final long serialVersionUID = 1L;
//------------------------------------------------------------------------------------------------------------------
- // Constructors.
+ // Constructors
//------------------------------------------------------------------------------------------------------------------
/**
@@ -81,7 +81,7 @@ public class ASortedMap<K,V> extends TreeMap<K,V> {
}
//------------------------------------------------------------------------------------------------------------------
- // Creators.
+ // Creators
//------------------------------------------------------------------------------------------------------------------
/**
@@ -137,7 +137,7 @@ public class ASortedMap<K,V> extends TreeMap<K,V> {
}
//------------------------------------------------------------------------------------------------------------------
- // Appenders.
+ // Appenders
//------------------------------------------------------------------------------------------------------------------
/**
@@ -211,7 +211,7 @@ public class ASortedMap<K,V> extends TreeMap<K,V> {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedSet.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedSet.java
index 021f5df..d4a9590 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedSet.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ASortedSet.java
@@ -54,7 +54,7 @@ public class ASortedSet<T> extends TreeSet<T> {
private static final long serialVersionUID = 1L;
//------------------------------------------------------------------------------------------------------------------
- // Constructors.
+ // Constructors
//------------------------------------------------------------------------------------------------------------------
/**
@@ -81,7 +81,7 @@ public class ASortedSet<T> extends TreeSet<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Creators.
+ // Creators
//------------------------------------------------------------------------------------------------------------------
/**
@@ -115,7 +115,7 @@ public class ASortedSet<T> extends TreeSet<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Appenders.
+ // Appenders
//------------------------------------------------------------------------------------------------------------------
/**
@@ -219,7 +219,7 @@ public class ASortedSet<T> extends TreeSet<T> {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OList.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OList.java
index 67326ee..e51f5a8 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OList.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OList.java
@@ -137,7 +137,7 @@ public class OList extends LinkedList<Object> {
};
//------------------------------------------------------------------------------------------------------------------
- // Constructors.
+ // Constructors
//------------------------------------------------------------------------------------------------------------------
/**
@@ -236,7 +236,7 @@ public class OList extends LinkedList<Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Creators.
+ // Creators
//------------------------------------------------------------------------------------------------------------------
/**
@@ -355,7 +355,7 @@ public class OList extends LinkedList<Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Initializers.
+ // Initializers
//------------------------------------------------------------------------------------------------------------------
/**
@@ -376,7 +376,7 @@ public class OList extends LinkedList<Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Appenders.
+ // Appenders
//------------------------------------------------------------------------------------------------------------------
/**
@@ -521,7 +521,7 @@ public class OList extends LinkedList<Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Retrievers.
+ // Retrievers
//------------------------------------------------------------------------------------------------------------------
/**
@@ -835,7 +835,7 @@ public class OList extends LinkedList<Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
/**
@@ -1017,7 +1017,7 @@ public class OList extends LinkedList<Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Utility methods.
+ // Utility methods
//------------------------------------------------------------------------------------------------------------------
private void parse(Reader r, Parser p) throws ParseException {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java
index a087306..c9ef9bd 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java
@@ -136,7 +136,7 @@ public class OMap extends LinkedHashMap<String,Object> {
};
//------------------------------------------------------------------------------------------------------------------
- // Constructors.
+ // Constructors
//------------------------------------------------------------------------------------------------------------------
/**
@@ -245,7 +245,7 @@ public class OMap extends LinkedHashMap<String,Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Creators.
+ // Creators
//------------------------------------------------------------------------------------------------------------------
/**
@@ -344,7 +344,7 @@ public class OMap extends LinkedHashMap<String,Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Initializers.
+ // Initializers
//------------------------------------------------------------------------------------------------------------------
/**
@@ -393,7 +393,7 @@ public class OMap extends LinkedHashMap<String,Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Appenders.
+ // Appenders
//------------------------------------------------------------------------------------------------------------------
/**
@@ -620,7 +620,7 @@ public class OMap extends LinkedHashMap<String,Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Retrievers.
+ // Retrievers
//------------------------------------------------------------------------------------------------------------------
/**
@@ -1593,7 +1593,7 @@ public class OMap extends LinkedHashMap<String,Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
@Override
@@ -1702,7 +1702,7 @@ public class OMap extends LinkedHashMap<String,Object> {
}
//------------------------------------------------------------------------------------------------------------------
- // Utility methods.
+ // Utility methods
//------------------------------------------------------------------------------------------------------------------
private BeanSession bs() {
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 161cf8b..82cde49 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
@@ -122,6 +122,15 @@ public class BeanStore {
return new BeanStore(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Specifies the parent bean store.
*
@@ -154,11 +163,6 @@ public class BeanStore {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends BeanStore> value) {
super.type(value);
return this;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
index 9c1ed4b..c9c78c9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
@@ -142,6 +142,15 @@ public interface FileFinder {
return new BasicFileFinder(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Adds a class subpackage to the lookup paths.
*
@@ -227,11 +236,6 @@ public interface FileFinder {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends FileFinder> value) {
super.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 daff73b..00fb7d6 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
@@ -226,6 +226,15 @@ public class Messages extends ResourceBundle {
public String locale;
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Adds a parent bundle.
*
@@ -306,26 +315,9 @@ public class Messages extends ResourceBundle {
return this;
}
- ResourceBundle getBundle() {
- ClassLoader cl = forClass.getClassLoader();
- OMap m = OMap.of("name", name, "package",
forClass.getPackage().getName());
- for (String bn : baseNames) {
- bn = StringUtils.replaceVars(bn, m);
- ResourceBundle rb = findBundle(bn, locale, cl);
- if (rb != null)
- return rb;
- }
- return null;
- }
-
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends Messages> value) {
super.type(value);
return this;
@@ -350,6 +342,22 @@ public class Messages extends ResourceBundle {
}
// <FluentSetters>
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Other methods
+
//-------------------------------------------------------------------------------------------------------------
+
+ ResourceBundle getBundle() {
+ ClassLoader cl = forClass.getClassLoader();
+ OMap m = OMap.of("name", name, "package",
forClass.getPackage().getName());
+ for (String bn : baseNames) {
+ bn = StringUtils.replaceVars(bn, m);
+ ResourceBundle rb = findBundle(bn, locale, cl);
+ if (rb != null)
+ return rb;
+ }
+ return null;
+ }
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
index 9f6d5f6..0f222ae 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
@@ -130,6 +130,15 @@ public final class EncoderGroup {
return new EncoderGroup(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Registers the specified encoders with this group.
*
@@ -237,11 +246,6 @@ public final class EncoderGroup {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends EncoderGroup> value) {
super.type(value);
return this;
@@ -267,6 +271,10 @@ public final class EncoderGroup {
// </FluentSetters>
+
//-------------------------------------------------------------------------------------------------------------
+ // Other methods
+
//-------------------------------------------------------------------------------------------------------------
+
@Override /* Object */
public String toString() {
return entries.stream().map(x ->
toString(x)).collect(joining(",","[","]"));
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpHeaders.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpHeaders.java
index 1979191..d1e7dca 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpHeaders.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpHeaders.java
@@ -2644,7 +2644,7 @@ public class HttpHeaders {
}
//-----------------------------------------------------------------------------------------------------------------
- // Utility methods.
+ // Utility methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpParts.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpParts.java
index 288f087..f263424 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpParts.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpParts.java
@@ -408,7 +408,7 @@ public class HttpParts {
}
//-----------------------------------------------------------------------------------------------------------------
- // Utility methods.
+ // Utility methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
index b6026d9..07f2230 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
@@ -287,6 +287,15 @@ public class HeaderList {
return entries.isEmpty() && defaultEntries == null ?
EMPTY : new HeaderList(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Allows header values to contain SVL variables.
*
@@ -1148,11 +1157,6 @@ public class HeaderList {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends HeaderList> value) {
super.type(value);
return this;
@@ -1178,6 +1182,10 @@ public class HeaderList {
// </FluentSetters>
+
//-------------------------------------------------------------------------------------------------------------
+ // Other methods
+
//-------------------------------------------------------------------------------------------------------------
+
@Override /* Object */
public String toString() {
return "[" + join(entries, ", ") + "]";
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
index b6ef8c1..fa26bbc 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
@@ -275,6 +275,15 @@ public class PartList {
return entries.isEmpty() && defaultEntries == null ?
EMPTY : new PartList(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Allows part values to contain SVL variables.
*
@@ -1129,15 +1138,6 @@ public class PartList {
// <FluentSetters>
- @Override /* Object */
- public String toString() {
- return "[" + join(entries, ", ") + "]";
- }
- @Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
@Override /* BeanBuilder */
public Builder type(Class<? extends PartList> value) {
super.type(value);
@@ -1163,6 +1163,15 @@ public class PartList {
}
// </FluentSetters>
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Other methods
+
//-------------------------------------------------------------------------------------------------------------
+
+ @Override /* Object */
+ public String toString() {
+ return "[" + join(entries, ", ") + "]";
+ }
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/resource/HttpResourceBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/resource/HttpResourceBuilder.java
index f2513a5..68185d3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/resource/HttpResourceBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/resource/HttpResourceBuilder.java
@@ -453,7 +453,7 @@ public class HttpResourceBuilder<T extends BasicResource> {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
private HeaderList.Builder headersBuilder() {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
index 7828257..196355f 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
@@ -409,7 +409,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
private BasicStatusLine.Builder statusLineBuilder() {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
index d087905..f04475b 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
@@ -439,7 +439,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
private BasicStatusLine.Builder statusLineBuilder() {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java
index 499ad3e..93896ba 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java
@@ -79,6 +79,15 @@ public class MethodExecStats {
return new MethodExecStats(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Specifies the Java method.
*
@@ -106,11 +115,6 @@ public class MethodExecStats {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends MethodExecStats> value) {
super.type(value);
return this;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStore.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStore.java
index 2d3c0bb..a4fe703 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStore.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStore.java
@@ -77,6 +77,15 @@ public class MethodExecStore {
return new MethodExecStore(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Specifies a subclass of {@link MethodExecStats} to use for
individual method statistics.
*
@@ -120,11 +129,6 @@ public class MethodExecStore {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends MethodExecStore> value) {
super.type(value);
return this;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java
index 1039d94..28a2d95 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java
@@ -86,6 +86,15 @@ public class ThrownStore {
return new ThrownStore(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Specifies a subclass of {@link ThrownStats} to use for
individual method statistics.
*
@@ -129,11 +138,6 @@ public class ThrownStore {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends ThrownStore> value) {
super.type(value);
return this;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
index 1d9c049..6ae96ee 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
@@ -26,6 +26,7 @@ import java.util.stream.*;
import org.apache.juneau.*;
import org.apache.juneau.annotation.*;
import org.apache.juneau.collections.*;
+import org.apache.juneau.cp.*;
import org.apache.juneau.http.header.*;
/**
@@ -126,7 +127,7 @@ public final class ParserGroup {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<ParserGroup> {
List<Object> entries;
private BeanContextBuilder bcBuilder;
@@ -135,6 +136,7 @@ public final class ParserGroup {
* Create an empty parser group builder.
*/
protected Builder() {
+ super(ParserGroup.class);
this.entries = AList.create();
}
@@ -144,6 +146,7 @@ public final class ParserGroup {
* @param copyFrom The parser group that we're copying settings
and parsers from.
*/
protected Builder(ParserGroup copyFrom) {
+ super(copyFrom.getClass());
this.entries =
AList.create().append(asList(copyFrom.entries));
}
@@ -156,6 +159,7 @@ public final class ParserGroup {
* @param copyFrom The parser group that we're copying settings
and parsers from.
*/
protected Builder(Builder copyFrom) {
+ super(copyFrom);
bcBuilder = copyFrom.bcBuilder == null ? null :
copyFrom.bcBuilder.copy();
entries = AList.create();
copyFrom.entries.stream().map(x ->
copyBuilder(x)).forEach(x -> entries.add(x));
@@ -172,26 +176,19 @@ public final class ParserGroup {
return o;
}
- /**
- * Copy creator.
- *
- * @return A new mutable copy of this builder.
- */
+ @Override /* BeanBuilder */
+ protected ParserGroup buildDefault() {
+ return new ParserGroup(this);
+ }
+
+ @Override /* BeanBuilder */
public Builder copy() {
return new Builder(this);
}
- /**
- * Creates a new {@link ParserGroup} object using a snapshot of
the settings defined in this builder.
- *
- * <p>
- * This method can be called multiple times to produce multiple
parser groups.
- *
- * @return A new {@link ParserGroup} object.
- */
- public ParserGroup build() {
- return new ParserGroup(this);
- }
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
/**
* Associates an existing bean context builder with all parser
builders in this group.
@@ -408,6 +405,34 @@ public final class ParserGroup {
return entries.stream().filter(x ->
type.isInstance(x)).map(x -> (T)x);
}
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends ParserGroup> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder impl(ParserGroup value) {
+ super.impl(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
+ return this;
+ }
+
+ // </FluentSetters>
+
@Override /* Object */
public String toString() {
return entries.stream().map(x ->
toString(x)).collect(joining(",","[","]"));
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java
index c2e79fe..935819c 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java
@@ -46,7 +46,7 @@ public final class ParserSessionArgs extends BeanSessionArgs {
}
//-----------------------------------------------------------------------------------------------------------------
- // Properties.
+ // Properties
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
index fa9ef89..198ee8d 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
@@ -76,7 +76,7 @@ public final class ClassInfo {
private static final Map<Class<?>,ClassInfo> CACHE = new
ConcurrentHashMap<>();
//-----------------------------------------------------------------------------------------------------------------
- // Instantiation.
+ // Instantiation
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
index ad72054..24a13b0 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
@@ -29,7 +29,7 @@ public final class ConstructorInfo extends ExecutableInfo
implements Comparable<
private final Constructor<?> c;
//-----------------------------------------------------------------------------------------------------------------
- // Instantiation.
+ // Instantiation
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java
index 41b921c..c4aafbf 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java
@@ -29,7 +29,7 @@ public final class FieldInfo implements Comparable<FieldInfo>
{
private ClassInfo declaringClass, type;
//-----------------------------------------------------------------------------------------------------------------
- // Instantiation.
+ // Instantiation
//-----------------------------------------------------------------------------------------------------------------
/**
@@ -366,7 +366,7 @@ public final class FieldInfo implements
Comparable<FieldInfo> {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
index dc6eb84..5ee0a57 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
@@ -35,7 +35,7 @@ public final class MethodInfo extends ExecutableInfo
implements Comparable<Metho
private Method[] matching;
//-----------------------------------------------------------------------------------------------------------------
- // Instantiation.
+ // Instantiation
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ParamInfo.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ParamInfo.java
index a98a12a..e634946 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ParamInfo.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ParamInfo.java
@@ -31,7 +31,7 @@ public final class ParamInfo {
private volatile Map<Class<?>,Optional<Annotation>> annotationMap;
//-----------------------------------------------------------------------------------------------------------------
- // Instantiation.
+ // Instantiation
//-----------------------------------------------------------------------------------------------------------------
/**
@@ -84,7 +84,7 @@ public final class ParamInfo {
}
//-----------------------------------------------------------------------------------------------------------------
- // Annotations.
+ // Annotations
//-----------------------------------------------------------------------------------------------------------------
/**
@@ -229,7 +229,7 @@ public final class ParamInfo {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
index 5e62022..be41571 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
@@ -26,6 +26,7 @@ import java.util.stream.*;
import org.apache.juneau.*;
import org.apache.juneau.annotation.*;
import org.apache.juneau.collections.*;
+import org.apache.juneau.cp.*;
import org.apache.juneau.http.header.*;
/**
@@ -118,7 +119,7 @@ public final class SerializerGroup {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<SerializerGroup> {
List<Object> entries;
private BeanContextBuilder bcBuilder;
@@ -127,6 +128,7 @@ public final class SerializerGroup {
* Create an empty serializer group builder.
*/
protected Builder() {
+ super(SerializerGroup.class);
this.entries = AList.create();
}
@@ -136,6 +138,7 @@ public final class SerializerGroup {
* @param copyFrom The serializer group that we're copying
settings and serializers from.
*/
protected Builder(SerializerGroup copyFrom) {
+ super(copyFrom.getClass());
this.entries =
AList.create().append(asList(copyFrom.entries));
}
@@ -148,6 +151,7 @@ public final class SerializerGroup {
* @param copyFrom The serializer group that we're copying
settings and serializers from.
*/
protected Builder(Builder copyFrom) {
+ super(copyFrom);
bcBuilder = copyFrom.bcBuilder == null ? null :
copyFrom.bcBuilder.copy();
entries = AList.create();
copyFrom.entries.stream().map(x ->
copyBuilder(x)).forEach(x -> entries.add(x));
@@ -164,26 +168,19 @@ public final class SerializerGroup {
return o;
}
- /**
- * Copy creator.
- *
- * @return A new mutable copy of this builder.
- */
+ @Override /* BeanBuilder */
+ protected SerializerGroup buildDefault() {
+ return new SerializerGroup(this);
+ }
+
+ @Override /* BeanBuilder */
public Builder copy() {
return new Builder(this);
}
- /**
- * Creates a new {@link SerializerGroup} object using a
snapshot of the settings defined in this builder.
- *
- * <p>
- * This method can be called multiple times to produce multiple
serializer groups.
- *
- * @return A new {@link SerializerGroup} object.
- */
- public SerializerGroup build() {
- return new SerializerGroup(this);
- }
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
/**
* Associates an existing bean context builder with all
serializer builders in this group.
@@ -397,6 +394,38 @@ public final class SerializerGroup {
return entries.stream().filter(x ->
type.isInstance(x)).map(x -> (T)x);
}
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends SerializerGroup> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder impl(SerializerGroup value) {
+ super.impl(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
+ return this;
+ }
+
+ // </FluentSetters>
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Other methods
+
//-------------------------------------------------------------------------------------------------------------
+
@Override /* Object */
public String toString() {
return entries.stream().map(x ->
toString(x)).collect(joining(",","[","]"));
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
index ceddccb..4f3d904 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
@@ -52,7 +52,7 @@ public final class SerializerSessionArgs extends
BeanSessionArgs {
}
//-----------------------------------------------------------------------------------------------------------------
- // Properties.
+ // Properties
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
index b8951b7..dafe217 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
@@ -144,6 +144,15 @@ public class VarResolver {
return new VarResolver(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Register new variables with this resolver.
*
@@ -230,11 +239,6 @@ public class VarResolver {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends VarResolver> value) {
super.type(value);
return this;
diff --git
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
index abe770b..5770d31 100755
---
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
+++
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
@@ -277,7 +277,7 @@ public class Microservice implements ConfigEventListener {
}
//-------------------------------------------------------------------------------------------------------------
- // Other.
+ // Other
//-------------------------------------------------------------------------------------------------------------
this.listener = builder.listener != null ? builder.listener :
new BasicMicroserviceListener();
@@ -717,7 +717,7 @@ public class Microservice implements ConfigEventListener {
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index b6e7c14..b43f35b 100755
---
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -103,7 +103,7 @@ public class DirectoryResource extends BasicRestServlet {
private final File rootDir; // The root directory
- // Settings enabled through servlet init parameters
+ // Properties enabled through servlet init parameters
final boolean allowDeletes, allowUploads, allowViews;
public DirectoryResource(Config c) throws Exception {
diff --git
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
index ec00c63..8e23c59 100644
---
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
+++
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
@@ -471,7 +471,7 @@ public class JettyMicroservice extends Microservice {
}
//-----------------------------------------------------------------------------------------------------------------
- // Utility methods.
+ // Utility methods
//-----------------------------------------------------------------------------------------------------------------
private static ServletContextHandler getServletContextHandler(Handler
h) {
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
index 7694f75..6268862 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
@@ -507,7 +507,7 @@ public class ResponseHeader implements Header {
}
//------------------------------------------------------------------------------------------------------------------
- // Assertions.
+ // Assertions
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseStatusLine.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseStatusLine.java
index 41c6f0c..792eeb4 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseStatusLine.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseStatusLine.java
@@ -50,7 +50,7 @@ public class ResponseStatusLine implements StatusLine {
}
//------------------------------------------------------------------------------------------------------------------
- // Assertions.
+ // Assertions
//------------------------------------------------------------------------------------------------------------------
/**
@@ -81,7 +81,7 @@ public class ResponseStatusLine implements StatusLine {
}
//------------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//------------------------------------------------------------------------------------------------------------------
@Override /* Object */
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 288ccfc..bb1e2f7 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -3576,7 +3576,7 @@ public class RestClient extends BeanContextable
implements HttpClient, Closeable
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
private Pattern absUrlPattern = Pattern.compile("^\\w+\\:\\/\\/.*");
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParam.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParam.java
index 2a6e252..eda5aa4 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParam.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParam.java
@@ -206,7 +206,7 @@ public class RequestFormParam extends RequestHttpPart
implements NameValuePair {
}
//------------------------------------------------------------------------------------------------------------------
- // Assertions.
+ // Assertions
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
index 5b05273..16f9c37 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormParams.java
@@ -459,7 +459,7 @@ public class RequestFormParams {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
index 2f97a38..55fe96d 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeader.java
@@ -212,7 +212,7 @@ public class RequestHeader extends RequestHttpPart
implements Header {
}
//------------------------------------------------------------------------------------------------------------------
- // Assertions.
+ // Assertions
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
index c25b3ea..64279e1 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestHeaders.java
@@ -458,7 +458,7 @@ public class RequestHeaders {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParam.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParam.java
index 848c054..f7d0ed3 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParam.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParam.java
@@ -176,7 +176,7 @@ public class RequestPathParam extends RequestHttpPart
implements NameValuePair {
}
//------------------------------------------------------------------------------------------------------------------
- // Assertions.
+ // Assertions
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParams.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParams.java
index fcb748b..20f7651 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParams.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestPathParams.java
@@ -415,7 +415,7 @@ public class RequestPathParams {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
index 723bd21..6c6842e 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParam.java
@@ -185,7 +185,7 @@ public class RequestQueryParam extends RequestHttpPart
implements NameValuePair
}
//------------------------------------------------------------------------------------------------------------------
- // Assertions.
+ // Assertions
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
index ec1c1bc..dec3860 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQueryParams.java
@@ -425,7 +425,7 @@ public class RequestQueryParams {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseProcessorList.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseProcessorList.java
index 9b771b2..cf7411e 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseProcessorList.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseProcessorList.java
@@ -47,16 +47,15 @@ public class ResponseProcessorList {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<ResponseProcessorList> {
List<Object> entries;
- ResponseProcessorList impl;
- BeanStore beanStore = BeanStore.INSTANCE;
/**
* Constructor.
*/
protected Builder() {
+ super(ResponseProcessorList.class);
this.entries = AList.create();
}
@@ -66,20 +65,24 @@ public class ResponseProcessorList {
* @param copyFrom The builder to copy.
*/
protected Builder(Builder copyFrom) {
+ super(copyFrom);
this.entries = AList.create().append(copyFrom.entries);
}
- /**
- * Creates a new {@link ResponseProcessorList} object using a
snapshot of the settings defined in this builder.
- *
- * @return A new {@link ResponseProcessorList} object.
- */
- public ResponseProcessorList build() {
- if (impl != null)
- return impl;
+ @Override /* BeanBuilder */
+ protected ResponseProcessorList buildDefault() {
return new ResponseProcessorList(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Appends the specified rest response processor classes to the
list.
*
@@ -103,36 +106,33 @@ public class ResponseProcessorList {
return this;
}
- /**
- * Specifies the bean store to use for instantiating rest
response processor classes.
- *
- * @param value The bean store to use for instantiating rest
response processor classes.
- * @return This object.
- */
- public Builder beanStore(BeanStore value) {
- beanStore = value;
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends ResponseProcessorList>
value) {
+ super.type(value);
return this;
}
- /**
- * Specifies a pre-instantiated bean to return from {@link
#build()}.
- *
- * @param value The value for this setting.
- * @return This object.
- */
+ @Override /* BeanBuilder */
public Builder impl(ResponseProcessorList value) {
- this.impl = value;
+ super.impl(value);
return this;
}
- /**
- * Creates a copy of this builder.
- *
- * @return A copy of this builder.
- */
- public Builder copy() {
- return new Builder(this);
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
}
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
+ return this;
+ }
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
@@ -147,11 +147,12 @@ public class ResponseProcessorList {
* @param builder The builder containing the contents for this list.
*/
protected ResponseProcessorList(Builder builder) {
+ BeanStore bs = builder.beanStore().orElse(BeanStore.INSTANCE);
entries =
builder
.entries
.stream()
- .map(x -> instantiate(x, builder.beanStore))
+ .map(x -> instantiate(x, bs))
.toArray(ResponseProcessor[]::new);
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCall.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCall.java
index edc2594..d46ae74 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCall.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCall.java
@@ -239,7 +239,7 @@ public class RestCall {
}
//------------------------------------------------------------------------------------------------------------------
- // Getters.
+ // Getters
//------------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
index 9943578..c90e046 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
@@ -12,16 +12,13 @@
//
***************************************************************************************************************************
package org.apache.juneau.rest;
-import static org.apache.juneau.internal.ClassUtils.*;
-import static org.apache.juneau.rest.HttpRuntimeException.*;
-
import java.util.*;
import javax.servlet.*;
+import org.apache.juneau.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.cp.*;
-import org.apache.juneau.http.response.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.util.*;
@@ -60,38 +57,42 @@ public class RestChildren {
/**
* Builder class.
*/
- public static class Builder {
-
- final List<RestContext> list = AList.create();
+ public static class Builder extends BeanBuilder<RestChildren> {
- private BeanStore beanStore;
- private Class<? extends RestChildren> type;
- private RestChildren impl;
+ final List<RestContext> list;
/**
- * Instantiates a {@link RestChildren} object based on the
contents of this builder.
- *
- * @return A new {@link RestChildren} object.
+ * Constructor.
*/
- public RestChildren build() {
- try {
- if (impl != null)
- return impl;
- return
BeanCreator.create(RestChildren.class).type(isConcrete(type) ? type :
getDefaultImplClass()).store(beanStore).builder(this).run();
- } catch (Exception e) {
- throw toHttpException(e,
InternalServerError.class);
- }
+ protected Builder() {
+ super(RestChildren.class);
+ list = AList.create();
}
/**
- * Specifies the default implementation class if not specified
via {@link #type(Class)}.
+ * Copy constructor.
*
- * @return The default implementation class if not specified
via {@link #type(Class)}.
+ * @param copyFrom The builder being copied.
*/
- protected Class<? extends RestChildren> getDefaultImplClass() {
- return RestChildren.class;
+ protected Builder(Builder copyFrom) {
+ super(copyFrom);
+ list = AList.of(copyFrom.list);
+ }
+
+ @Override /* BeanBuilder */
+ protected RestChildren buildDefault() {
+ return new RestChildren(this);
+ }
+
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
}
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Adds a child resource to this builder.
*
@@ -103,49 +104,33 @@ public class RestChildren {
return this;
}
- /**
- * Specifies a {@link RestChildren} implementation subclass to
use.
- *
- * <p>
- * When specified, the {@link #build()} method will create an
instance of that class instead of the default {@link RestChildren}.
- *
- * <p>
- * The subclass must have a public constructor that takes in
any of the following arguments:
- * <ul>
- * <li>{@link Builder} - This object.
- * <li>Any beans found in the specified {@link
#beanStore(BeanStore) bean store}.
- * <li>Any {@link Optional} beans that may or may not be
found in the specified {@link #beanStore(BeanStore) bean store}.
- * </ul>
- *
- * @param value The implementation class to build.
- * @return This object.
- */
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
public Builder type(Class<? extends RestChildren> value) {
- type = value;
+ super.type(value);
return this;
}
- /**
- * Specifies a {@link BeanStore} to use when resolving
constructor arguments.
- *
- * @param value The bean store to use for resolving constructor
arguments.
- * @return This object.
- */
- public Builder beanStore(BeanStore value) {
- beanStore = value;
+ @Override /* BeanBuilder */
+ public Builder impl(RestChildren value) {
+ super.impl(value);
return this;
}
- /**
- * Specifies an already-instantiated bean for the {@link
#build()} method to return.
- *
- * @param value The value for this setting.
- * @return This object.
- */
- public Builder impl(RestChildren value) {
- impl = value;
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
return this;
}
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
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 a2b0b02..48224e1 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
@@ -15,6 +15,7 @@ package org.apache.juneau.rest;
import static javax.servlet.http.HttpServletResponse.*;
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.IOUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.rest.HttpRuntimeException.*;
@@ -1567,10 +1568,25 @@ public class RestContext extends Context {
}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // 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.");
+ }
+
+ @Override /* Context */
public OMap toMap() {
return super.toMap()
.a(
@@ -1602,27 +1618,4 @@ public class RestContext extends Context {
.a("uriResolution", uriResolution)
);
}
-
- @Override
- public ContextBuilder copy() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Session createSession(SessionArgs args) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public SessionArgs createDefaultSessionArgs() {
- // TODO Auto-generated method stub
- return null;
- }
-
-
//-----------------------------------------------------------------------------------------------------------------
- // Helpers.
-
//-----------------------------------------------------------------------------------------------------------------
-
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConverterList.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConverterList.java
index 88ba6eb..56142af 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConverterList.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConverterList.java
@@ -41,27 +41,42 @@ public class RestConverterList {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<RestConverterList> {
AList<Object> entries;
- BeanStore beanStore;
/**
* Create an empty builder.
*/
protected Builder() {
+ super(RestConverterList.class);
this.entries = AList.create();
}
/**
- * Creates a new {@link RestConverterList} object using a
snapshot of the settings defined in this builder.
+ * Copy constructor.
*
- * @return A new {@link RestConverterList} object.
+ * @param copyFrom The builder being copied.
*/
- public RestConverterList build() {
+ protected Builder(Builder copyFrom) {
+ super(copyFrom);
+ entries = AList.of(copyFrom.entries);
+ }
+
+ @Override /* BeanBuilder */
+ protected RestConverterList buildDefault() {
return new RestConverterList(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Appends the specified rest matcher classes to the list.
*
@@ -85,16 +100,33 @@ public class RestConverterList {
return this;
}
- /**
- * Specifies the bean store to use for instantiating rest
matcher classes.
- *
- * @param value The bean store to use for instantiating rest
matcher classes.
- * @return This object (for method chaining).
- */
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends RestConverterList> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder impl(RestConverterList value) {
+ super.impl(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
public Builder beanStore(BeanStore value) {
- beanStore = value;
+ super.beanStore(value);
return this;
}
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
@@ -109,11 +141,12 @@ public class RestConverterList {
* @param builder The builder containing the contents for this list.
*/
protected RestConverterList(Builder builder) {
+ BeanStore bs = builder.beanStore().orElse(BeanStore.INSTANCE);
entries =
builder
.entries
.stream()
- .map(x -> instantiate(x, builder.beanStore))
+ .map(x -> instantiate(x, bs))
.toArray(RestConverter[]::new);
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestGuardList.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestGuardList.java
index e1c4436..34b7a98 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestGuardList.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestGuardList.java
@@ -41,27 +41,42 @@ public class RestGuardList {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<RestGuardList> {
AList<Object> entries;
- BeanStore beanStore;
/**
- * Create an empty builder.
+ * Constructor.
*/
protected Builder() {
- this.entries = AList.create();
+ super(RestGuardList.class);
+ entries = AList.create();
}
/**
- * Creates a new {@link RestGuardList} object using a snapshot
of the settings defined in this builder.
+ * Copy constructor.
*
- * @return A new {@link RestGuardList} object.
+ * @param copyFrom The builder being copied.
*/
- public RestGuardList build() {
+ protected Builder(Builder copyFrom) {
+ super(copyFrom);
+ entries = AList.of(copyFrom.entries);
+ }
+
+ @Override /* BeanBuilder */
+ protected RestGuardList buildDefault() {
return new RestGuardList(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Appends the specified rest matcher classes to the list.
*
@@ -85,16 +100,33 @@ public class RestGuardList {
return this;
}
- /**
- * Specifies the bean store to use for instantiating rest
matcher classes.
- *
- * @param value The bean store to use for instantiating rest
matcher classes.
- * @return This object (for method chaining).
- */
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends RestGuardList> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder impl(RestGuardList value) {
+ super.impl(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
public Builder beanStore(BeanStore value) {
- beanStore = value;
+ super.beanStore(value);
return this;
}
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
@@ -109,11 +141,12 @@ public class RestGuardList {
* @param builder The builder containing the contents for this list.
*/
protected RestGuardList(Builder builder) {
+ BeanStore bs = builder.beanStore().orElse(BeanStore.INSTANCE);
entries =
builder
.entries
.stream()
- .map(x -> instantiate(x, builder.beanStore))
+ .map(x -> instantiate(x, bs))
.toArray(RestGuard[]::new);
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMatcherList.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMatcherList.java
index 96aac5d..5a33d6a 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMatcherList.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMatcherList.java
@@ -45,27 +45,42 @@ public class RestMatcherList {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<RestMatcherList> {
AList<Object> entries;
- BeanStore beanStore;
/**
- * Create an empty builder.
+ * Constructor.
*/
protected Builder() {
- this.entries = AList.create();
+ super(RestMatcherList.class);
+ entries = AList.create();
}
/**
- * Creates a new {@link RestMatcherList} object using a
snapshot of the settings defined in this builder.
+ * Copy constructor.
*
- * @return A new {@link RestMatcherList} object.
+ * @param copyFrom The builder being copied.
*/
- public RestMatcherList build() {
+ protected Builder(Builder copyFrom) {
+ super(copyFrom);
+ entries = AList.of(copyFrom.entries);
+ }
+
+ @Override /* BeanBuilder */
+ protected RestMatcherList buildDefault() {
return new RestMatcherList(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Appends the specified rest matcher classes to the list.
*
@@ -89,16 +104,33 @@ public class RestMatcherList {
return this;
}
- /**
- * Specifies the bean store to use for instantiating rest
matcher classes.
- *
- * @param value The bean store to use for instantiating rest
matcher classes.
- * @return This object (for method chaining).
- */
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends RestMatcherList> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder impl(RestMatcherList value) {
+ super.impl(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
public Builder beanStore(BeanStore value) {
- beanStore = value;
+ super.beanStore(value);
return this;
}
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
@@ -114,11 +146,12 @@ public class RestMatcherList {
* @param builder The builder containing the contents for this list.
*/
protected RestMatcherList(Builder builder) {
+ BeanStore bs = builder.beanStore().orElse(BeanStore.INSTANCE);
List<RestMatcher> l =
builder
.entries
.stream()
- .map(x -> instantiate(x, builder.beanStore))
+ .map(x -> instantiate(x, bs))
.collect(toList());
optionalEntries = l.stream().filter(x -> !
x.required()).toArray(RestMatcher[]::new);
requiredEntries = l.stream().filter(x ->
x.required()).toArray(RestMatcher[]::new);
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestObject.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestObject.java
index 86e2299..ec25af2 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestObject.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestObject.java
@@ -420,7 +420,7 @@ public abstract class RestObject {
public void onEndCall(HttpServletRequest req, HttpServletResponse res)
throws Exception {}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpArgList.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpArgList.java
index de4127f..86b5162 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpArgList.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpArgList.java
@@ -16,6 +16,7 @@ import static org.apache.juneau.assertions.Assertions.*;
import java.util.*;
+import org.apache.juneau.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.cp.*;
@@ -55,17 +56,16 @@ public class RestOpArgList {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<RestOpArgList> {
AList<Class<? extends RestOpArg>> entries;
- BeanStore beanStore;
- RestOpArgList impl;
/**
* Constructor.
*/
protected Builder() {
- this.entries = AList.create();
+ super(RestOpArgList.class);
+ entries = AList.create();
}
/**
@@ -74,20 +74,24 @@ public class RestOpArgList {
* @param copyFrom The builder being copied.
*/
protected Builder(Builder copyFrom) {
- this.entries = AList.of(copyFrom.entries);
+ super(copyFrom);
+ entries = AList.of(copyFrom.entries);
}
- /**
- * Creates a new {@link RestOpArgList} object using a snapshot
of the settings defined in this builder.
- *
- * @return A new {@link RestOpArgList} object.
- */
- public RestOpArgList build() {
- if (impl != null)
- return impl;
+ @Override /* BeanBuilder */
+ protected RestOpArgList buildDefault() {
return new RestOpArgList(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Prepends the specified rest op arg classes to the list.
*
@@ -100,25 +104,33 @@ public class RestOpArgList {
return this;
}
- /**
- * Creates a copy of this builder.
- *
- * @return A copy of this builder.
- */
- public Builder copy() {
- return new Builder(this);
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends RestOpArgList> value) {
+ super.type(value);
+ return this;
}
- /**
- * Specifies an already instantiated bean for the {@link
#build()} method to return.
- *
- * @param value The value for this setting.
- * @return This object.
- */
+ @Override /* BeanBuilder */
public Builder impl(RestOpArgList value) {
- impl = value;
+ super.impl(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
return this;
}
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
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 8d4d9ce..1f7b9be 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
@@ -1273,7 +1273,7 @@ public class RestOpContext extends BeanContext implements
Comparable<RestOpConte
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/*
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
index 226182c..468008f 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
@@ -13,11 +13,9 @@
package org.apache.juneau.rest;
import static org.apache.juneau.internal.ClassUtils.*;
-import static org.apache.juneau.internal.ObjectUtils.*;
-import static org.apache.juneau.rest.HttpRuntimeException.*;
-
import java.util.*;
+import org.apache.juneau.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.cp.*;
import org.apache.juneau.http.response.*;
@@ -58,39 +56,45 @@ public class RestOperations {
/**
* Builder class.
*/
- public static class Builder {
-
- TreeMap<String,TreeSet<RestOpContext>> map = new TreeMap<>();
- Set<RestOpContext> set = ASet.of();
+ public static class Builder extends BeanBuilder<RestOperations> {
- private BeanStore beanStore;
- private Class<? extends RestOperations> type;
- private RestOperations impl;
+ TreeMap<String,TreeSet<RestOpContext>> map;
+ Set<RestOpContext> set;
/**
- * Instantiates a {@link RestOperations} object based on the
contents of this builder.
- *
- * @return A new {@link RestOperations} object.
+ * Constructor.
*/
- public RestOperations build() {
- try {
- if (impl != null)
- return impl;
- return
BeanCreator.create(RestOperations.class).type(firstNonNull(type,
getDefaultImplClass())).store(beanStore).builder(this).run();
- } catch (Exception e) {
- throw toHttpException(e,
InternalServerError.class);
- }
+ protected Builder() {
+ super(RestOperations.class);
+ map = new TreeMap<>();
+ set = ASet.of();
}
/**
- * Specifies the default implementation class if not specified
via {@link #type(Class)}.
+ * Copy constructor.
*
- * @return The default implementation class if not specified
via {@link #type(Class)}.
+ * @param copyFrom The builder being copied.
*/
- protected Class<? extends RestOperations> getDefaultImplClass()
{
- return RestOperations.class;
+ protected Builder(Builder copyFrom) {
+ super(copyFrom);
+ map = new TreeMap<>(copyFrom.map);
+ set = ASet.of(copyFrom.set);
+ }
+
+ @Override /* BeanBuilder */
+ protected RestOperations buildDefault() {
+ return new RestOperations(this);
+ }
+
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
}
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Adds a method context to this builder.
*
@@ -117,49 +121,33 @@ public class RestOperations {
return this;
}
- /**
- * Specifies a {@link RestOperations} implementation subclass
to use.
- *
- * <p>
- * When specified, the {@link #build()} method will create an
instance of that class instead of the default {@link RestOperations}.
- *
- * <p>
- * The subclass must have a public constructor that takes in
any of the following arguments:
- * <ul>
- * <li>{@link Builder} - This object.
- * <li>Any beans found in the specified {@link
#beanStore(BeanStore) bean store}.
- * <li>Any {@link Optional} beans that may or may not be
found in the specified {@link #beanStore(BeanStore) bean store}.
- * </ul>
- *
- * @param value The implementation class to build.
- * @return This object.
- */
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
public Builder type(Class<? extends RestOperations> value) {
- type = value;
+ super.type(value);
return this;
}
- /**
- * Specifies a {@link BeanStore} to use when resolving
constructor arguments.
- *
- * @param value The bean store to use for resolving constructor
arguments.
- * @return This object.
- */
- public Builder beanStore(BeanStore value) {
- beanStore = value;
+ @Override /* BeanBuilder */
+ public Builder impl(RestOperations value) {
+ super.impl(value);
return this;
}
- /**
- * Specifies an already-instantiated bean for the {@link
#build()} method to return.
- *
- * @param value The value for this setting.
- * @return This object.
- */
- public Builder impl(RestOperations value) {
- impl = value;
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
return this;
}
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
+ return this;
+ }
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
index c46901f..d9eec9a 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
@@ -526,7 +526,7 @@ public abstract class RestServlet extends HttpServlet {
public void onEndCall(HttpServletRequest req, HttpServletResponse res)
throws Exception {}
//-----------------------------------------------------------------------------------------------------------------
- // Other methods.
+ // Other methods
//-----------------------------------------------------------------------------------------------------------------
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StaticFiles.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StaticFiles.java
index e35590f..c54d61a 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StaticFiles.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StaticFiles.java
@@ -86,6 +86,15 @@ public interface StaticFiles extends FileFinder {
return new BasicStaticFiles(this);
}
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Appends headers to add to HTTP responses.
*
@@ -206,11 +215,6 @@ public interface StaticFiles extends FileFinder {
// <FluentSetters>
@Override /* BeanBuilder */
- public Builder copy() {
- return new Builder(this);
- }
-
- @Override /* BeanBuilder */
public Builder type(Class<? extends StaticFiles> value) {
super.type(value);
return this;
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 4304b85..003f477 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
@@ -13,8 +13,6 @@
package org.apache.juneau.rest.logging;
import static org.apache.juneau.Enablement.*;
-import static org.apache.juneau.internal.ClassUtils.*;
-import static org.apache.juneau.rest.HttpRuntimeException.*;
import java.util.*;
import java.util.function.*;
@@ -25,7 +23,6 @@ import javax.servlet.http.*;
import org.apache.juneau.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.cp.*;
-import org.apache.juneau.http.response.*;
import org.apache.juneau.mstat.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
@@ -149,7 +146,7 @@ public interface RestLogger {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<RestLogger> {
Logger logger;
ThrownStore thrownStore;
@@ -158,14 +155,13 @@ public interface RestLogger {
Predicate<HttpServletRequest> enabledTest;
RestLoggingDetail requestDetail, responseDetail;
Level level;
- BeanStore beanStore;
- Class<? extends RestLogger> type;
- RestLogger impl;
/**
* Constructor.
*/
- protected Builder() {}
+ protected Builder() {
+ super(BasicRestLogger.class);
+ }
/**
* Copy constuctor.
@@ -173,6 +169,7 @@ public interface RestLogger {
* @param copyFrom The builder to copy.
*/
protected Builder(Builder copyFrom) {
+ super(copyFrom);
logger = copyFrom.logger;
thrownStore = copyFrom.thrownStore;
normalRules =
AList.<RestLoggerRule>create().append(copyFrom.normalRules);
@@ -182,52 +179,27 @@ public interface RestLogger {
requestDetail = copyFrom.requestDetail;
responseDetail = copyFrom.responseDetail;
level = copyFrom.level;
- beanStore = copyFrom.beanStore;
- type = copyFrom.type;
- impl = copyFrom.impl;
}
- /**
- * Creates a new {@link RestLogger} object from this builder.
- *
- * <p>
- * 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.
- */
- public RestLogger build() {
- try {
- if (impl != null)
- return impl;
- return
BeanCreator.create(RestLogger.class).type(isConcrete(type) ? type :
BasicRestLogger.class).store(beanStore).builder(this).findSingleton().run();
- } catch (Exception e) {
- throw toHttpException(e,
InternalServerError.class);
- }
+ @Override /* BeanBuilder */
+ protected RestLogger buildDefault() {
+ return new BasicRestLogger(this);
}
- /**
- * Specifies the bean store to use for instantiating the {@link
RestLogger} object.
- *
- * @param value The new value for this setting.
- * @return This object.
- */
- public Builder beanStore(BeanStore value) {
- beanStore = value;
- return this;
+ @Override /* BeanBuilder */
+ protected BeanCreator<? extends RestLogger> creator() {
+ return super.creator().findSingleton();
}
- /**
- * Specifies a subclass of {@link RestLogger} to create when
the {@link #build()} method is called.
- *
- * @param value The new value for this setting.
- * @return This object.
- */
- public Builder type(Class<? extends RestLogger> value) {
- type = value;
- return this;
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
}
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
/**
* Specifies the logger to use for logging the request.
*
@@ -505,25 +477,33 @@ public interface RestLogger {
return normalRules(values).debugRules(values);
}
- /**
- * Specifies an already-instantiated bean for the {@link
#build()} method to return.
- *
- * @param value The value for this setting.
- * @return This object.
- */
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends RestLogger> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
public Builder impl(RestLogger value) {
- impl = value;
+ super.impl(value);
return this;
}
- /**
- * Creates a copy of this builder.
- *
- * @return A copy of this builder.
- */
- public Builder copy() {
- return new Builder(this);
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
}
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
+ return this;
+ }
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLoggerRule.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLoggerRule.java
index 00fb92b..01e526c 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLoggerRule.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLoggerRule.java
@@ -19,6 +19,7 @@ import javax.servlet.http.*;
import org.apache.juneau.*;
import org.apache.juneau.collections.*;
+import org.apache.juneau.cp.*;
import org.apache.juneau.json.*;
/**
@@ -46,7 +47,7 @@ public class RestLoggerRule {
/**
* Builder class.
*/
- public static class Builder {
+ public static class Builder extends BeanBuilder<RestLoggerRule> {
Predicate<Integer> statusFilter;
Predicate<HttpServletRequest> requestFilter;
@@ -59,6 +60,46 @@ public class RestLoggerRule {
boolean logStackTrace;
/**
+ * Constructor.
+ */
+ protected Builder() {
+ super(RestLoggerRule.class);
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param copyFrom The builder being copied.
+ */
+ protected Builder(Builder copyFrom) {
+ super(copyFrom);
+ statusFilter = copyFrom.statusFilter;
+ requestFilter = copyFrom.requestFilter;
+ responseFilter = copyFrom.responseFilter;
+ exceptionFilter = copyFrom.exceptionFilter;
+ enabled = copyFrom.enabled;
+ enabledTest = copyFrom.enabledTest;
+ level = copyFrom.level;
+ requestDetail = copyFrom.requestDetail;
+ responseDetail = copyFrom.responseDetail;
+ logStackTrace = copyFrom.logStackTrace;
+ }
+
+ @Override /* BeanBuilder */
+ protected RestLoggerRule buildDefault() {
+ return new RestLoggerRule(this);
+ }
+
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
+ /**
* Apply a status-based predicate check for this rule to match
against.
*
* <h5 class='section'>Example:</h5>
@@ -283,14 +324,33 @@ public class RestLoggerRule {
return this;
}
- /**
- * Instantiates a new {@link RestLoggerRule} object using the
settings in this builder.
- *
- * @return A new {@link RestLoggerRule} object.
- */
- public RestLoggerRule build() {
- return new RestLoggerRule(this);
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends RestLoggerRule> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder impl(RestLoggerRule value) {
+ super.impl(value);
+ return this;
}
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
+ return this;
+ }
+
+ // </FluentSetters>
}
//-----------------------------------------------------------------------------------------------------------------