Repository: johnzon
Updated Branches:
  refs/heads/master f48879137 -> e20f42730


jsonb reverted jsonb.fail-on-unknown-properties, keeping it as a johnzon 
property


Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/e20f4273
Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/e20f4273
Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/e20f4273

Branch: refs/heads/master
Commit: e20f42730bf30fdb750e9cb19c9cb66d981caa19
Parents: f488791
Author: rmannibucau <[email protected]>
Authored: Tue Mar 21 13:07:50 2017 +0100
Committer: rmannibucau <[email protected]>
Committed: Tue Mar 21 13:07:50 2017 +0100

----------------------------------------------------------------------
 .../jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java   | 35 ++++++++++++++------
 .../apache/johnzon/jsonb/JohnzonBuilder.java    | 16 +++++----
 .../jsonb/FailOnUnknownPropertiesTest.java      |  2 +-
 .../main/java/javax/json/bind/JsonbConfig.java  |  5 ---
 4 files changed, 34 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/johnzon/blob/e20f4273/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
----------------------------------------------------------------------
diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
index fc17494..089406f 100644
--- 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
+++ 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jaxrs/jsonb/jaxrs/JsonbJaxrsProvider.java
@@ -36,10 +36,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Reader;
+import java.io.StringReader;
 import java.io.Writer;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.Collection;
+import java.util.Properties;
 import java.util.concurrent.atomic.AtomicReference;
 
 // here while we dont compile in java 8 jaxrs module, when migrated we'll 
merge it with IgnorableTypes hierarchy at least
@@ -69,7 +71,18 @@ public class JsonbJaxrsProvider<T> implements 
MessageBodyWriter<T>, MessageBodyR
 
     // config - main containers support the configuration of providers this way
     public void setFailOnUnknownProperties(final boolean active) {
-        config.withFailOnUnknownProperties(active);
+        config.setProperty("johnzon.fail-on-unknown-properties", active);
+    }
+
+    public void setOtherProperties(final String others) {
+        final Properties properties = new Properties() {{
+            try {
+                load(new StringReader(others));
+            } catch (final IOException e) {
+                throw new IllegalArgumentException(e);
+            }
+        }};
+        properties.stringPropertyNames().forEach(k -> config.setProperty(k, 
properties.getProperty(k)));
     }
 
     public void setIJson(final boolean active) {
@@ -105,21 +118,21 @@ public class JsonbJaxrsProvider<T> implements 
MessageBodyWriter<T>, MessageBodyR
     @Override
     public boolean isReadable(final Class<?> type, final Type genericType, 
final Annotation[] annotations, final MediaType mediaType) {
         return !isIgnored(type)
-            && InputStream.class != genericType && Reader.class != genericType 
&& Response.class != genericType
-            && String.class != genericType
-            && !JsonStructure.class.isAssignableFrom(type);
+                && InputStream.class != genericType && Reader.class != 
genericType && Response.class != genericType
+                && String.class != genericType
+                && !JsonStructure.class.isAssignableFrom(type);
     }
 
     @Override
     public boolean isWriteable(final Class<?> type, final Type genericType, 
final Annotation[] annotations, final MediaType mediaType) {
         return !isIgnored(type)
-            && InputStream.class != genericType
-            && OutputStream.class != genericType
-            && Writer.class != genericType
-            && StreamingOutput.class != genericType
-            && String.class != genericType
-            && Response.class != genericType
-            && !JsonStructure.class.isAssignableFrom(type);
+                && InputStream.class != genericType
+                && OutputStream.class != genericType
+                && Writer.class != genericType
+                && StreamingOutput.class != genericType
+                && String.class != genericType
+                && Response.class != genericType
+                && !JsonStructure.class.isAssignableFrom(type);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/johnzon/blob/e20f4273/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java
----------------------------------------------------------------------
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 a3a86ba..798b770 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
@@ -253,7 +253,9 @@ public class JohnzonBuilder implements JsonbBuilder {
         
config.getProperty(JsonbConfig.STRICT_IJSON).map(Boolean.class::cast).ifPresent(ijson
 -> {
             // no-op: https://tools.ietf.org/html/rfc7493 the only MUST of the 
spec should be fine by default
         });
-        
config.getProperty(JsonbConfig.FAIL_ON_UNKNOWN_PROPERTIES).map(Boolean.class::cast).ifPresent(builder::setFailOnUnknownProperties);
+        config.getProperty("johnzon.fail-on-unknown-properties")
+                .map(v -> Boolean.class.isInstance(v) ? Boolean.class.cast(v) 
: Boolean.parseBoolean(String.valueOf(v)))
+                .ifPresent(builder::setFailOnUnknownProperties);
 
         
config.getProperty(JsonbConfig.BINARY_DATA_STRATEGY).map(String.class::cast).ifPresent(bin
 -> {
             switch (bin) {
@@ -299,7 +301,7 @@ public class JohnzonBuilder implements JsonbBuilder {
                 }
                 builder.addObjectConverter(
                         Class.class.cast(args[0]), (ObjectConverter.Writer)
-                        (instance, jsonbGenerator) -> s.serialize(instance, 
jsonbGenerator.getJsonGenerator(), new 
JohnzonSerializationContext(jsonbGenerator)));
+                                (instance, jsonbGenerator) -> 
s.serialize(instance, jsonbGenerator.getJsonGenerator(), new 
JohnzonSerializationContext(jsonbGenerator)));
             });
         });
         
config.getProperty(JsonbConfig.DESERIALIZERS).map(JsonbDeserializer[].class::cast).ifPresent(deserializers
 -> {
@@ -315,8 +317,8 @@ public class JohnzonBuilder implements JsonbBuilder {
                 // TODO: support PT in ObjectConverter (list)
                 builder.addObjectConverter(
                         Class.class.cast(args[0]), (ObjectConverter.Reader)
-                        (jsonObject, targetType, parser) -> d.deserialize(
-                                
parserFactoryProvider.get().createParser(jsonObject), new 
JohnzonDeserializationContext(parser), targetType));
+                                (jsonObject, targetType, parser) -> 
d.deserialize(
+                                        
parserFactoryProvider.get().createParser(jsonObject), new 
JohnzonDeserializationContext(parser), targetType));
             });
         });
 
