You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2021/01/25 10:54:44 UTC

[johnzon] 03/03: [JOHNZON-332] merge jsonb builder with new skipAccessModeWrapper toggle for consistency

This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git

commit 343c8318c0236a7fa04f308261c4a4b59cd60745
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Mon Jan 25 11:54:35 2021 +0100

    [JOHNZON-332] merge jsonb builder with new skipAccessModeWrapper toggle for consistency
---
 .../org/apache/johnzon/jsonb/JohnzonBuilder.java   | 41 ++++++++++------------
 1 file changed, 19 insertions(+), 22 deletions(-)

diff --git a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java
index 52878dc..0b749a4 100644
--- a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java
+++ b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java
@@ -38,7 +38,6 @@ import org.apache.johnzon.mapper.ObjectConverter;
 import org.apache.johnzon.mapper.SerializeValueFilter;
 import org.apache.johnzon.mapper.access.AccessMode;
 import org.apache.johnzon.mapper.access.FieldAndMethodAccessMode;
-import org.apache.johnzon.mapper.access.KnownNotOpenedJavaTypesAccessMode;
 import org.apache.johnzon.mapper.converter.LocaleConverter;
 import org.apache.johnzon.mapper.internal.AdapterKey;
 
@@ -212,29 +211,27 @@ public class JohnzonBuilder implements JsonbBuilder {
             throw new IllegalArgumentException("Unsupported factory: " + val);
         }).orElseGet(() -> findFactory(skipCdi));
 
+        ofNullable(config.getProperty("johnzon.skip-exception-serialization"))
+                .map(v -> Boolean.parseBoolean(String.valueOf(v)))
+                .ifPresent(builder::setSkipAccessModeWrapper);
+
         final AccessMode accessMode = config.getProperty("johnzon.accessMode")
                 .map(this::toAccessMode)
-                .orElseGet(() -> {
-                    final AccessMode access = new JsonbAccessMode(
-                            propertyNamingStrategy, orderValue, visibilityStrategy,
-                            !namingStrategyValue.orElse("").equals(PropertyNamingStrategy.CASE_INSENSITIVE),
-                            builder.getAdapters(),
-                            factory, jsonp, builderFactorySupplier, parserFactoryProvider,
-                            config.getProperty("johnzon.accessModeDelegate")
-                                    .map(this::toAccessMode)
-                                    .orElseGet(() -> new FieldAndMethodAccessMode(true, true, false, true)),
-                            config.getProperty("johnzon.failOnMissingCreatorValues")
-                                    .map(this::toBool)
-                                    .orElse(true) /*spec 1.0 requirement*/,
-                            isNillable,
-                            config.getProperty("johnzon.supportsPrivateAccess")
-                                    .map(this::toBool)
-                                    .orElse(false));
-                    return ofNullable(config.getProperty("johnzon.enable-exception-serialization"))
-                            .map(v -> Boolean.parseBoolean(String.valueOf(v)))
-                            .map(it -> it ? new KnownNotOpenedJavaTypesAccessMode(access) : access)
-                            .orElseGet(() -> new KnownNotOpenedJavaTypesAccessMode(access));
-                });
+                .orElseGet(() -> new JsonbAccessMode(
+                        propertyNamingStrategy, orderValue, visibilityStrategy,
+                        !namingStrategyValue.orElse("").equals(PropertyNamingStrategy.CASE_INSENSITIVE),
+                        builder.getAdapters(),
+                        factory, jsonp, builderFactorySupplier, parserFactoryProvider,
+                        config.getProperty("johnzon.accessModeDelegate")
+                                .map(this::toAccessMode)
+                                .orElseGet(() -> new FieldAndMethodAccessMode(true, true, false, true)),
+                        config.getProperty("johnzon.failOnMissingCreatorValues")
+                                .map(this::toBool)
+                                .orElse(true) /*spec 1.0 requirement*/,
+                        isNillable,
+                        config.getProperty("johnzon.supportsPrivateAccess")
+                                .map(this::toBool)
+                                .orElse(false)));
         builder.setAccessMode(accessMode);
 
         // user adapters