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 7afba22  PropertyStore refactoring.
7afba22 is described below

commit 7afba22ec7640b4e1051963a0b122df7586df9a1
Author: JamesBognar <[email protected]>
AuthorDate: Sun Feb 7 16:31:13 2021 -0500

    PropertyStore refactoring.
---
 .../juneau/config/store/ConfigFileStore.java       |  4 +--
 .../java/org/apache/juneau/jena/RdfParser.java     |  4 +--
 .../java/org/apache/juneau/jena/RdfSerializer.java | 12 ++++----
 .../main/java/org/apache/juneau/BeanContext.java   | 32 ++++++++++----------
 .../org/apache/juneau/BeanTraverseContext.java     |  4 +--
 .../src/main/java/org/apache/juneau/Context.java   |  2 +-
 .../main/java/org/apache/juneau/PropertyStore.java | 35 +++++++++++-----------
 .../org/apache/juneau/html/HtmlDocSerializer.java  |  2 +-
 .../org/apache/juneau/html/HtmlSerializer.java     |  8 ++---
 .../java/org/apache/juneau/json/JsonParser.java    |  2 +-
 .../org/apache/juneau/json/JsonSerializer.java     |  6 ++--
 .../juneau/jsonschema/JsonSchemaGenerator.java     |  6 ++--
 .../apache/juneau/msgpack/MsgPackSerializer.java   |  2 +-
 .../main/java/org/apache/juneau/parser/Parser.java |  8 ++---
 .../org/apache/juneau/serializer/Serializer.java   | 16 +++++-----
 .../apache/juneau/serializer/WriterSerializer.java |  2 +-
 .../main/java/org/apache/juneau/uon/UonParser.java |  4 +--
 .../java/org/apache/juneau/uon/UonSerializer.java  |  4 +--
 .../juneau/urlencoding/UrlEncodingParser.java      |  2 +-
 .../juneau/urlencoding/UrlEncodingSerializer.java  |  2 +-
 .../main/java/org/apache/juneau/xml/XmlParser.java |  4 +--
 .../java/org/apache/juneau/xml/XmlSerializer.java  |  8 ++---
 .../org/apache/juneau/rest/client/RestClient.java  | 10 +++----
 .../java/org/apache/juneau/rest/RestContext.java   |  4 +--
 .../apache/juneau/rest/RestOperationContext.java   |  2 +-
 .../java/org/apache/juneau/ContextCacheTest.java   |  2 +-
 26 files changed, 94 insertions(+), 93 deletions(-)

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 b523655..3c090cc 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
@@ -241,10 +241,10 @@ public class ConfigFileStore extends ConfigStore {
                        dir = new File(ps.getString(FILESTORE_directory, 
".")).getCanonicalFile();
                        dir.mkdirs();
                        charset = ps.get(FILESTORE_charset, 
Charset.class).orElse(Charset.defaultCharset());
-                       updateOnWrite = 
ps.getBoolean(FILESTORE_enableUpdateOnWrite);
+                       updateOnWrite = 
ps.getBoolean(FILESTORE_enableUpdateOnWrite).orElse(false);
                        extensions = ps.getCdl(FILESTORE_extensions, "cfg");
                        WatcherSensitivity ws = 
ps.get(FILESTORE_watcherSensitivity, 
WatcherSensitivity.class).orElse(WatcherSensitivity.MEDIUM);
-                       watcher = ps.getBoolean(FILESTORE_enableWatcher) ? new 
WatcherThread(dir, ws) : null;
+                       watcher = 
ps.getBoolean(FILESTORE_enableWatcher).orElse(false) ? new WatcherThread(dir, 
ws) : null;
                        if (watcher != null)
                                watcher.start();
 
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 c2cebbd..d82023b 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
@@ -128,8 +128,8 @@ public class RdfParser extends ReaderParser implements 
RdfCommon, RdfMetaProvide
         */
        public RdfParser(PropertyStore ps, String...consumes) {
                super(ps, consumes);
-               trimWhitespace = ps.getBoolean(RDF_trimWhitespace);
-               looseCollections = ps.getBoolean(RDF_looseCollections);
+               trimWhitespace = 
ps.getBoolean(RDF_trimWhitespace).orElse(false);
+               looseCollections = 
ps.getBoolean(RDF_looseCollections).orElse(false);
                rdfLanguage = ps.getString(RDF_language, "RDF/XML-ABBREV");
                juneauNs = ps.getInstance(RDF_juneauNs, Namespace.class, 
DEFAULT_JUNEAU_NS);
                juneauBpNs = ps.getInstance(RDF_juneauBpNs, Namespace.class, 
DEFAULT_JUNEAUBP_NS);
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 8af4ee8..f6adbcf 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -290,17 +290,17 @@ public class RdfSerializer extends WriterSerializer 
implements RdfCommon, RdfMet
         */
        public RdfSerializer(PropertyStore ps, String produces, String accept) {
                super(ps, produces, accept);
-               addLiteralTypes = ps.getBoolean(RDF_addLiteralTypes);
-               addRootProperty = ps.getBoolean(RDF_addRootProperty);
-               useXmlNamespaces = ! ps.getBoolean(RDF_disableUseXmlNamespaces);
-               looseCollections = ps.getBoolean(RDF_looseCollections);
-               autoDetectNamespaces = ! 
ps.getBoolean(RDF_disableAutoDetectNamespaces);
+               addLiteralTypes = 
ps.getBoolean(RDF_addLiteralTypes).orElse(false);
+               addRootProperty = 
ps.getBoolean(RDF_addRootProperty).orElse(false);
+               useXmlNamespaces = ! 
ps.getBoolean(RDF_disableUseXmlNamespaces).orElse(false);
+               looseCollections = 
ps.getBoolean(RDF_looseCollections).orElse(false);
+               autoDetectNamespaces = ! 
ps.getBoolean(RDF_disableAutoDetectNamespaces).orElse(false);
                rdfLanguage = ps.getString(RDF_language, "RDF/XML-ABBREV");
                juneauNs = ps.get(RDF_juneauNs, 
Namespace.class).orElse(DEFAULT_JUNEAU_NS);
                juneauBpNs = ps.get(RDF_juneauBpNs, 
Namespace.class).orElse(DEFAULT_JUNEAUBP_NS);
                collectionFormat = ps.get(RDF_collectionFormat, 
RdfCollectionFormat.class).orElse(RdfCollectionFormat.DEFAULT);
                namespaces = ps.get(RDF_namespaces, 
Namespace[].class).orElse(new Namespace[0]);
-               addBeanTypes = ps.getBoolean(RDF_addBeanTypes, 
ps.getBoolean(SERIALIZER_addBeanTypes));
+               addBeanTypes = ps.getFirstBoolean(RDF_addBeanTypes, 
SERIALIZER_addBeanTypes).orElse(false);
 
                ASortedMap<String,Object> m = ASortedMap.create();
                for (String k : getPropertyKeys("RdfCommon"))
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 2ad81ac..fb83ab6 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
@@ -2110,22 +2110,22 @@ public class BeanContext extends Context implements 
MetaProvider {
                }
                this.annotations = rmb.build();
 
-               beansRequireDefaultConstructor = 
ps.getBoolean(BEAN_beansRequireDefaultConstructor);
-               beansRequireSerializable = 
ps.getBoolean(BEAN_beansRequireSerializable);
-               beansRequireSettersForGetters = 
ps.getBoolean(BEAN_beansRequireSettersForGetters);
-               beansRequireSomeProperties = ! 
ps.getBoolean(BEAN_disableBeansRequireSomeProperties);
-               beanMapPutReturnsOldValue = 
ps.getBoolean(BEAN_beanMapPutReturnsOldValue);
-               useEnumNames = ps.getBoolean(BEAN_useEnumNames);
-               useInterfaceProxies = ! 
ps.getBoolean(BEAN_disableInterfaceProxies);
-               ignoreUnknownBeanProperties = 
ps.getBoolean(BEAN_ignoreUnknownBeanProperties);
-               ignoreUnknownNullBeanProperties = ! 
ps.getBoolean(BEAN_disableIgnoreUnknownNullBeanProperties);
-               ignoreMissingSetters = ! 
ps.getBoolean(BEAN_disableIgnoreMissingSetters);
-               ignoreTransientFields = ! 
ps.getBoolean(BEAN_disableIgnoreTransientFields);
-               ignoreInvocationExceptionsOnGetters = 
ps.getBoolean(BEAN_ignoreInvocationExceptionsOnGetters);
-               ignoreInvocationExceptionsOnSetters = 
ps.getBoolean(BEAN_ignoreInvocationExceptionsOnSetters);
-               useJavaBeanIntrospector = 
ps.getBoolean(BEAN_useJavaBeanIntrospector);
-               sortProperties = ps.getBoolean(BEAN_sortProperties);
-               findFluentSetters = ps.getBoolean(BEAN_findFluentSetters);
+               beansRequireDefaultConstructor = 
ps.getBoolean(BEAN_beansRequireDefaultConstructor).orElse(false);
+               beansRequireSerializable = 
ps.getBoolean(BEAN_beansRequireSerializable).orElse(false);
+               beansRequireSettersForGetters = 
ps.getBoolean(BEAN_beansRequireSettersForGetters).orElse(false);
+               beansRequireSomeProperties = ! 
ps.getBoolean(BEAN_disableBeansRequireSomeProperties).orElse(false);
+               beanMapPutReturnsOldValue = 
ps.getBoolean(BEAN_beanMapPutReturnsOldValue).orElse(false);
+               useEnumNames = ps.getBoolean(BEAN_useEnumNames).orElse(false);
+               useInterfaceProxies = ! 
ps.getBoolean(BEAN_disableInterfaceProxies).orElse(false);
+               ignoreUnknownBeanProperties = 
ps.getBoolean(BEAN_ignoreUnknownBeanProperties).orElse(false);
+               ignoreUnknownNullBeanProperties = ! 
ps.getBoolean(BEAN_disableIgnoreUnknownNullBeanProperties).orElse(false);
+               ignoreMissingSetters = ! 
ps.getBoolean(BEAN_disableIgnoreMissingSetters).orElse(false);
+               ignoreTransientFields = ! 
ps.getBoolean(BEAN_disableIgnoreTransientFields).orElse(false);
+               ignoreInvocationExceptionsOnGetters = 
ps.getBoolean(BEAN_ignoreInvocationExceptionsOnGetters).orElse(false);
+               ignoreInvocationExceptionsOnSetters = 
ps.getBoolean(BEAN_ignoreInvocationExceptionsOnSetters).orElse(false);
+               useJavaBeanIntrospector = 
ps.getBoolean(BEAN_useJavaBeanIntrospector).orElse(false);
+               sortProperties = 
ps.getBoolean(BEAN_sortProperties).orElse(false);
+               findFluentSetters = 
ps.getBoolean(BEAN_findFluentSetters).orElse(false);
                typePropertyName = ps.getString(BEAN_typePropertyName, "_type");
 
                beanConstructorVisibility = 
ps.get(BEAN_beanConstructorVisibility, Visibility.class).orElse(PUBLIC);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
index 1163bee..f77131b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
@@ -273,8 +273,8 @@ public abstract class BeanTraverseContext extends 
BeanContext {
 
                maxDepth = ps.getInteger(BEANTRAVERSE_maxDepth, 100);
                initialDepth = ps.getInteger(BEANTRAVERSE_initialDepth, 0);
-               ignoreRecursions = ps.getBoolean(BEANTRAVERSE_ignoreRecursions);
-               detectRecursions = ps.getBoolean(BEANTRAVERSE_detectRecursions, 
ignoreRecursions);
+               ignoreRecursions = 
ps.getBoolean(BEANTRAVERSE_ignoreRecursions).orElse(false);
+               detectRecursions = 
ps.getBoolean(BEANTRAVERSE_detectRecursions).orElse(ignoreRecursions);
        }
 
        @Override /* Context */
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 71bf075..0454001 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
@@ -341,7 +341,7 @@ public abstract class Context {
                propertyStore = ps == null ? PropertyStore.DEFAULT : ps;
                ps = propertyStore;
                this.identityCode = allowReuse ? new 
HashCode().add(getClass().getName()).add(ps).get() : 
System.identityHashCode(this);
-               debug = ps.getBoolean(CONTEXT_debug);
+               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);
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 09e4486..8c55492 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
@@ -315,20 +315,17 @@ public final class PropertyStore {
                return Optional.empty();
        }
 
-       /**
-        * Returns the property value with the specified name.
-        *
-        * @param key The property name.
-        * @param c The class to cast or convert the value to.
-        * @param def The default value.
-        * @return The property value, or the default value if it doesn't exist.
-        */
        @Deprecated
        private <T> T get(String key, Class<T> c, T def) {
                Property p = findProperty(key);
                return p == null ? def : p.as(c);
        }
 
+       private <T> T find(String key, Class<T> c) {
+               Property p = findProperty(key);
+               return p == null ? null : p.as(c);
+       }
+
        /**
         * Returns the property value with the specified name.
         *
@@ -345,21 +342,25 @@ public final class PropertyStore {
         * Shortcut for calling <code>getProperty(key, Boolean.<jk>class</jk>, 
def)</code>.
         *
         * @param key The property name.
-        * @param def The default value.
-        * @return The property value, or the default value if it doesn't exist.
+        * @return The property value, never <jk>null</jk>.
         */
-       public final Boolean getBoolean(String key, Boolean def) {
-               return get(key, Boolean.class, def);
+       public final Optional<Boolean> getBoolean(String key) {
+               return Optional.ofNullable(find(key, Boolean.class));
        }
 
        /**
-        * Shortcut for calling <code>getProperty(key, Boolean.<jk>class</jk>, 
<jk>false</jk>)</code>.
+        * Similar to {@link #getBoolean(String)} but looks for multiple keys 
and returns the value of the first one present.
         *
-        * @param key The property name.
-        * @return The property value, or <jk>false</jk> if it doesn't exist.
+        * @param keys The property names.
+        * @return The property value, never <jk>null</jk>.
         */
-       public final boolean getBoolean(String key) {
-               return getBoolean(key, false);
+       public final Optional<Boolean> getFirstBoolean(String...keys) {
+               for (String k : keys) {
+                       Boolean o = find(k, Boolean.class);
+                       if (o != null)
+                               return Optional.of(o);
+               }
+               return Optional.empty();
        }
 
        /**
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 d8999a0..3a6d5b0a 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
@@ -772,7 +772,7 @@ public class HtmlDocSerializer extends 
HtmlStrippedDocSerializer {
                aside = ps.getArray(HTMLDOC_aside, String.class);
                asideFloat = ps.get(HTMLDOC_asideFloat, 
AsideFloat.class).orElse(AsideFloat.RIGHT);
                footer = ps.getArray(HTMLDOC_footer, String.class);
-               nowrap = ps.getBoolean(HTMLDOC_nowrap);
+               nowrap = ps.getBoolean(HTMLDOC_nowrap).orElse(false);
                navlinks = ps.getArray(HTMLDOC_navlinks, String.class);
                noResultsMessage = ps.getString(HTMLDOC_noResultsMessage, 
"<p>no results</p>");
                template = ps.getInstance(HTMLDOC_template, 
HtmlDocTemplate.class, BasicHtmlDocTemplate.class);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index 425b26a..e5d7035 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -716,11 +716,11 @@ public class HtmlSerializer extends XmlSerializer 
implements HtmlMetaProvider, H
        public HtmlSerializer(PropertyStore ps, String produces, String accept) 
{
                super(ps, produces, accept);
                uriAnchorText = ps.get(HTML_uriAnchorText, 
AnchorText.class).orElse(AnchorText.TO_STRING);
-               detectLabelParameters = ! 
ps.getBoolean(HTML_disableDetectLabelParameters);
-               detectLinksInStrings = ! 
ps.getBoolean(HTML_disableDetectLinksInStrings);
+               detectLabelParameters = ! 
ps.getBoolean(HTML_disableDetectLabelParameters).orElse(false);
+               detectLinksInStrings = ! 
ps.getBoolean(HTML_disableDetectLinksInStrings).orElse(false);
                labelParameter = ps.getString(HTML_labelParameter, "label");
-               addKeyValueTableHeaders = 
ps.getBoolean(HTML_addKeyValueTableHeaders);
-               addBeanTypes = ps.getBoolean(HTML_addBeanTypes, 
ps.getBoolean(SERIALIZER_addBeanTypes));
+               addKeyValueTableHeaders = 
ps.getBoolean(HTML_addKeyValueTableHeaders).orElse(false);
+               addBeanTypes = ps.getFirstBoolean(HTML_addBeanTypes, 
SERIALIZER_addBeanTypes).orElse(false);
        }
 
        @Override /* Context */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
index bb09131..1cf2188 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -215,7 +215,7 @@ public class JsonParser extends ReaderParser implements 
JsonMetaProvider, JsonCo
         */
        public JsonParser(PropertyStore ps, String...consumes) {
                super(ps, consumes);
-               validateEnd = ps.getBoolean(JSON_validateEnd);
+               validateEnd = ps.getBoolean(JSON_validateEnd).orElse(false);
        }
 
        @Override /* Context */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
index b948956..c076ea1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -378,9 +378,9 @@ public class JsonSerializer extends WriterSerializer 
implements JsonMetaProvider
        public JsonSerializer(PropertyStore ps, String produces, String accept) 
{
                super(ps, produces, accept);
 
-               simpleMode = ps.getBoolean(JSON_simpleMode);
-               escapeSolidus = ps.getBoolean(JSON_escapeSolidus);
-               addBeanTypes = ps.getBoolean(JSON_addBeanTypes, 
ps.getBoolean(SERIALIZER_addBeanTypes));
+               simpleMode = ps.getBoolean(JSON_simpleMode).orElse(false);
+               escapeSolidus = ps.getBoolean(JSON_escapeSolidus).orElse(false);
+               addBeanTypes = ps.getFirstBoolean(JSON_addBeanTypes, 
SERIALIZER_addBeanTypes).orElse(false);
        }
 
        @Override /* Context */
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 57f7bf1..0eda3c2 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
@@ -318,9 +318,9 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
        public JsonSchemaGenerator(PropertyStore ps) {
                super(ps.builder().setDefault(BEANTRAVERSE_detectRecursions, 
true).setDefault(BEANTRAVERSE_ignoreRecursions, true).build());
 
-               useBeanDefs = ps.getBoolean(JSONSCHEMA_useBeanDefs);
-               allowNestedExamples = 
ps.getBoolean(JSONSCHEMA_allowNestedExamples);
-               allowNestedDescriptions = 
ps.getBoolean(JSONSCHEMA_allowNestedDescriptions);
+               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);
                addExamplesTo = 
TypeCategory.parse(ps.getString(JSONSCHEMA_addExamplesTo));
                addDescriptionsTo = 
TypeCategory.parse(ps.getString(JSONSCHEMA_addDescriptionsTo));
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 5224b2a..fc1560f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -135,7 +135,7 @@ public class MsgPackSerializer extends 
OutputStreamSerializer implements MsgPack
         */
        public MsgPackSerializer(PropertyStore ps) {
                super(ps, "octal/msgpack", null);
-               this.addBeanTypes = ps.getBoolean(MSGPACK_addBeanTypes, 
ps.getBoolean(SERIALIZER_addBeanTypes));
+               this.addBeanTypes = ps.getFirstBoolean(MSGPACK_addBeanTypes, 
SERIALIZER_addBeanTypes).orElse(false);
        }
 
        @Override /* Context */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
index 8990121..5b29852 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
@@ -539,11 +539,11 @@ public abstract class Parser extends BeanContext {
        protected Parser(PropertyStore ps, String...consumes) {
                super(ps);
 
-               trimStrings = ps.getBoolean(PARSER_trimStrings);
-               strict = ps.getBoolean(PARSER_strict);
-               autoCloseStreams = ps.getBoolean(PARSER_autoCloseStreams);
+               trimStrings = ps.getBoolean(PARSER_trimStrings).orElse(false);
+               strict = ps.getBoolean(PARSER_strict).orElse(false);
+               autoCloseStreams = 
ps.getBoolean(PARSER_autoCloseStreams).orElse(false);
                debugOutputLines = ps.getInteger(PARSER_debugOutputLines, 5);
-               unbuffered = ps.getBoolean(PARSER_unbuffered);
+               unbuffered = ps.getBoolean(PARSER_unbuffered).orElse(false);
                listener = ps.getClass(PARSER_listener, ParserListener.class);
                this.consumes = new MediaType[consumes.length];
                for (int i = 0; i < consumes.length; i++) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
index 04ca261..4d2fbdd 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -826,14 +826,14 @@ public abstract class Serializer extends 
BeanTraverseContext {
        protected Serializer(PropertyStore ps, String produces, String accept) {
                super(ps);
 
-               addBeanTypes = ps.getBoolean(SERIALIZER_addBeanTypes);
-               keepNullProperties = 
ps.getBoolean(SERIALIZER_keepNullProperties);
-               trimEmptyCollections = 
ps.getBoolean(SERIALIZER_trimEmptyCollections);
-               trimEmptyMaps = ps.getBoolean(SERIALIZER_trimEmptyMaps);
-               trimStrings = ps.getBoolean(SERIALIZER_trimStrings);
-               sortCollections = ps.getBoolean(SERIALIZER_sortCollections);
-               sortMaps = ps.getBoolean(SERIALIZER_sortMaps);
-               addRootType = ps.getBoolean(SERIALIZER_addRootType);
+               addBeanTypes = 
ps.getBoolean(SERIALIZER_addBeanTypes).orElse(false);
+               keepNullProperties = 
ps.getBoolean(SERIALIZER_keepNullProperties).orElse(false);
+               trimEmptyCollections = 
ps.getBoolean(SERIALIZER_trimEmptyCollections).orElse(false);
+               trimEmptyMaps = 
ps.getBoolean(SERIALIZER_trimEmptyMaps).orElse(false);
+               trimStrings = 
ps.getBoolean(SERIALIZER_trimStrings).orElse(false);
+               sortCollections = 
ps.getBoolean(SERIALIZER_sortCollections).orElse(false);
+               sortMaps = ps.getBoolean(SERIALIZER_sortMaps).orElse(false);
+               addRootType = 
ps.getBoolean(SERIALIZER_addRootType).orElse(false);
                uriContext = ps.get(SERIALIZER_uriContext, 
UriContext.class).orElse(UriContext.DEFAULT);
                uriResolution = ps.get(SERIALIZER_uriResolution, 
UriResolution.class).orElse(UriResolution.NONE);
                uriRelativity = ps.get(SERIALIZER_uriRelativity, 
UriRelativity.class).orElse(UriRelativity.RESOURCE);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
index b10c748..f0a785c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
@@ -343,7 +343,7 @@ public abstract class WriterSerializer extends Serializer {
                quoteChar = ps.getString(WSERIALIZER_quoteChar, "\"").charAt(0);
                streamCharset = ps.get(WSERIALIZER_streamCharset, 
Charset.class).orElse(IOUtils.UTF8);
                fileCharset = ps.get(WSERIALIZER_fileCharset, 
Charset.class).orElse(Charset.defaultCharset());
-               useWhitespace = ps.getBoolean(WSERIALIZER_useWhitespace);
+               useWhitespace = 
ps.getBoolean(WSERIALIZER_useWhitespace).orElse(false);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
index d8a4764..04d3da7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
@@ -257,8 +257,8 @@ public class UonParser extends ReaderParser implements 
HttpPartParser, UonMetaPr
         */
        public UonParser(PropertyStore ps, String...consumes) {
                super(ps, consumes);
-               this.decoding = ps.getBoolean(UON_decoding);
-               this.validateEnd = ps.getBoolean(UON_validateEnd);
+               this.decoding = ps.getBoolean(UON_decoding).orElse(false);
+               this.validateEnd = ps.getBoolean(UON_validateEnd).orElse(false);
        }
 
        @Override /* Context */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
index f479ab2..43109f2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
@@ -411,8 +411,8 @@ public class UonSerializer extends WriterSerializer 
implements HttpPartSerialize
         */
        public UonSerializer(PropertyStore ps, String produces, String accept) {
                super(ps, produces, accept);
-               encoding = ps.getBoolean(UON_encoding);
-               addBeanTypes = ps.getBoolean(UON_addBeanTypes, 
ps.getBoolean(SERIALIZER_addBeanTypes));
+               encoding = ps.getBoolean(UON_encoding).orElse(false);
+               addBeanTypes = ps.getFirstBoolean(UON_addBeanTypes, 
SERIALIZER_addBeanTypes).orElse(false);
                paramFormat = ps.get(UON_paramFormat, 
ParamFormat.class).orElse(ParamFormat.UON);
                quoteChar = ps.getString(WSERIALIZER_quoteChar, "'").charAt(0);
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 52279e7..9e48ddf 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -134,7 +134,7 @@ public class UrlEncodingParser extends UonParser implements 
UrlEncodingMetaProvi
                                .build(),
                        "application/x-www-form-urlencoded"
                );
-               expandedParams = ps.getBoolean(URLENC_expandedParams);
+               expandedParams = 
ps.getBoolean(URLENC_expandedParams).orElse(false);
        }
 
        @Override /* Context */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index 0058e43..6003179 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -306,7 +306,7 @@ public class UrlEncodingSerializer extends UonSerializer 
implements UrlEncodingM
                        produces,
                        accept
                );
-               expandedParams = ps.getBoolean(URLENC_expandedParams);
+               expandedParams = 
ps.getBoolean(URLENC_expandedParams).orElse(false);
        }
 
        @Override /* Context */
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 b0013b1..55e4458 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
@@ -252,8 +252,8 @@ public class XmlParser extends ReaderParser implements 
XmlMetaProvider, XmlCommo
         */
        public XmlParser(PropertyStore ps, String...consumes) {
                super(ps, consumes);
-               validating = ps.getBoolean(XML_validating);
-               preserveRootElement = ps.getBoolean(XML_preserveRootElement);
+               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);
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 bf4658b..c1bd134 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
@@ -513,11 +513,11 @@ public class XmlSerializer extends WriterSerializer 
implements XmlMetaProvider,
         */
        public XmlSerializer(PropertyStore ps, String produces, String accept) {
                super(ps, produces, accept);
-               autoDetectNamespaces = ! 
ps.getBoolean(XML_disableAutoDetectNamespaces);
-               enableNamespaces = ps.getBoolean(XML_enableNamespaces);
-               addNamespaceUrlsToRoot = 
ps.getBoolean(XML_addNamespaceUrisToRoot);
+               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);
-               addBeanTypes = ps.getBoolean(XML_addBeanTypes, 
ps.getBoolean(SERIALIZER_addBeanTypes));
+               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 48cd566..4fac9e0 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
@@ -2039,16 +2039,16 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
                super(ps);
                this.httpClient = ps.getInstance(RESTCLIENT_httpClient, 
CloseableHttpClient.class);
                this.connectionManager = 
ps.getInstance(RESTCLIENT_connectionManager, HttpClientConnectionManager.class);
-               this.keepHttpClientOpen = 
ps.getBoolean(RESTCLIENT_keepHttpClientOpen);
+               this.keepHttpClientOpen = 
ps.getBoolean(RESTCLIENT_keepHttpClientOpen).orElse(false);
                this.errorCodes = ps.getInstance(RESTCLIENT_errorCodes, 
Predicate.class, ERROR_CODES_DEFAULT);
-               this.executorServiceShutdownOnClose = 
ps.getBoolean(RESTCLIENT_executorServiceShutdownOnClose);
+               this.executorServiceShutdownOnClose = 
ps.getBoolean(RESTCLIENT_executorServiceShutdownOnClose).orElse(false);
                this.rootUri = 
StringUtils.nullIfEmpty(ps.getString(RESTCLIENT_rootUri, "").replaceAll("\\/$", 
""));
-               this.leakDetection = ps.getBoolean(RESTCLIENT_leakDetection, 
isDebug());
-               this.ignoreErrors = ps.getBoolean(RESTCLIENT_ignoreErrors);
+               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.logToConsole = ps.getBoolean(RESTCLIENT_logToConsole, 
isDebug());
+               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);
 
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 146616a..2e02dc6 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
@@ -3533,11 +3533,11 @@ public class RestContext extends BeanContext {
                        uriResolution = ps.get(REST_uriResolution, 
UriResolution.class).orElse(UriResolution.ROOT_RELATIVE);
                        uriRelativity = ps.get(REST_uriRelativity, 
UriRelativity.class).orElse(UriRelativity.RESOURCE);
 
-                       allowBodyParam = ! 
ps.getBoolean(REST_disableAllowBodyParam);
+                       allowBodyParam = ! 
ps.getBoolean(REST_disableAllowBodyParam).orElse(false);
                        allowedHeaderParams = 
newCaseInsensitiveSet(ps.getNoneableString(REST_allowedHeaderParams, 
"Accept,Content-Type"));
                        allowedMethodParams = 
newCaseInsensitiveSet(ps.getNoneableString(REST_allowedMethodParams, 
"HEAD,OPTIONS"));
                        allowedMethodHeaders = 
newCaseInsensitiveSet(ps.getNoneableString(REST_allowedMethodHeaders, ""));
-                       renderResponseStackTraces = 
ps.getBoolean(REST_renderResponseStackTraces);
+                       renderResponseStackTraces = 
ps.getBoolean(REST_renderResponseStackTraces).orElse(false);
                        clientVersionHeader = 
ps.getString(REST_clientVersionHeader, "X-Client-Version");
 
                        debugEnablement = createDebugEnablement(r, ps, bf);
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 fba57ee..a4630ea 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
@@ -1320,7 +1320,7 @@ public class RestOperationContext extends BeanContext 
implements Comparable<Rest
        protected UrlPathMatcherList createPathMatchers(Object resource, 
PropertyStore properties, BeanFactory beanFactory) throws Exception {
 
                UrlPathMatcherList x = UrlPathMatcherList.create();
-               boolean dotAll = 
properties.getBoolean("RestOperationContext.dotAll.b", false);
+               boolean dotAll = 
properties.getBoolean("RestOperationContext.dotAll.b").orElse(false);
 
                for (String p : properties.getArray(RESTOP_path, String.class)) 
{
                        if (dotAll && ! p.endsWith("/*"))
diff --git a/juneau-utest/src/test/java/org/apache/juneau/ContextCacheTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/ContextCacheTest.java
index b3bd351..e81e643 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/ContextCacheTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/ContextCacheTest.java
@@ -172,7 +172,7 @@ public class ContextCacheTest {
                public boolean f3;
                public C(PropertyStore ps) {
                        super(ps);
-                       f3 = getPropertyStore().getBoolean("C.f3.b");
+                       f3 = 
getPropertyStore().getBoolean("C.f3.b").orElse(false);
                }
 
                @Override

Reply via email to