@@ -343,9 +345,9 @@ public class JohnzonBuilder implements JsonbBuilder {
 
     private ParameterizedType findPT(final Object s, final Class<?> type) {
         return ParameterizedType.class.cast(
-                            Stream.of(s.getClass().getGenericInterfaces())
-                                    .filter(i -> 
ParameterizedType.class.isInstance(i) && 
ParameterizedType.class.cast(i).getRawType() == type)
-                                    .findFirst().orElse(null));
+                Stream.of(s.getClass().getGenericInterfaces())
+                        .filter(i -> ParameterizedType.class.isInstance(i) && 
ParameterizedType.class.cast(i).getRawType() == type)
+                        .findFirst().orElse(null));
     }
 
     private Object getBeanManager() {

http://git-wip-us.apache.org/repos/asf/johnzon/blob/e20f4273/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/FailOnUnknownPropertiesTest.java
----------------------------------------------------------------------
diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/FailOnUnknownPropertiesTest.java
 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/FailOnUnknownPropertiesTest.java
index 0c52308..90f3bf1 100644
--- 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/FailOnUnknownPropertiesTest.java
+++ 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/FailOnUnknownPropertiesTest.java
@@ -31,7 +31,7 @@ import static org.junit.Assert.fail;
 public class FailOnUnknownPropertiesTest {
     @Test
     public void failOnUnknownProperties() {
-        final Jsonb jsonb = JsonbBuilder.create(new 
JsonbConfig().withFailOnUnknownProperties(true));
+        final Jsonb jsonb = JsonbBuilder.create(new 
JsonbConfig().setProperty("johnzon.fail-on-unknown-properties", true));
 
         // valid
         assertEquals("ok", jsonb.fromJson("{\"known\":\"ok\"}", 
Model.class).known);

http://git-wip-us.apache.org/repos/asf/johnzon/blob/e20f4273/jsonb-api/src/main/java/javax/json/bind/JsonbConfig.java
----------------------------------------------------------------------
diff --git a/jsonb-api/src/main/java/javax/json/bind/JsonbConfig.java 
b/jsonb-api/src/main/java/javax/json/bind/JsonbConfig.java
index 528b1b9..149c871 100644
--- a/jsonb-api/src/main/java/javax/json/bind/JsonbConfig.java
+++ b/jsonb-api/src/main/java/javax/json/bind/JsonbConfig.java
@@ -32,7 +32,6 @@ import java.util.Optional;
 public class JsonbConfig {
     private final Map<String, Object> configuration = new HashMap<>();
 
-    public static final String FAIL_ON_UNKNOWN_PROPERTIES = 
"jsonb.fail-on-unknown-properties";
     public static final String FORMATTING = "jsonb.formatting";
     public static final String ENCODING = "jsonb.encoding";
     public static final String PROPERTY_NAMING_STRATEGY = 
"jsonb.property-naming-strategy";
@@ -47,10 +46,6 @@ public class JsonbConfig {
     public static final String SERIALIZERS = "jsonb.serializers";
     public static final String DESERIALIZERS = "jsonb.derializers";
 
-    public final JsonbConfig withFailOnUnknownProperties(final Boolean 
failOnUnknownProperties) {
-        return setProperty(FAIL_ON_UNKNOWN_PROPERTIES, 
failOnUnknownProperties);
-    }
-
     public final JsonbConfig withDateFormat(final String dateFormat, final 
Locale locale) {
         return setProperty(DATE_FORMAT, dateFormat).setProperty(LOCALE, locale 
!= null ? locale : Locale.getDefault());
     }

Reply via email to