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 fd8fc7d PropertyStore refactoring.
fd8fc7d is described below
commit fd8fc7d6f0352b9cfbeaf4fb0f2951bca11d86c6
Author: JamesBognar <[email protected]>
AuthorDate: Sun Feb 7 19:37:49 2021 -0500
PropertyStore refactoring.
---
.../main/java/org/apache/juneau/config/Config.java | 10 ++--
.../java/org/apache/juneau/jena/RdfParser.java | 4 +-
.../main/java/org/apache/juneau/BeanContext.java | 2 +-
.../src/main/java/org/apache/juneau/Context.java | 6 +--
.../main/java/org/apache/juneau/PropertyStore.java | 59 +++++-----------------
.../java/org/apache/juneau/cp/BeanFactory.java | 16 ++++++
.../org/apache/juneau/html/HtmlDocSerializer.java | 2 +-
.../juneau/jsonschema/JsonSchemaGenerator.java | 2 +-
.../main/java/org/apache/juneau/xml/XmlParser.java | 6 +--
.../java/org/apache/juneau/xml/XmlSerializer.java | 2 +-
.../org/apache/juneau/rest/client/RestClient.java | 26 +++++-----
.../apache/juneau/rest/mock/MockRestClient.java | 4 +-
.../java/org/apache/juneau/rest/RestContext.java | 11 ++--
.../apache/juneau/rest/RestOperationContext.java | 4 +-
14 files changed, 70 insertions(+), 84 deletions(-)
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
index 9ac813d..d35b325 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
@@ -447,14 +447,14 @@ public final class Config extends Context implements
ConfigEventListener, Writab
super(ps, true);
name = ps.getString(CONFIG_name).orElse("Configuration.cfg");
- store = ps.getInstance(CONFIG_store, ConfigStore.class,
ConfigFileStore.DEFAULT);
+ store = ps.getInstance(CONFIG_store,
ConfigStore.class).orElse(ConfigFileStore.DEFAULT);
configMap = store.getMap(name);
configMap.register(this);
- serializer = ps.getInstance(CONFIG_serializer,
WriterSerializer.class, SimpleJsonSerializer.DEFAULT);
- parser = ps.getInstance(CONFIG_parser, ReaderParser.class,
JsonParser.DEFAULT);
+ serializer = ps.getInstance(CONFIG_serializer,
WriterSerializer.class).orElse(SimpleJsonSerializer.DEFAULT);
+ parser = ps.getInstance(CONFIG_parser,
ReaderParser.class).orElse(JsonParser.DEFAULT);
beanSession = parser.createBeanSession();
- encoder = ps.getInstance(CONFIG_encoder, ConfigEncoder.class,
ConfigXorEncoder.INSTANCE);
- varSession = ps.getInstance(CONFIG_varResolver,
VarResolver.class, VarResolver.DEFAULT)
+ encoder = ps.getInstance(CONFIG_encoder,
ConfigEncoder.class).orElse(ConfigXorEncoder.INSTANCE);
+ varSession = ps.getInstance(CONFIG_varResolver,
VarResolver.class).orElse(VarResolver.DEFAULT)
.builder()
.vars(ConfigVar.class)
.bean(Config.class, this)
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index c745d22..d4347a5 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -131,8 +131,8 @@ public class RdfParser extends ReaderParser implements
RdfCommon, RdfMetaProvide
trimWhitespace =
ps.getBoolean(RDF_trimWhitespace).orElse(false);
looseCollections =
ps.getBoolean(RDF_looseCollections).orElse(false);
rdfLanguage =
ps.getString(RDF_language).orElse("RDF/XML-ABBREV");
- juneauNs = ps.getInstance(RDF_juneauNs, Namespace.class,
DEFAULT_JUNEAU_NS);
- juneauBpNs = ps.getInstance(RDF_juneauBpNs, Namespace.class,
DEFAULT_JUNEAUBP_NS);
+ juneauNs = ps.getInstance(RDF_juneauNs,
Namespace.class).orElse(DEFAULT_JUNEAU_NS);
+ juneauBpNs = ps.getInstance(RDF_juneauBpNs,
Namespace.class).orElse(DEFAULT_JUNEAUBP_NS);
collectionFormat = ps.get(RDF_collectionFormat,
RdfCollectionFormat.class).orElse(RdfCollectionFormat.DEFAULT);
ASortedMap<String,Object> m = ASortedMap.create();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index ba63e90..5c82386 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -2135,7 +2135,7 @@ public class BeanContext extends Context implements
MetaProvider {
notBeanClasses =
ps.getClassArray(BEAN_notBeanClasses).orElse(DEFAULT_NOTBEAN_CLASSES);
- propertyNamer = ps.getInstance(BEAN_propertyNamer,
PropertyNamer.class, BasicPropertyNamer.class);
+ propertyNamer = ps.getInstance(BEAN_propertyNamer,
PropertyNamer.class).orElseGet(BasicPropertyNamer::new);
List<String> l1 = new LinkedList<>();
List<String> l2 = new LinkedList<>();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index 0454001..efc39d6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -342,9 +342,9 @@ public abstract class Context {
ps = propertyStore;
this.identityCode = allowReuse ? new
HashCode().add(getClass().getName()).add(ps).get() :
System.identityHashCode(this);
debug = ps.getBoolean(CONTEXT_debug).orElse(false);
- locale = ps.getInstance(CONTEXT_locale, Locale.class,
Locale.getDefault());
- timeZone = ps.getInstance(CONTEXT_timeZone, TimeZone.class);
- mediaType = ps.getInstance(CONTEXT_mediaType, MediaType.class);
+ locale = ps.getInstance(CONTEXT_locale,
Locale.class).orElseGet(()->Locale.getDefault());
+ timeZone = ps.getInstance(CONTEXT_timeZone,
TimeZone.class).orElse(null);
+ mediaType = ps.getInstance(CONTEXT_mediaType,
MediaType.class).orElse(null);
}
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
index a694ea4..f20ed3f 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
@@ -20,7 +20,6 @@ import java.lang.reflect.*;
import java.util.*;
import org.apache.juneau.PropertyStoreBuilder.*;
-import org.apache.juneau.assertions.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.cp.*;
import org.apache.juneau.internal.*;
@@ -474,34 +473,14 @@ public final class PropertyStore {
/**
* Returns an instance of the specified class, string, or object
property.
*
- * <p>
- * If instantiating a class, assumes the class has a no-arg constructor.
- * Otherwise, throws a runtime exception.
- *
* @param key The property name.
* @param type The class type of the property.
- * @param def
- * The default value if the property doesn't exist.
- * <br>Can either be an instance of <c>T</c>, or a
<code>Class<? <jk>extends</jk> T></code>, or <jk>null</jk>.
+ * @param beanFactory The bean factory to use for instantiating the
bean.
* @return A new property instance.
*/
- public <T> T getInstance(String key, Class<T> type, Object def) {
- return getInstance(key, type, def, new BeanFactory());
- }
-
- /**
- * Returns an instance of the specified class, string, or object
property.
- *
- * <p>
- * If instantiating a class, assumes the class has a no-arg constructor.
- * Otherwise, throws a runtime exception.
- *
- * @param key The property name.
- * @param type The class type of the property.
- * @return A new property instance or <jk>null</jk> if the property
doesn't exist.
- */
- public <T> T getInstance(String key, Class<T> type) {
- return getInstance(key, type, null);
+ public <T> Optional<T> getInstance(String key, Class<T> type,
BeanFactory beanFactory) {
+ Property p = findProperty(key);
+ return Optional.ofNullable(p == null ? null :
p.asInstance(type, beanFactory));
}
/**
@@ -509,29 +488,10 @@ public final class PropertyStore {
*
* @param key The property name.
* @param type The class type of the property.
- * @param def
- * The default value if the property doesn't exist.
- * <br>Can either be an instance of <c>T</c>, or a
<code>Class<? <jk>extends</jk> T></code>.
- * @param beanFactory The bean factory to use for instantiating the
bean.
* @return A new property instance.
*/
- public <T> T getInstance(String key, Class<T> type, Object def,
BeanFactory beanFactory) {
- Assertions.assertArgNotNull("type", type);
- Property p = findProperty(key);
- if (p != null)
- return p.asInstance(type, beanFactory);
- if (def == null)
- return null;
- if (def instanceof Class) {
- try {
- return beanFactory.createBean((Class<T>)def);
- } catch (ExecutableException e) {
- throw new ConfigException(e, "Could not
instantiate property ''{0}'' as type ''{1}'' with default value ''{2}''", key,
type, def);
- }
- }
- if (type.isInstance(def))
- return (T)def;
- throw new ConfigException("Could not instantiate property
''{0}'' as type ''{1}'' with default value ''{2}''", key, type, def);
+ public <T> Optional<T> getInstance(String key, Class<T> type) {
+ return getInstance(key, type, null);
}
/**
@@ -967,12 +927,17 @@ public final class PropertyStore {
// Utility methods
//-------------------------------------------------------------------------------------------------------------------
+ static BeanFactory DEFAULT_BEAN_FACTORY = BeanFactory.create().build();
+
static <T> T instantiate(BeanFactory beanFactory, Class<T> c, Object
value) {
if (ClassInfo.of(c).isParentOf(value.getClass()))
return (T)value;
try {
- if
(ClassInfo.of(value.getClass()).isChildOf(Class.class))
+ if
(ClassInfo.of(value.getClass()).isChildOf(Class.class)) {
+ if (beanFactory == null)
+ beanFactory = DEFAULT_BEAN_FACTORY;
return beanFactory.createBean((Class<T>)value);
+ }
} catch (ExecutableException e) {
throw new ConfigException(e, "Could not create bean of
type ''{0}''.", value);
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanFactory.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanFactory.java
index 5499d7b..68e18a9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanFactory.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanFactory.java
@@ -261,6 +261,22 @@ public class BeanFactory {
}
/**
+ * Same as {@link #createBean(Class)} but returns the bean creation
wrapped in a supplier.
+ *
+ * @param c The bean type to create.
+ * @return A supplier for the newly-created bean.
+ */
+ public <T> Supplier<T> createBeanSupplier(Class<T> c) {
+ return () -> {
+ try {
+ return createBean(c);
+ } catch (ExecutableException e) {
+ throw new RuntimeException(e);
+ }
+ };
+ }
+
+ /**
* Create a method finder for finding bean creation methods.
*
* <h5 class='section'>Example:</h5>
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
index ff56aa8..aad4f1e 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
@@ -775,7 +775,7 @@ public class HtmlDocSerializer extends
HtmlStrippedDocSerializer {
nowrap = ps.getBoolean(HTMLDOC_nowrap).orElse(false);
navlinks = ps.getArray(HTMLDOC_navlinks,
String.class).orElse(new String[0]);
noResultsMessage =
ps.getString(HTMLDOC_noResultsMessage).orElse("<p>no results</p>");
- template = ps.getInstance(HTMLDOC_template,
HtmlDocTemplate.class, BasicHtmlDocTemplate.class);
+ template = ps.getInstance(HTMLDOC_template,
HtmlDocTemplate.class).orElseGet(BasicHtmlDocTemplate::new);
widgets = new HtmlWidgetMap();
widgets.append(ps.getInstanceArray(HTMLDOC_widgets,
HtmlWidget.class));
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
index 3dda385..b37469c 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
@@ -321,7 +321,7 @@ public class JsonSchemaGenerator extends
BeanTraverseContext implements JsonSche
useBeanDefs =
ps.getBoolean(JSONSCHEMA_useBeanDefs).orElse(false);
allowNestedExamples =
ps.getBoolean(JSONSCHEMA_allowNestedExamples).orElse(false);
allowNestedDescriptions =
ps.getBoolean(JSONSCHEMA_allowNestedDescriptions).orElse(false);
- beanDefMapper = ps.getInstance(JSONSCHEMA_beanDefMapper,
BeanDefMapper.class, BasicBeanDefMapper.class);
+ beanDefMapper = ps.getInstance(JSONSCHEMA_beanDefMapper,
BeanDefMapper.class).orElseGet(BasicBeanDefMapper::new);
addExamplesTo =
TypeCategory.parse(ps.getString(JSONSCHEMA_addExamplesTo).orElse(null));
addDescriptionsTo =
TypeCategory.parse(ps.getString(JSONSCHEMA_addDescriptionsTo).orElse(null));
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
index 55e4458..8c7d4ab 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
@@ -254,9 +254,9 @@ public class XmlParser extends ReaderParser implements
XmlMetaProvider, XmlCommo
super(ps, consumes);
validating = ps.getBoolean(XML_validating).orElse(false);
preserveRootElement =
ps.getBoolean(XML_preserveRootElement).orElse(false);
- reporter = ps.getInstance(XML_reporter, XMLReporter.class);
- resolver = ps.getInstance(XML_resolver, XMLResolver.class);
- eventAllocator = ps.getInstance(XML_eventAllocator,
XMLEventAllocator.class);
+ reporter = ps.getInstance(XML_reporter,
XMLReporter.class).orElse(null);
+ resolver = ps.getInstance(XML_resolver,
XMLResolver.class).orElse(null);
+ eventAllocator = ps.getInstance(XML_eventAllocator,
XMLEventAllocator.class).orElse(null);
}
@Override /* Context */
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index c1bd134..3d7d563 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -516,7 +516,7 @@ public class XmlSerializer extends WriterSerializer
implements XmlMetaProvider,
autoDetectNamespaces = !
ps.getBoolean(XML_disableAutoDetectNamespaces).orElse(false);
enableNamespaces =
ps.getBoolean(XML_enableNamespaces).orElse(false);
addNamespaceUrlsToRoot =
ps.getBoolean(XML_addNamespaceUrisToRoot).orElse(false);
- defaultNamespace = ps.getInstance(XML_defaultNamespace,
Namespace.class, DEFAULT_JUNEAU_NAMESPACE);
+ defaultNamespace = ps.getInstance(XML_defaultNamespace,
Namespace.class).orElse(DEFAULT_JUNEAU_NAMESPACE);
addBeanTypes = ps.getFirstBoolean(XML_addBeanTypes,
SERIALIZER_addBeanTypes).orElse(false);
namespaces = ps.getInstanceArray(XML_namespaces,
Namespace.class);
}
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 fc11a4e..ff3ddc3 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
@@ -2038,20 +2038,20 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable, Re
@SuppressWarnings("unchecked")
protected RestClient(PropertyStore ps) {
super(ps);
- this.httpClient = ps.getInstance(RESTCLIENT_httpClient,
CloseableHttpClient.class);
- this.connectionManager =
ps.getInstance(RESTCLIENT_connectionManager, HttpClientConnectionManager.class);
+ this.httpClient = ps.getInstance(RESTCLIENT_httpClient,
CloseableHttpClient.class).orElse(null);
+ this.connectionManager =
ps.getInstance(RESTCLIENT_connectionManager,
HttpClientConnectionManager.class).orElse(null);
this.keepHttpClientOpen =
ps.getBoolean(RESTCLIENT_keepHttpClientOpen).orElse(false);
- this.errorCodes = ps.getInstance(RESTCLIENT_errorCodes,
Predicate.class, ERROR_CODES_DEFAULT);
+ this.errorCodes = ps.getInstance(RESTCLIENT_errorCodes,
Predicate.class).orElse(ERROR_CODES_DEFAULT);
this.executorServiceShutdownOnClose =
ps.getBoolean(RESTCLIENT_executorServiceShutdownOnClose).orElse(false);
this.rootUri =
StringUtils.nullIfEmpty(ps.getString(RESTCLIENT_rootUri).orElse("").replaceAll("\\/$",
""));
this.leakDetection =
ps.getBoolean(RESTCLIENT_leakDetection).orElse(isDebug());
this.ignoreErrors =
ps.getBoolean(RESTCLIENT_ignoreErrors).orElse(false);
- this.logger = ps.getInstance(RESTCLIENT_logger, Logger.class,
Logger.getLogger(RestClient.class.getName()));
- this.logRequests = ps.getInstance(RESTCLIENT_logRequests,
DetailLevel.class, isDebug() ? DetailLevel.FULL : DetailLevel.NONE);
- this.logRequestsLevel =
ps.getInstance(RESTCLIENT_logRequestsLevel, Level.class, isDebug() ?
Level.WARNING : Level.OFF);
+ this.logger = ps.getInstance(RESTCLIENT_logger,
Logger.class).orElseGet(()->Logger.getLogger(RestClient.class.getName()));
+ this.logRequests = ps.getInstance(RESTCLIENT_logRequests,
DetailLevel.class).orElse(isDebug() ? DetailLevel.FULL : DetailLevel.NONE);
+ this.logRequestsLevel =
ps.getInstance(RESTCLIENT_logRequestsLevel, Level.class).orElse(isDebug() ?
Level.WARNING : Level.OFF);
this.logToConsole =
ps.getBoolean(RESTCLIENT_logToConsole).orElse(isDebug());
- this.console = ps.getInstance(RESTCLIENT_console,
PrintStream.class, System.err);
- this.logRequestsPredicate =
ps.getInstance(RESTCLIENT_logRequestsPredicate, BiPredicate.class,
LOG_REQUESTS_PREDICATE_DEFAULT);
+ this.console = ps.getInstance(RESTCLIENT_console,
PrintStream.class).orElse(System.err);
+ this.logRequestsPredicate =
ps.getInstance(RESTCLIENT_logRequestsPredicate,
BiPredicate.class).orElse(LOG_REQUESTS_PREDICATE_DEFAULT);
SerializerGroupBuilder sgb = SerializerGroup.create();
for (Object o : ps.getArray(RESTCLIENT_serializers,
Object.class).orElse(new Object[0])) {
@@ -2083,14 +2083,14 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable, Re
}
this.parsers = pgb.build();
- BeanFactory beanFactory = new BeanFactory()
+ BeanFactory bf = new BeanFactory()
.addBean(PropertyStore.class, ps)
.addBean(RestClient.class, this);
this.urlEncodingSerializer = new
SerializerBuilder(ps).build(UrlEncodingSerializer.class);
- this.partSerializer = ps.getInstance(RESTCLIENT_partSerializer,
HttpPartSerializer.class, OpenApiSerializer.class, beanFactory);
- this.partParser = ps.getInstance(RESTCLIENT_partParser,
HttpPartParser.class, OpenApiParser.class, beanFactory);
- this.executorService =
ps.getInstance(RESTCLIENT_executorService, ExecutorService.class, null);
+ this.partSerializer = ps.getInstance(RESTCLIENT_partSerializer,
HttpPartSerializer.class,
bf).orElseGet(bf.createBeanSupplier(OpenApiSerializer.class));
+ this.partParser = ps.getInstance(RESTCLIENT_partParser,
HttpPartParser.class, bf).orElseGet(bf.createBeanSupplier(OpenApiParser.class));
+ this.executorService =
ps.getInstance(RESTCLIENT_executorService, ExecutorService.class).orElse(null);
HttpPartSerializerSession partSerializerSession =
partSerializer.createPartSession(null);
@@ -2121,7 +2121,7 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable, Re
formData.add(BasicNameValuePair.cast(o));
}
- this.callHandler = ps.getInstance(RESTCLIENT_callHandler,
RestCallHandler.class, BasicRestCallHandler.class, beanFactory);
+ this.callHandler = ps.getInstance(RESTCLIENT_callHandler,
RestCallHandler.class,
bf).orElseGet(bf.createBeanSupplier(BasicRestCallHandler.class));
this.interceptors =
ps.getInstanceArray(RESTCLIENT_interceptors, RestCallInterceptor.class);
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
index bb18e91..81d877c 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
@@ -256,7 +256,7 @@ public class MockRestClient extends RestClient implements
HttpClientConnection {
public MockRestClient(PropertyStore ps) {
super(preInit(ps));
ps = getPropertyStore();
- this.restBeanCtx = ps.getInstance(MOCKRESTCLIENT_restBeanCtx,
RestContext.class);
+ this.restBeanCtx = ps.getInstance(MOCKRESTCLIENT_restBeanCtx,
RestContext.class).get();
this.restObject = restBeanCtx.getResource();
this.contextPath =
ps.getString(MOCKRESTCLIENT_contextPath).orElse("");
this.servletPath =
ps.getString(MOCKRESTCLIENT_servletPath).orElse("");
@@ -270,7 +270,7 @@ public class MockRestClient extends RestClient implements
HttpClientConnection {
private static PropertyStore preInit(PropertyStore ps) {
try {
PropertyStoreBuilder psb = ps.builder();
- Object restBean =
ps.getInstance(MOCKRESTCLIENT_restBean, Object.class, null);
+ Object restBean =
ps.getInstance(MOCKRESTCLIENT_restBean, Object.class).orElse(null);
String contextPath = ps.get(MOCKRESTCLIENT_contextPath,
String.class).orElse(null);
String servletPath = ps.get(MOCKRESTCLIENT_servletPath,
String.class).orElse(null);
String rootUrl = ps.get(RESTCLIENT_rootUri,
String.class).orElse("http://localhost");
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 83ef20a..fdc1c56 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
@@ -4411,7 +4411,7 @@ public class RestContext extends BeanContext {
x = (HttpPartSerializer)resource;
if (x == null)
- x = properties.getInstance(REST_partSerializer,
HttpPartSerializer.class, null, beanFactory);
+ x = properties.getInstance(REST_partSerializer,
HttpPartSerializer.class, beanFactory).orElse(null);
if (x == null)
x =
beanFactory.getBean(HttpPartSerializer.class).orElse(null);
@@ -4476,7 +4476,7 @@ public class RestContext extends BeanContext {
x = (HttpPartParser)resource;
if (x == null)
- x = properties.getInstance(REST_partParser,
HttpPartParser.class, null, beanFactory);
+ x = properties.getInstance(REST_partParser,
HttpPartParser.class, beanFactory).orElse(null);
if (x == null)
x =
beanFactory.getBean(HttpPartParser.class).orElse(null);
@@ -5306,9 +5306,14 @@ public class RestContext extends BeanContext {
.withDefault(x)
.run();
- Enablement defaultDebug = properties.getInstance(REST_debug,
Enablement.class, properties.getInstance(REST_debugDefault, Enablement.class,
null));
+ Enablement defaultDebug = properties.getInstance(REST_debug,
Enablement.class).orElse(null);
+
+ if (defaultDebug == null)
+ defaultDebug =
properties.getInstance(REST_debugDefault, Enablement.class).orElse(null);
+
if (defaultDebug == null)
defaultDebug = isDebug() ? Enablement.ALWAYS :
Enablement.NEVER;
+
x.defaultEnable(defaultDebug);
for (Map.Entry<String,String> e :
splitMap(properties.getString(REST_debugOn).orElse(""), true).entrySet()) {
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
index 0126d2d..e0634b4 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
@@ -1229,7 +1229,7 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
x = (HttpPartSerializer)resource;
if (x == null)
- x = ps.getInstance(REST_partSerializer,
HttpPartSerializer.class, null, beanFactory);
+ x = ps.getInstance(REST_partSerializer,
HttpPartSerializer.class, beanFactory).orElse(null);
if (x == null)
x =
beanFactory.getBean(HttpPartSerializer.class).orElse(null);
@@ -1287,7 +1287,7 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
x = (HttpPartParser)resource;
if (x == null)
- x = ps.getInstance(REST_partParser,
HttpPartParser.class, null, beanFactory);
+ x = ps.getInstance(REST_partParser,
HttpPartParser.class, beanFactory).orElse(null);
if (x == null)
x =
beanFactory.getBean(HttpPartParser.class).orElse(null);