[johnzon] branch master updated: finish primitive test with rest of missing types

2023-10-11 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 397e4172 finish primitive test with rest of missing types
397e4172 is described below

commit 397e41721788f6d98625bcbb87261d379d783830
Author: Mark Struberg 
AuthorDate: Wed Oct 11 13:56:22 2023 +0200

finish primitive test with rest of missing types
---
 .../org/apache/johnzon/jsonb/JsonbTypesTest.java   | 32 +++---
 1 file changed, 28 insertions(+), 4 deletions(-)

diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
index 68be3de3..d3616562 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
@@ -178,6 +178,9 @@ public class JsonbTypesTest {
 assertEquals(0, primitiveTypes.getShortVal());
 assertEquals(0, primitiveTypes.getIntVal());
 assertEquals(0L, primitiveTypes.getLongVal());
+assertEquals(0.0f, primitiveTypes.getFloatVal(), 0.001);
+assertEquals(0.0, primitiveTypes.getDoubleVal(), 0.001);
+assertEquals(false, primitiveTypes.isBooleanVal());
 
 jsonb.close();
 }
@@ -604,14 +607,20 @@ public class JsonbTypesTest {
 private final char charVal;
 private final int intVal;
 private final long longVal;
+private final float floatVal;
+private final double doubleVal;
+private final boolean booleanVal;
 
-public PrimitiveTypes(byte byteVal, short shortVal, char charVal, int 
intVal, long longVal) {
+public PrimitiveTypes(byte byteVal, short shortVal, char charVal, int 
intVal, long longVal,
+  float floatVal, double doubleVal, boolean 
booleanVal) {
 this.byteVal = byteVal;
 this.shortVal = shortVal;
 this.charVal = charVal;
 this.intVal = intVal;
 this.longVal = longVal;
-
+this.floatVal = floatVal;
+this.doubleVal = doubleVal;
+this.booleanVal = booleanVal;
 }
 
 @JsonbCreator
@@ -619,8 +628,11 @@ public class JsonbTypesTest {
   @JsonbProperty("shortVal") short 
shortVal,
   @JsonbProperty("charVal")  char 
charVal,
   @JsonbProperty("intVal")   int 
intVal,
-  @JsonbProperty("longVal")  long 
longVal) {
-return new PrimitiveTypes(byteVal, shortVal, charVal, intVal, 
longVal);
+  @JsonbProperty("longVal")  long 
longVal,
+  @JsonbProperty("floatVal")  float 
floatVal,
+  @JsonbProperty("doubleVal")  double 
doubleVal,
+  @JsonbProperty("booleanVal")  
boolean booleanVal) {
+return new PrimitiveTypes(byteVal, shortVal, charVal, intVal, 
longVal, floatVal, doubleVal, booleanVal);
 }
 
 public byte getByteVal() {
@@ -642,5 +654,17 @@ public class JsonbTypesTest {
 public long getLongVal() {
 return longVal;
 }
+
+public float getFloatVal() {
+return floatVal;
+}
+
+public double getDoubleVal() {
+return doubleVal;
+}
+
+public boolean isBooleanVal() {
+return booleanVal;
+}
 }
 }



[johnzon] branch master updated: adding a test for primitive value defaults

2023-10-11 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new e4b893b1 adding a test for primitive value defaults
e4b893b1 is described below

commit e4b893b100ea1eb6309a3c384d80d0b2346297de
Author: Mark Struberg 
AuthorDate: Wed Oct 11 13:10:55 2023 +0200

adding a test for primitive value defaults
---
 .../org/apache/johnzon/jsonb/JsonbTypesTest.java   | 69 +-
 1 file changed, 66 insertions(+), 3 deletions(-)

diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
index 04d43705..68be3de3 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
@@ -136,33 +136,50 @@ public class JsonbTypesTest {
 }
 
 @Test
-public void testOptionalViaJsonbCreatorFullJson() {
+public void testOptionalViaJsonbCreatorFullJson() throws Exception {
 final Jsonb jsonb = newJsonb();
 final String json = 
"{\"intOptional\":4711,\"stringOptional\":\"testVal\"}";
 final OptionalTypes optionalTypes = jsonb.fromJson(json, 
OptionalTypes.class);
 assertNotNull(optionalTypes);
 assertEquals("testVal", optionalTypes.getOptionalString());
 assertEquals(4711, optionalTypes.getOptionalInt());
+jsonb.close();
 }
 
 @Test
-public void testOptionalViaJsonbCreatorEmptyJson() {
+public void testOptionalViaJsonbCreatorEmptyJson() throws Exception {
 final Jsonb jsonb = newJsonb();
 final String json = "{ }";
 final OptionalTypes optionalTypes = jsonb.fromJson(json, 
OptionalTypes.class);
 assertNotNull(optionalTypes);
 assertEquals(OptionalTypes.EMPTY, optionalTypes.getOptionalString());
 assertEquals(-1, optionalTypes.getOptionalInt());
+jsonb.close();
 }
 
 @Test
-public void testOptionalViaJsonbCreatorPartialJson() {
+public void testOptionalViaJsonbCreatorPartialJson() throws Exception {
 final Jsonb jsonb = newJsonb();
 final String json = "{\"intOptional\":4711}";
 final OptionalTypes optionalTypes = jsonb.fromJson(json, 
OptionalTypes.class);
 assertNotNull(optionalTypes);
 assertEquals(OptionalTypes.EMPTY, optionalTypes.getOptionalString());
 assertEquals(4711, optionalTypes.getOptionalInt());
+jsonb.close();
+}
+
+@Test
+public void testPrimitiveEmptyJson() throws Exception {
+final Jsonb jsonb = newJsonb();
+final String json = "{ }";
+final PrimitiveTypes primitiveTypes = jsonb.fromJson(json, 
PrimitiveTypes.class);
+assertNotNull(primitiveTypes);
+assertEquals(0, primitiveTypes.getByteVal());
+assertEquals(0, primitiveTypes.getShortVal());
+assertEquals(0, primitiveTypes.getIntVal());
+assertEquals(0L, primitiveTypes.getLongVal());
+
+jsonb.close();
 }
 
 private void readAndWriteWithDateFormat(DateTimeFormatter 
dateTimeFormatter, String dateFormat) throws Exception {
@@ -580,4 +597,50 @@ public class JsonbTypesTest {
 return optionalInt;
 }
 }
+
+public static class PrimitiveTypes {
+private final byte byteVal;
+private final short shortVal;
+private final char charVal;
+private final int intVal;
+private final long longVal;
+
+public PrimitiveTypes(byte byteVal, short shortVal, char charVal, int 
intVal, long longVal) {
+this.byteVal = byteVal;
+this.shortVal = shortVal;
+this.charVal = charVal;
+this.intVal = intVal;
+this.longVal = longVal;
+
+}
+
+@JsonbCreator
+public static PrimitiveTypes init(@JsonbProperty("byteVal")  byte 
byteVal,
+  @JsonbProperty("shortVal") short 
shortVal,
+  @JsonbProperty("charVal")  char 
charVal,
+  @JsonbProperty("intVal")   int 
intVal,
+  @JsonbProperty("longVal")  long 
longVal) {
+return new PrimitiveTypes(byteVal, shortVal, charVal, intVal, 
longVal);
+}
+
+public byte getByteVal() {
+return byteVal;
+}
+
+public short getShortVal() {
+return shortVal;
+}
+
+public char getCharVal() {
+return charVal;
+}
+
+public int getIntVal() {
+return intVal;
+}
+
+public long getLongVal() {
+return longVal;
+}
+}
 }



[johnzon] branch master updated: add native support for Optional in Mapper

2023-10-11 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new d4923a7f add native support for Optional in Mapper
d4923a7f is described below

commit d4923a7fe78cdfd8129f19d0bac2b737e6efeffc
Author: Mark Struberg 
AuthorDate: Wed Oct 11 12:22:14 2023 +0200

add native support for Optional in Mapper
---
 .../org/apache/johnzon/jsonb/JsonbTypesTest.java   | 62 +-
 .../apache/johnzon/mapper/MappingParserImpl.java   | 57 +++-
 2 files changed, 93 insertions(+), 26 deletions(-)

diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
index 2c5987bc..04d43705 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java
@@ -19,6 +19,7 @@
 package org.apache.johnzon.jsonb;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 import java.io.StringReader;
 import java.math.BigDecimal;
@@ -54,6 +55,8 @@ import java.util.concurrent.TimeUnit;
 
 import jakarta.json.bind.Jsonb;
 import jakarta.json.bind.JsonbConfig;
+import jakarta.json.bind.annotation.JsonbCreator;
+import jakarta.json.bind.annotation.JsonbProperty;
 import jakarta.json.bind.spi.JsonbProvider;
 
 import org.apache.cxf.common.util.StringUtils;
@@ -131,7 +134,37 @@ public class JsonbTypesTest {
 
readAndWriteWithDateFormat(DateTimeFormatter.ofPattern("MMdd+HHmmssZ"), 
"MMdd+HHmmssZ");
 readAndWriteWithDateFormat(DateTimeFormatter.ofPattern("-MM-dd"), 
"-MM-dd");
 }
-
+
+@Test
+public void testOptionalViaJsonbCreatorFullJson() {
+final Jsonb jsonb = newJsonb();
+final String json = 
"{\"intOptional\":4711,\"stringOptional\":\"testVal\"}";
+final OptionalTypes optionalTypes = jsonb.fromJson(json, 
OptionalTypes.class);
+assertNotNull(optionalTypes);
+assertEquals("testVal", optionalTypes.getOptionalString());
+assertEquals(4711, optionalTypes.getOptionalInt());
+}
+
+@Test
+public void testOptionalViaJsonbCreatorEmptyJson() {
+final Jsonb jsonb = newJsonb();
+final String json = "{ }";
+final OptionalTypes optionalTypes = jsonb.fromJson(json, 
OptionalTypes.class);
+assertNotNull(optionalTypes);
+assertEquals(OptionalTypes.EMPTY, optionalTypes.getOptionalString());
+assertEquals(-1, optionalTypes.getOptionalInt());
+}
+
+@Test
+public void testOptionalViaJsonbCreatorPartialJson() {
+final Jsonb jsonb = newJsonb();
+final String json = "{\"intOptional\":4711}";
+final OptionalTypes optionalTypes = jsonb.fromJson(json, 
OptionalTypes.class);
+assertNotNull(optionalTypes);
+assertEquals(OptionalTypes.EMPTY, optionalTypes.getOptionalString());
+assertEquals(4711, optionalTypes.getOptionalInt());
+}
+
 private void readAndWriteWithDateFormat(DateTimeFormatter 
dateTimeFormatter, String dateFormat) throws Exception {
 final LocalDate localDate = LocalDate.of(2015, 1, 1);
 final LocalDateTime localDateTime = LocalDateTime.of(2015, 1, 1, 1, 1);
@@ -520,4 +553,31 @@ public class JsonbTypesTest {
 date, calendar, gregorianCalendar, instant, localDateTime, 
localDate, offsetDateTime);
 }
 }
+
+public static class OptionalTypes {
+public final static String EMPTY = "";
+private final String optionalString;
+private final int optionalInt;
+
+public OptionalTypes(String optionalString, int optionalInt) {
+this.optionalString = optionalString;
+this.optionalInt = optionalInt;
+}
+
+@JsonbCreator
+public static OptionalTypes init(@JsonbProperty("stringOptional") 
Optional stringOptional,
+ @JsonbProperty("intOptional") 
OptionalInt intOptional) {
+return new OptionalTypes(
+stringOptional.orElse(EMPTY),
+intOptional.orElse(-1));
+}
+
+public String getOptionalString() {
+return optionalString;
+}
+
+public int getOptionalInt() {
+return optionalInt;
+}
+}
 }
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
index de9c1d3e..61dd5c95 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.j

[johnzon] branch master updated: disable challenged TCK test for now

2023-10-10 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 0d82bba5 disable challenged TCK test for now
0d82bba5 is described below

commit 0d82bba5660e1a96f44ea9839b6601499e095c9f
Author: Mark Struberg 
AuthorDate: Tue Oct 10 21:34:05 2023 +0200

disable challenged TCK test for now

PR sent and waiting for review and a new TCK release
---
 tck/jsonb/pom.xml | 5 +
 1 file changed, 5 insertions(+)

diff --git a/tck/jsonb/pom.xml b/tck/jsonb/pom.xml
index d12bbfd0..914fc973 100644
--- a/tck/jsonb/pom.xml
+++ b/tck/jsonb/pom.xml
@@ -94,6 +94,11 @@
 jakarta.json.bind:jakarta.json.bind-tck
   
 
+  
+
+**/SerializersCustomizationCDITest
+  
+
   
 ${project.build.directory}/jimage
 
${project.build.directory}/signaturedirectory/jakarta.json.bind-api.jar:${project.build.directory}/jimage/java.base:${project.build.directory}/jimage/java.rmi:${project.build.directory}/jimage/java.sql:${project.build.directory}/jimage/java.naming



[johnzon] branch jakartaee-10-tck updated: upgrade to OWB-4.0.0

2023-09-19 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch jakartaee-10-tck
in repository https://gitbox.apache.org/repos/asf/johnzon.git


The following commit(s) were added to refs/heads/jakartaee-10-tck by this push:
 new f8b677df upgrade to OWB-4.0.0
f8b677df is described below

commit f8b677df5c2617a1437ecb3a0ec2e8cb8d7a68ef
Author: Mark Struberg 
AuthorDate: Tue Sep 19 11:54:13 2023 +0200

upgrade to OWB-4.0.0

This is our native Jakarta CDI implementation
---
 johnzon-jsonb/pom.xml | 23 ---
 pom.xml   |  2 +-
 tck/jsonb/pom.xml | 39 +++
 tck/jsonp/pom.xml | 39 +++
 4 files changed, 7 insertions(+), 96 deletions(-)

diff --git a/johnzon-jsonb/pom.xml b/johnzon-jsonb/pom.xml
index 5ad89d04..64161114 100644
--- a/johnzon-jsonb/pom.xml
+++ b/johnzon-jsonb/pom.xml
@@ -101,35 +101,12 @@
   org.apache.openwebbeans
   openwebbeans-impl
   ${owb.version}
-  jakarta
   test
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
 
 
   org.apache.openwebbeans
   openwebbeans-spi
   ${owb.version}
-  jakarta
-  test
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
 
   
 
diff --git a/pom.xml b/pom.xml
index 6b93056f..a86249b5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,7 +52,7 @@
 3.0.0 
 
 -Xms1024m -Xmx2048m 
-Dfile.encoding=UTF-8
-2.0.27
+4.0.0
 
   
 
diff --git a/tck/jsonb/pom.xml b/tck/jsonb/pom.xml
index e39b7e83..80dd5ef2 100644
--- a/tck/jsonb/pom.xml
+++ b/tck/jsonb/pom.xml
@@ -55,50 +55,17 @@
 
   org.apache.openwebbeans
   openwebbeans-se
-  2.0.27
-  jakarta
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
+  ${owb.version}
 
 
   org.apache.openwebbeans
   openwebbeans-impl
-  2.0.27
-  jakarta
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
+  ${owb.version}
 
 
   org.apache.openwebbeans
   openwebbeans-spi
-  2.0.27
-  jakarta
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
+  ${owb.version}
 
 
 
diff --git a/tck/jsonp/pom.xml b/tck/jsonp/pom.xml
index 46fb7db0..88f9536f 100644
--- a/tck/jsonp/pom.xml
+++ b/tck/jsonp/pom.xml
@@ -56,50 +56,17 @@
 
   org.apache.openwebbeans
   openwebbeans-se
-  2.0.27
-  jakarta
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
+  ${owb.version}
 
 
   org.apache.openwebbeans
   openwebbeans-impl
-  2.0.27
-  jakarta
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
+  ${owb.version}
 
 
   org.apache.openwebbeans
   openwebbeans-spi
-  2.0.27
-  jakarta
-  
-
-  org.apache.openwebbeans
-  *
-
-
-  org.apache.geronimo.specs
-  *
-
-  
+  ${owb.version}
 
 
 



svn commit: r54449 - in /release/johnzon: johnzon-1.2.17/ johnzon-1.2.18/

2022-05-11 Thread struberg
Author: struberg
Date: Wed May 11 18:29:01 2022
New Revision: 54449

Log:
adding Apache Johnzon 1.2.18

Added:
release/johnzon/johnzon-1.2.18/
release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip   (with props)
release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.asc   (with 
props)
release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha1
release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha512
release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip   (with 
props)
release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.asc   
(with props)
release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha1
release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha512
Removed:
release/johnzon/johnzon-1.2.17/

Added: release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip
--
svn:mime-type = application/zip

Added: release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.asc
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.asc
--
svn:mime-type = application/pgp-signature

Added: release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha1
==
--- release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha1 (added)
+++ release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha1 Wed May 
11 18:29:01 2022
@@ -0,0 +1 @@
+9df2ae29aa0bbd301230d87d69f2677ce5e2e527
\ No newline at end of file

Added: release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha512
==
--- release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha512 (added)
+++ release/johnzon/johnzon-1.2.18/apache-johnzon-1.2.18-bin.zip.sha512 Wed May 
11 18:29:01 2022
@@ -0,0 +1 @@
+4e7c5141ff14edc3027dc67aeff0453e002795c4f7034f9a11a4af32a788a4ca545a75df9af3b523b11565f8e2f49a0afd9409965b38a7bc9137476ac0ec93d0
  apache-johnzon-1.2.18-bin.zip

Added: release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip
--
svn:mime-type = application/zip

Added: release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.asc
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.asc
--
svn:mime-type = application/pgp-signature

Added: release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha1
==
--- release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha1 
(added)
+++ release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha1 Wed 
May 11 18:29:01 2022
@@ -0,0 +1 @@
+734ded0c6394c3fa34274d7cd74d5937ca45b158
\ No newline at end of file

Added: release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha512
==
--- release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha512 
(added)
+++ release/johnzon/johnzon-1.2.18/johnzon-1.2.18-source-release.zip.sha512 Wed 
May 11 18:29:01 2022
@@ -0,0 +1 @@
+4536ba3604f075ff7debe12957b3491bf0bd21d06a1da1b77efa4e480a366282c15ae24665f2ef12ba41cc1c3d26817c131bec117964c96dd5c6d279ac193438
  johnzon-1.2.18-source-release.zip




[johnzon] annotated tag v1.2.18 created (now 155a59f2)

2022-05-06 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

struberg pushed a change to annotated tag v1.2.18
in repository https://gitbox.apache.org/repos/asf/johnzon.git


  at 155a59f2 (tag)
 tagging 01919f911e63f2efdb4aa4245b45375f3e8c778e (commit)
 replaces v1.2.17
  by Mark Struberg
  on Sat Apr 30 13:36:27 2022 +0200

- Log -
[maven-release-plugin] copy for tag v1.2.18
---

No new revisions were added by this update.



[johnzon] 02/02: [maven-release-plugin] prepare for next development iteration

2022-04-30 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 125b005160ec290951b0eeaf55b7cf211fd39abc
Author: Mark Struberg 
AuthorDate: Sat Apr 30 13:36:27 2022 +0200

[maven-release-plugin] prepare for next development iteration
---
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonlogic/pom.xml| 2 +-
 johnzon-jsonp-strict/pom.xml | 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-osgi/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 4 ++--
 13 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/johnzon-core/pom.xml b/johnzon-core/pom.xml
index a9767098..483340b0 100644
--- a/johnzon-core/pom.xml
+++ b/johnzon-core/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-distribution/pom.xml b/johnzon-distribution/pom.xml
index 8509103a..2923ee0d 100644
--- a/johnzon-distribution/pom.xml
+++ b/johnzon-distribution/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jaxrs/pom.xml b/johnzon-jaxrs/pom.xml
index ea5be6d4..111ae929 100644
--- a/johnzon-jaxrs/pom.xml
+++ b/johnzon-jaxrs/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-json-extras/pom.xml b/johnzon-json-extras/pom.xml
index db6371b9..01ad93fc 100644
--- a/johnzon-json-extras/pom.xml
+++ b/johnzon-json-extras/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonb/pom.xml b/johnzon-jsonb/pom.xml
index 9a26e5d9..86afd25f 100644
--- a/johnzon-jsonb/pom.xml
+++ b/johnzon-jsonb/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonlogic/pom.xml b/johnzon-jsonlogic/pom.xml
index 094a25b8..1710bfa0 100644
--- a/johnzon-jsonlogic/pom.xml
+++ b/johnzon-jsonlogic/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonp-strict/pom.xml b/johnzon-jsonp-strict/pom.xml
index bf579ca2..9b4192bd 100644
--- a/johnzon-jsonp-strict/pom.xml
+++ b/johnzon-jsonp-strict/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonschema/pom.xml b/johnzon-jsonschema/pom.xml
index 49de8735..a03ba174 100644
--- a/johnzon-jsonschema/pom.xml
+++ b/johnzon-jsonschema/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-mapper/pom.xml b/johnzon-mapper/pom.xml
index 4d063991..03403814 100644
--- a/johnzon-mapper/pom.xml
+++ b/johnzon-mapper/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-maven-plugin/pom.xml b/johnzon-maven-plugin/pom.xml
index d45addeb..c3bad907 100644
--- a/johnzon-maven-plugin/pom.xml
+++ b/johnzon-maven-plugin/pom.xml
@@ -23,7 +23,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
 
   johnzon-maven-plugin
diff --git a/johnzon-osgi/pom.xml b/johnzon-osgi/pom.xml
index 895963b8..d87fe655 100644
--- a/johnzon-osgi/pom.xml
+++ b/johnzon-osgi/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-websocket/pom.xml b/johnzon-websocket/pom.xml
index 254fe25a..f3fd9c4f 100644
--- a/johnzon-websocket/pom.xml
+++ b/johnzon-websocket/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18
+1.2.19-SNAPSHOT
   
   4.0.0
 
diff --git a/pom.xml b/pom.xml
index 4aad8e00..19e9f038 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
   org.apache.johnzon
   johnzon
   pom
-  1.2.18
+  1.2.19-SNAPSHOT
   Apache Johnzon
   Apache Johnzon is an implementation of JSR-353 (JavaTM API for 
JSON Processing).
   2014
@@ -510,7 +510,7 @@
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 https://git-wip-us.apache.org/repos/asf?p=johnzon.git
-v1.2.18
+HEAD
   
 
   



[johnzon] branch master updated (cc3a5119 -> 125b0051)

2022-04-30 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


from cc3a5119 ensure johnzon-core is not used in mapper/jsonb + minor fixed 
on Snippet buffering
 new 01919f91 [maven-release-plugin] prepare release v1.2.18
 new 125b0051 [maven-release-plugin] prepare for next development iteration

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonlogic/pom.xml| 2 +-
 johnzon-jsonp-strict/pom.xml | 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-osgi/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 2 +-
 13 files changed, 13 insertions(+), 13 deletions(-)



[johnzon] 01/02: [maven-release-plugin] prepare release v1.2.18

2022-04-30 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 01919f911e63f2efdb4aa4245b45375f3e8c778e
Author: Mark Struberg 
AuthorDate: Sat Apr 30 13:36:17 2022 +0200

[maven-release-plugin] prepare release v1.2.18
---
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonlogic/pom.xml| 2 +-
 johnzon-jsonp-strict/pom.xml | 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-osgi/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 4 ++--
 13 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/johnzon-core/pom.xml b/johnzon-core/pom.xml
index 8ec043fa..a9767098 100644
--- a/johnzon-core/pom.xml
+++ b/johnzon-core/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-distribution/pom.xml b/johnzon-distribution/pom.xml
index 1f497128..8509103a 100644
--- a/johnzon-distribution/pom.xml
+++ b/johnzon-distribution/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-jaxrs/pom.xml b/johnzon-jaxrs/pom.xml
index 2b98363f..ea5be6d4 100644
--- a/johnzon-jaxrs/pom.xml
+++ b/johnzon-jaxrs/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-json-extras/pom.xml b/johnzon-json-extras/pom.xml
index f269abf5..db6371b9 100644
--- a/johnzon-json-extras/pom.xml
+++ b/johnzon-json-extras/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-jsonb/pom.xml b/johnzon-jsonb/pom.xml
index b4f1b3f1..9a26e5d9 100644
--- a/johnzon-jsonb/pom.xml
+++ b/johnzon-jsonb/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-jsonlogic/pom.xml b/johnzon-jsonlogic/pom.xml
index 9652b384..094a25b8 100644
--- a/johnzon-jsonlogic/pom.xml
+++ b/johnzon-jsonlogic/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-jsonp-strict/pom.xml b/johnzon-jsonp-strict/pom.xml
index 4aa6dd60..bf579ca2 100644
--- a/johnzon-jsonp-strict/pom.xml
+++ b/johnzon-jsonp-strict/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-jsonschema/pom.xml b/johnzon-jsonschema/pom.xml
index 87a33a0a..49de8735 100644
--- a/johnzon-jsonschema/pom.xml
+++ b/johnzon-jsonschema/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-mapper/pom.xml b/johnzon-mapper/pom.xml
index f4e34279..4d063991 100644
--- a/johnzon-mapper/pom.xml
+++ b/johnzon-mapper/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-maven-plugin/pom.xml b/johnzon-maven-plugin/pom.xml
index 2f683557..d45addeb 100644
--- a/johnzon-maven-plugin/pom.xml
+++ b/johnzon-maven-plugin/pom.xml
@@ -23,7 +23,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
 
   johnzon-maven-plugin
diff --git a/johnzon-osgi/pom.xml b/johnzon-osgi/pom.xml
index d4d5a2b3..895963b8 100644
--- a/johnzon-osgi/pom.xml
+++ b/johnzon-osgi/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/johnzon-websocket/pom.xml b/johnzon-websocket/pom.xml
index 0da11714..254fe25a 100644
--- a/johnzon-websocket/pom.xml
+++ b/johnzon-websocket/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.18-SNAPSHOT
+1.2.18
   
   4.0.0
 
diff --git a/pom.xml b/pom.xml
index e2ae870e..4aad8e00 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
   org.apache.johnzon
   johnzon
   pom
-  1.2.18-SNAPSHOT
+  1.2.18
   Apache Johnzon
   Apache Johnzon is an implementation of JSR-353 (JavaTM API for 
JSON Processing).
   2014
@@ -510,7 +510,7 @@
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 https://git-wip-us.apache.org/repos/asf?p=johnzon.git
-HEAD
+v1.2.18
   
 
   



svn commit: r53990 - in /release/johnzon: johnzon-1.2.15/ johnzon-1.2.17/

2022-04-21 Thread struberg
Author: struberg
Date: Thu Apr 21 11:53:10 2022
New Revision: 53990

Log:
upload johnzon-1.2.17 release

Added:
release/johnzon/johnzon-1.2.17/
release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip   (with props)
release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.asc   (with 
props)
release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha1
release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha512
release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip   (with 
props)
release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.asc   
(with props)
release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha1
release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha512
Removed:
release/johnzon/johnzon-1.2.15/

Added: release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip
--
svn:mime-type = application/zip

Added: release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.asc
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.asc
--
svn:mime-type = application/pgp-signature

Added: release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha1
==
--- release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha1 (added)
+++ release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha1 Thu Apr 
21 11:53:10 2022
@@ -0,0 +1 @@
+5c4a6638aa2dbeeba22f2ee26e07a5e907c4aae4
\ No newline at end of file

Added: release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha512
==
--- release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha512 (added)
+++ release/johnzon/johnzon-1.2.17/apache-johnzon-1.2.17-bin.zip.sha512 Thu Apr 
21 11:53:10 2022
@@ -0,0 +1 @@
+8fa35aa2157f2ed2c9f57f5a09fc4d435f862d6285e49c4f0ca77187a00fed87535a09e9d4c8c97aed41873adfc2962ef5ec159f438259ed4544d01c4177ce9a
  apache-johnzon-1.2.17-bin.zip

Added: release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip
--
svn:mime-type = application/zip

Added: release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.asc
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.asc
--
svn:mime-type = application/pgp-signature

Added: release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha1
==
--- release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha1 
(added)
+++ release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha1 Thu 
Apr 21 11:53:10 2022
@@ -0,0 +1 @@
+91791ba7aeb835234908f2aeebf5a7587fe46962
\ No newline at end of file

Added: release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha512
==
--- release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha512 
(added)
+++ release/johnzon/johnzon-1.2.17/johnzon-1.2.17-source-release.zip.sha512 Thu 
Apr 21 11:53:10 2022
@@ -0,0 +1 @@
+283391ae94557b170386614802b10e9846b5241889cc1e06d0dbed3df006c7ef31445b38b8a248d9fb62d1c7a41a6726fca6be0bd5fc5436432b822c8c50dc57
  johnzon-1.2.17-source-release.zip




[johnzon] annotated tag v1.2.17 created (now a5dde77)

2022-04-21 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

struberg pushed a change to annotated tag v1.2.17
in repository https://gitbox.apache.org/repos/asf/johnzon.git


  at a5dde77  (tag)
 tagging 834a6af81fdb02f9079acef2c7b0fbf015afb8b0 (commit)
 replaces v1.2.16
  by Mark Struberg
  on Wed Apr 13 08:53:08 2022 +0200

- Log -
[maven-release-plugin] copy for tag v1.2.17
---

No new revisions were added by this update.



[johnzon] branch master updated (251e31b -> b8fc163)

2022-04-21 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


from 251e31b  JOHNZON-364 remove unused methods
 new 834a6af  [maven-release-plugin] prepare release v1.2.17
 new b8fc163  [maven-release-plugin] prepare for next development iteration

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonlogic/pom.xml| 2 +-
 johnzon-jsonp-strict/pom.xml | 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-osgi/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 4 ++--
 13 files changed, 14 insertions(+), 14 deletions(-)



[johnzon] 02/02: [maven-release-plugin] prepare for next development iteration

2022-04-21 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit b8fc1636d51f73b458385d2e3ae6bba8db86810c
Author: Mark Struberg 
AuthorDate: Wed Apr 13 08:53:08 2022 +0200

[maven-release-plugin] prepare for next development iteration
---
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonlogic/pom.xml| 2 +-
 johnzon-jsonp-strict/pom.xml | 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-osgi/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 4 ++--
 13 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/johnzon-core/pom.xml b/johnzon-core/pom.xml
index 5ca2332..8ec043f 100644
--- a/johnzon-core/pom.xml
+++ b/johnzon-core/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-distribution/pom.xml b/johnzon-distribution/pom.xml
index 9e80dc5..1f49712 100644
--- a/johnzon-distribution/pom.xml
+++ b/johnzon-distribution/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jaxrs/pom.xml b/johnzon-jaxrs/pom.xml
index 47d2c12..2b98363 100644
--- a/johnzon-jaxrs/pom.xml
+++ b/johnzon-jaxrs/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-json-extras/pom.xml b/johnzon-json-extras/pom.xml
index 440c837..f269abf 100644
--- a/johnzon-json-extras/pom.xml
+++ b/johnzon-json-extras/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonb/pom.xml b/johnzon-jsonb/pom.xml
index d5d0f69..b4f1b3f 100644
--- a/johnzon-jsonb/pom.xml
+++ b/johnzon-jsonb/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonlogic/pom.xml b/johnzon-jsonlogic/pom.xml
index 65bb878..9652b38 100644
--- a/johnzon-jsonlogic/pom.xml
+++ b/johnzon-jsonlogic/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonp-strict/pom.xml b/johnzon-jsonp-strict/pom.xml
index b4d6273..4aa6dd6 100644
--- a/johnzon-jsonp-strict/pom.xml
+++ b/johnzon-jsonp-strict/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonschema/pom.xml b/johnzon-jsonschema/pom.xml
index 2144662..87a33a0 100644
--- a/johnzon-jsonschema/pom.xml
+++ b/johnzon-jsonschema/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-mapper/pom.xml b/johnzon-mapper/pom.xml
index 5bc1863..acaa20f 100644
--- a/johnzon-mapper/pom.xml
+++ b/johnzon-mapper/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-maven-plugin/pom.xml b/johnzon-maven-plugin/pom.xml
index 9f8a942..2f68355 100644
--- a/johnzon-maven-plugin/pom.xml
+++ b/johnzon-maven-plugin/pom.xml
@@ -23,7 +23,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
 
   johnzon-maven-plugin
diff --git a/johnzon-osgi/pom.xml b/johnzon-osgi/pom.xml
index 40ab695..d4d5a2b 100644
--- a/johnzon-osgi/pom.xml
+++ b/johnzon-osgi/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-websocket/pom.xml b/johnzon-websocket/pom.xml
index 59c2204..0da1171 100644
--- a/johnzon-websocket/pom.xml
+++ b/johnzon-websocket/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17
+1.2.18-SNAPSHOT
   
   4.0.0
 
diff --git a/pom.xml b/pom.xml
index 3c3a0bb..b2f91b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
   org.apache.johnzon
   johnzon
   pom
-  1.2.17
+  1.2.18-SNAPSHOT
   Apache Johnzon
   Apache Johnzon is an implementation of JSR-353 (JavaTM API for 
JSON Processing).
   2014
@@ -510,7 +510,7 @@
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 https://git-wip-us.apache.org/repos/asf?p=johnzon.git
-v1.2.17
+HEAD
   
 
   



[johnzon] 01/02: [maven-release-plugin] prepare release v1.2.17

2022-04-21 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 834a6af81fdb02f9079acef2c7b0fbf015afb8b0
Author: Mark Struberg 
AuthorDate: Wed Apr 13 08:52:58 2022 +0200

[maven-release-plugin] prepare release v1.2.17
---
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonlogic/pom.xml| 2 +-
 johnzon-jsonp-strict/pom.xml | 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-osgi/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 6 +++---
 13 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/johnzon-core/pom.xml b/johnzon-core/pom.xml
index 8273fd0..5ca2332 100644
--- a/johnzon-core/pom.xml
+++ b/johnzon-core/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-distribution/pom.xml b/johnzon-distribution/pom.xml
index c99e728..9e80dc5 100644
--- a/johnzon-distribution/pom.xml
+++ b/johnzon-distribution/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-jaxrs/pom.xml b/johnzon-jaxrs/pom.xml
index b3f9cc3..47d2c12 100644
--- a/johnzon-jaxrs/pom.xml
+++ b/johnzon-jaxrs/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-json-extras/pom.xml b/johnzon-json-extras/pom.xml
index e311560..440c837 100644
--- a/johnzon-json-extras/pom.xml
+++ b/johnzon-json-extras/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-jsonb/pom.xml b/johnzon-jsonb/pom.xml
index 8a7bdf1..d5d0f69 100644
--- a/johnzon-jsonb/pom.xml
+++ b/johnzon-jsonb/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-jsonlogic/pom.xml b/johnzon-jsonlogic/pom.xml
index 12e266d..65bb878 100644
--- a/johnzon-jsonlogic/pom.xml
+++ b/johnzon-jsonlogic/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-jsonp-strict/pom.xml b/johnzon-jsonp-strict/pom.xml
index 55029a8..b4d6273 100644
--- a/johnzon-jsonp-strict/pom.xml
+++ b/johnzon-jsonp-strict/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-jsonschema/pom.xml b/johnzon-jsonschema/pom.xml
index 24f0f7f..2144662 100644
--- a/johnzon-jsonschema/pom.xml
+++ b/johnzon-jsonschema/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-mapper/pom.xml b/johnzon-mapper/pom.xml
index 72aa972..5bc1863 100644
--- a/johnzon-mapper/pom.xml
+++ b/johnzon-mapper/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-maven-plugin/pom.xml b/johnzon-maven-plugin/pom.xml
index 45ea1d1..9f8a942 100644
--- a/johnzon-maven-plugin/pom.xml
+++ b/johnzon-maven-plugin/pom.xml
@@ -23,7 +23,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
 
   johnzon-maven-plugin
diff --git a/johnzon-osgi/pom.xml b/johnzon-osgi/pom.xml
index 2dfdbbd..40ab695 100644
--- a/johnzon-osgi/pom.xml
+++ b/johnzon-osgi/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/johnzon-websocket/pom.xml b/johnzon-websocket/pom.xml
index e72a463..59c2204 100644
--- a/johnzon-websocket/pom.xml
+++ b/johnzon-websocket/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.2.17-SNAPSHOT
+1.2.17
   
   4.0.0
 
diff --git a/pom.xml b/pom.xml
index 1675ae5..3c3a0bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
   org.apache.johnzon
   johnzon
   pom
-  1.2.17-SNAPSHOT
+  1.2.17
   Apache Johnzon
   Apache Johnzon is an implementation of JSR-353 (JavaTM API for 
JSON Processing).
   2014
@@ -51,7 +51,7 @@
 
 -Xms1024m -Xmx2048m 
-Dfile.encoding=UTF-8
 2.0.23
-
+
   
 
   
@@ -510,7 +510,7 @@
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 https://git-wip-us.apache.org/repos/asf?p=johnzon.git
-HEAD
+v1.2.17
   
 
   



[johnzon] branch master updated: JOHNZON-364 remove unused methods

2022-04-12 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 251e31b  JOHNZON-364 remove unused methods
251e31b is described below

commit 251e31b6ab8c9024c2a104eeaf41032defa004bd
Author: Mark Struberg 
AuthorDate: Tue Apr 12 11:00:07 2022 +0200

JOHNZON-364 remove unused methods
---
 .../jsonb/DefaultPropertyVisibilityStrategy.java   | 45 --
 1 file changed, 45 deletions(-)

diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
index ff854a7..ebf427e 100644
--- 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
+++ 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
@@ -27,9 +27,6 @@ import javax.json.bind.config.PropertyVisibilityStrategy;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -79,49 +76,7 @@ class DefaultPropertyVisibilityStrategy implements 
javax.json.bind.config.Proper
 }
 }
 
-/**
- * Calculate all the getters of the given class.
- */
-private Map calculateGetters(final Class clazz) {
-final Map getters = new HashMap<>();
-for (final Method m : clazz.getDeclaredMethods()) {
-if (m.getParameterCount() > 0) {
-continue;
-}
-if (m.getName().startsWith("get") && m.getName().length() > 3) {
-getters.put(
-Character.toLowerCase(m.getName().charAt(3)) + 
m.getName().substring(4),
-Modifier.isPublic(m.getModifiers()));
-} else if (m.getName().startsWith("is") && m.getName().length() > 
2) {
-getters.put(
-Character.toLowerCase(m.getName().charAt(2)) + 
m.getName().substring(3),
-Modifier.isPublic(m.getModifiers()));
-}
-}
-final Class superclass = clazz.getSuperclass();
-if (superclass != Object.class && superclass != null && 
!"java.lang.Record".equals(superclass.getName())) {
-calculateGetters(superclass).forEach(getters::putIfAbsent); // 
don't override child getter if exists
-}
-return getters.isEmpty() ? Collections.emptyMap() : getters;
-}
 
-private Map calculateSetters(final Class clazz) {
-final Map result = new HashMap<>();
-for (final Method m : clazz.getDeclaredMethods()) {
-if (m.getParameterCount() != 1) {
-continue;
-}
-if (m.getName().startsWith("set") && m.getName().length() > 3) {
-result.put(
-Character.toLowerCase(m.getName().charAt(3)) + 
m.getName().substring(4),
-Modifier.isPublic(m.getModifiers()));
-}
-}
-if (clazz.getSuperclass() != Object.class) {
-
calculateSetters(clazz.getSuperclass()).forEach(result::putIfAbsent);
-}
-return result.isEmpty() ? Collections.emptyMap() : result;
-}
 
 @Override
 public boolean isVisible(final Method method) {



[johnzon] branch master updated: JOHNZON-264 move introspection stuff to new BeanUtil

2022-04-12 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 442b449  JOHNZON-264 move introspection stuff to new BeanUtil
442b449 is described below

commit 442b44992ca6dcfc702d64df121d0b969ade5336
Author: Mark Struberg 
AuthorDate: Tue Apr 12 10:53:35 2022 +0200

JOHNZON-264 move introspection stuff to new BeanUtil
---
 .../org/apache/johnzon/core/util/ClassUtil.java| 32 --
 .../jsonb/DefaultPropertyVisibilityStrategy.java   |  6 +-
 .../mapper/access/FieldAndMethodAccessMode.java|  6 +-
 .../org/apache/johnzon/mapper/util/BeanUtil.java   | 68 +-
 .../johnzon/mapper/internal/BeanUtilTest.java  | 29 ++---
 5 files changed, 56 insertions(+), 85 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java
index 1eebe6f..1dc189b 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java
@@ -58,36 +58,4 @@ public final class ClassUtil {
 }
 }
 
-/**
- * Calculate the name of a getter based on the name of it's field and the 
type
- *
- * @param fieldName
- * @param type  of the field
- * @return "get" or "is" method name for the field
- */
-public static String getterName(String fieldName, Class type) {
-StringBuilder sb = new StringBuilder(50);
-sb.append(type == Boolean.class || type == boolean.class ? "is" : 
"get");
-
sb.append(Character.toUpperCase(fieldName.charAt(0))).append(fieldName.substring(1));
-return sb.toString();
-}
-
-/**
- * Calculate the name of a setter based on the name of it's field
- *
- * @param fieldName
- * @return "set" method name for the field
- */
-public static String setterName(String fieldName) {
-StringBuilder sb = new StringBuilder(50);
-sb.append("set");
-
sb.append(Character.toUpperCase(fieldName.charAt(0))).append(fieldName.substring(1));
-return sb.toString();
-}
-
-public static String capitalizeName(String fieldName) {
-StringBuilder sb = new StringBuilder(50);
-
sb.append(Character.toUpperCase(fieldName.charAt(0))).append(fieldName.substring(1));
-return sb.toString();
-}
 }
\ No newline at end of file
diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
index 33e0be5..ff854a7 100644
--- 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
+++ 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
@@ -18,8 +18,8 @@
  */
 package org.apache.johnzon.jsonb;
 
-import org.apache.johnzon.core.util.ClassUtil;
 import org.apache.johnzon.mapper.Cleanable;
+import org.apache.johnzon.mapper.util.BeanUtil;
 
 import javax.json.bind.annotation.JsonbProperty;
 import javax.json.bind.annotation.JsonbVisibility;
@@ -60,9 +60,9 @@ class DefaultPropertyVisibilityStrategy implements 
javax.json.bind.config.Proper
 // 3.7.1. Scope and Field access strategy
 // note: we should bind the class since a field of a parent class can 
have a getter in a child
 if (!useGetter) {
-return !hasMethod(root, ClassUtil.setterName(field.getName()));
+return !hasMethod(root, BeanUtil.setterName(field.getName()));
 }
-final String capitalizedName = 
ClassUtil.capitalizeName(field.getName());
+final String capitalizedName = BeanUtil.capitalize(field.getName());
 return !hasMethod(root, "get" + capitalizedName) ||  hasMethod(root, 
"is" + capitalizedName);
 }
 
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
index c06de48..6d3ad42 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessMode.java
@@ -24,8 +24,8 @@ import org.apache.johnzon.mapper.Adapter;
 import org.apache.johnzon.mapper.JohnzonIgnore;
 import org.apache.johnzon.mapper.JohnzonProperty;
 import org.apache.johnzon.mapper.ObjectConverter;
+import org.apache.johnzon.mapper.util.BeanUtil;
 
-import java.beans.Introspector;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
@

[johnzon] 01/02: fix DefaultPropertyVisibilityStrategy to respect the spec, ensure we clean the cache + fix backward compatibility of the FieldAndMethodAccessMode

2022-04-12 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 46a1bb8103e9f6dc0cd6b174b5a85a22a578e499
Author: Romain Manni-Bucau 
AuthorDate: Sun Apr 10 20:06:50 2022 +0200

fix DefaultPropertyVisibilityStrategy to respect the spec, ensure we clean 
the cache + fix backward compatibility of the FieldAndMethodAccessMode
---
 .../jsonb/DefaultPropertyVisibilityStrategy.java   |  96 +-
 .../org/apache/johnzon/jsonb/JohnzonBuilder.java   |   2 +-
 .../org/apache/johnzon/jsonb/JsonbAccessMode.java  |  45 +--
 .../DefaultPropertyVisibilityStrategyTest.java |  45 ++-
 .../jsonb/api/experimental/JsonbExtensionTest.java |   4 -
 .../java/org/apache/johnzon/mapper/Cleanable.java  |  23 
 .../org/apache/johnzon/mapper/MapperBuilder.java   |   2 +-
 .../java/org/apache/johnzon/mapper/Mappings.java   |  92 +++---
 .../mapper/access/FieldAndMethodAccessMode.java|  42 ++-
 .../access/FieldAndMethodAccessModeTest.java   | 138 +
 10 files changed, 393 insertions(+), 96 deletions(-)

diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
index 141b5a0..fe4d449 100644
--- 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
+++ 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
@@ -18,64 +18,96 @@
  */
 package org.apache.johnzon.jsonb;
 
-import static java.util.Optional.ofNullable;
+import org.apache.johnzon.mapper.Cleanable;
 
-import java.beans.Introspector;
+import javax.json.bind.annotation.JsonbProperty;
+import javax.json.bind.annotation.JsonbVisibility;
+import javax.json.bind.config.PropertyVisibilityStrategy;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import javax.json.bind.annotation.JsonbProperty;
-import javax.json.bind.annotation.JsonbVisibility;
-import javax.json.bind.config.PropertyVisibilityStrategy;
+import static java.util.Optional.ofNullable;
 
-class DefaultPropertyVisibilityStrategy implements 
javax.json.bind.config.PropertyVisibilityStrategy {
+class DefaultPropertyVisibilityStrategy implements 
javax.json.bind.config.PropertyVisibilityStrategy, Cleanable> {
 private final ConcurrentMap, PropertyVisibilityStrategy> 
strategies = new ConcurrentHashMap<>();
-private final ConcurrentMap, List> getters = new 
ConcurrentHashMap<>();
+private final ConcurrentMap, Map> getters = new 
ConcurrentHashMap<>();
+private final ConcurrentMap, Map> setters = new 
ConcurrentHashMap<>();
 
 private volatile boolean skipGetpackage;
 
 @Override
 public boolean isVisible(final Field field) {
+return isVisible(field, field.getDeclaringClass(), true);
+}
+
+public boolean isVisible(final Field field, final Class root, final 
boolean useGetter) {
 if (field.getAnnotation(JsonbProperty.class) != null) {
 return true;
 }
-final PropertyVisibilityStrategy strategy = strategies.computeIfAbsent(
-field.getDeclaringClass(), this::visibilityStrategy);
-return strategy == this ? isFieldVisible(field) : 
strategy.isVisible(field);
+final PropertyVisibilityStrategy strategy = 
strategies.computeIfAbsent(root, this::visibilityStrategy);
+return strategy == this ? isFieldVisible(field, root, useGetter) : 
strategy.isVisible(field);
 }
 
-private boolean isFieldVisible(Field field) {
+private boolean isFieldVisible(final Field field, final Class root, 
final boolean useGetter) {
 if (!Modifier.isPublic(field.getModifiers())) {
 return false;
 }
-// also check if there is any setter, in which case the field should 
be treated as non-visible as well.
-return !getters.computeIfAbsent(field.getDeclaringClass(), 
this::calculateGetters).contains(field.getName());
+// 3.7.1. Scope and Field access strategy
+// note: we should bind the class since a field of a parent class can 
have a getter in a child
+if (!useGetter) {
+return setters.computeIfAbsent(root, 
this::calculateSetters).getOrDefault(field.getName(), true);
+}
+return getters.computeIfAbsent(root, 
this::calculateGetters).getOrDefault(field.getName(), true);
 }
 
 /**
  * Calculate all the getters of the given class.
  */
-private List calculateGetters(Class clazz) {
-List getters = ne

[johnzon] 02/02: JOHNZON-364 use reflection to avoid caches.

2022-04-12 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 23b49f3d517a07e3d51f1ea1d32cf94a474cd7d4
Author: Mark Struberg 
AuthorDate: Tue Apr 12 10:03:36 2022 +0200

JOHNZON-364 use reflection to avoid caches.
---
 .../org/apache/johnzon/core/util/ClassUtil.java| 32 ++
 .../org/apache/johnzon/core/ClassUtilTest.java | 38 ++
 .../jsonb/DefaultPropertyVisibilityStrategy.java   | 23 +
 3 files changed, 87 insertions(+), 6 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java
index 1dc189b..1eebe6f 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/util/ClassUtil.java
@@ -58,4 +58,36 @@ public final class ClassUtil {
 }
 }
 
+/**
+ * Calculate the name of a getter based on the name of it's field and the 
type
+ *
+ * @param fieldName
+ * @param type  of the field
+ * @return "get" or "is" method name for the field
+ */
+public static String getterName(String fieldName, Class type) {
+StringBuilder sb = new StringBuilder(50);
+sb.append(type == Boolean.class || type == boolean.class ? "is" : 
"get");
+
sb.append(Character.toUpperCase(fieldName.charAt(0))).append(fieldName.substring(1));
+return sb.toString();
+}
+
+/**
+ * Calculate the name of a setter based on the name of it's field
+ *
+ * @param fieldName
+ * @return "set" method name for the field
+ */
+public static String setterName(String fieldName) {
+StringBuilder sb = new StringBuilder(50);
+sb.append("set");
+
sb.append(Character.toUpperCase(fieldName.charAt(0))).append(fieldName.substring(1));
+return sb.toString();
+}
+
+public static String capitalizeName(String fieldName) {
+StringBuilder sb = new StringBuilder(50);
+
sb.append(Character.toUpperCase(fieldName.charAt(0))).append(fieldName.substring(1));
+return sb.toString();
+}
 }
\ No newline at end of file
diff --git 
a/johnzon-core/src/test/java/org/apache/johnzon/core/ClassUtilTest.java 
b/johnzon-core/src/test/java/org/apache/johnzon/core/ClassUtilTest.java
new file mode 100644
index 000..299d146
--- /dev/null
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/ClassUtilTest.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.johnzon.core;
+
+import org.apache.johnzon.core.util.ClassUtil;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class ClassUtilTest {
+
+@Test
+public void testGetterNames() {
+assertEquals("getMyName", ClassUtil.getterName("myName", 
Integer.class));
+assertEquals("isEnabled", ClassUtil.getterName("enabled", 
Boolean.class));
+assertEquals("isEnabled", ClassUtil.getterName("enabled", 
boolean.class));
+}
+
+@Test
+public void testSetterNames() {
+assertEquals("setMyName", ClassUtil.setterName("myName"));
+assertEquals("setEnabled", ClassUtil.setterName("enabled"));
+}
+}
diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
index fe4d449..33e0be5 100644
--- 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
+++ 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
@@ -18,6 +18,7 @@
  */
 package org.apache.johnzon.jsonb;
 
+import org.apache.johnzon.core.util.ClassUtil;
 import org.apache.johnzon.mapper.Cleanable;
 
 import javax.json.bind.annotation.JsonbProperty;
@@ -36,8 +37,6 @@ import static ja

[johnzon] branch master updated (a38e0c3 -> 23b49f3)

2022-04-12 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


from a38e0c3  JOHNZON-364 JsonbVisibility always wins over default rules
 new 46a1bb8  fix DefaultPropertyVisibilityStrategy to respect the spec, 
ensure we clean the cache + fix backward compatibility of the 
FieldAndMethodAccessMode
 new 23b49f3  JOHNZON-364 use reflection to avoid caches.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/johnzon/core/util/ClassUtil.java|  32 +
 ...nBuilderFactoryTest.java => ClassUtilTest.java} |  30 ++---
 .../jsonb/DefaultPropertyVisibilityStrategy.java   | 107 +++-
 .../org/apache/johnzon/jsonb/JohnzonBuilder.java   |   2 +-
 .../org/apache/johnzon/jsonb/JsonbAccessMode.java  |  45 +--
 .../DefaultPropertyVisibilityStrategyTest.java |  45 ++-
 .../jsonb/api/experimental/JsonbExtensionTest.java |   4 -
 .../java/org/apache/johnzon/mapper/Cleanable.java  |   8 +-
 .../org/apache/johnzon/mapper/MapperBuilder.java   |   2 +-
 .../java/org/apache/johnzon/mapper/Mappings.java   |  92 +++---
 .../mapper/access/FieldAndMethodAccessMode.java|  42 ++-
 .../access/FieldAndMethodAccessModeTest.java   | 138 +
 12 files changed, 429 insertions(+), 118 deletions(-)
 copy 
johnzon-core/src/test/java/org/apache/johnzon/core/{JsonBuilderFactoryTest.java 
=> ClassUtilTest.java} (58%)
 copy 
johnzon-websocket/src/main/java/org/apache/johnzon/websocket/jsr/package-info.java
 => johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Cleanable.java (89%)
 create mode 100644 
johnzon-mapper/src/test/java/org/apache/johnzon/mapper/access/FieldAndMethodAccessModeTest.java



[johnzon] branch master updated: JOHNZON-364 JsonbVisibility always wins over default rules

2022-02-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new a38e0c3  JOHNZON-364 JsonbVisibility always wins over default rules
a38e0c3 is described below

commit a38e0c3daef597bae13e0cc68548f8386272c570
Author: Mark Struberg 
AuthorDate: Fri Feb 25 15:11:03 2022 +0100

JOHNZON-364 JsonbVisibility always wins over default rules

This partially reverts JOHNZON-250 which did remove fields as readers if a 
getter exists.
Sadly this also did remove the option to keep those fields via 
JsonbVisibility.
---
 .../jsonb/DefaultPropertyVisibilityStrategy.java   | 36 +-
 .../org/apache/johnzon/jsonb/JohnzonBuilder.java   |  2 +-
 ...icFieldTest.java => HidingPublicFieldTest.java} | 11 ++-
 .../apache/johnzon/jsonb/JsonbVisitilityTest.java  | 15 -
 .../jsonb/api/experimental/JsonbExtensionTest.java |  4 +++
 .../org/apache/johnzon/mapper/MapperBuilder.java   |  2 +-
 .../mapper/access/FieldAndMethodAccessMode.java| 32 +++
 7 files changed, 69 insertions(+), 33 deletions(-)

diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
index 5f59471..141b5a0 100644
--- 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
+++ 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
@@ -20,9 +20,13 @@ package org.apache.johnzon.jsonb;
 
 import static java.util.Optional.ofNullable;
 
+import java.beans.Introspector;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -32,6 +36,8 @@ import javax.json.bind.config.PropertyVisibilityStrategy;
 
 class DefaultPropertyVisibilityStrategy implements 
javax.json.bind.config.PropertyVisibilityStrategy {
 private final ConcurrentMap, PropertyVisibilityStrategy> 
strategies = new ConcurrentHashMap<>();
+private final ConcurrentMap, List> getters = new 
ConcurrentHashMap<>();
+
 private volatile boolean skipGetpackage;
 
 @Override
@@ -41,7 +47,35 @@ class DefaultPropertyVisibilityStrategy implements 
javax.json.bind.config.Proper
 }
 final PropertyVisibilityStrategy strategy = strategies.computeIfAbsent(
 field.getDeclaringClass(), this::visibilityStrategy);
-return strategy == this ? Modifier.isPublic(field.getModifiers()) : 
strategy.isVisible(field);
+return strategy == this ? isFieldVisible(field) : 
strategy.isVisible(field);
+}
+
+private boolean isFieldVisible(Field field) {
+if (!Modifier.isPublic(field.getModifiers())) {
+return false;
+}
+// also check if there is any setter, in which case the field should 
be treated as non-visible as well.
+return !getters.computeIfAbsent(field.getDeclaringClass(), 
this::calculateGetters).contains(field.getName());
+}
+
+/**
+ * Calculate all the getters of the given class.
+ */
+private List calculateGetters(Class clazz) {
+List getters = new ArrayList<>();
+for (Method m : clazz.getDeclaredMethods()) {
+if (m.getParameterCount() == 0) {
+if (m.getName().startsWith("get")) {
+
getters.add(Introspector.decapitalize(m.getName().substring(3)));
+} else if (m.getName().startsWith("is")) {
+
getters.add(Introspector.decapitalize(m.getName().substring(2)));
+}
+}
+}
+if (clazz.getSuperclass() != Object.class) {
+getters.addAll(calculateGetters(clazz.getSuperclass()));
+}
+return getters.isEmpty() ? Collections.emptyList() : getters;
 }
 
 @Override
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 24966cc..b304bd1 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
@@ -221,7 +221,7 @@ public class JohnzonBuilder implements JsonbBuilder {
 factory, jsonp, builderFactorySupplier, 
parserFactoryProvider,
 config.getProperty("johnzon.accessModeDelegate")
 .map(this::toAccessMode)
-.orElseGet(() -> new 
FieldAndMethodAccessMode(true, true

[johnzon] branch master updated: various small performance improvenemts

2021-01-31 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 6474c96  various small performance improvenemts
6474c96 is described below

commit 6474c9697d1c81659baddef421dbfbb9fd161635
Author: Mark Struberg 
AuthorDate: Sun Jan 31 23:03:29 2021 +0100

various small performance improvenemts

* start with bigger buffers
* bufferLeft to avoid recalculation every time
---
 .../org/apache/johnzon/core/JsonArrayImpl.java |  2 +-
 .../org/apache/johnzon/core/JsonObjectImpl.java|  2 +-
 .../apache/johnzon/core/JsonStreamParserImpl.java  | 27 --
 .../java/org/apache/johnzon/mapper/Mapper.java |  6 ++---
 4 files changed, 25 insertions(+), 12 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
index d05cfbf..7088bfd 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
@@ -166,7 +166,7 @@ class JsonArrayImpl extends AbstractList 
implements JsonArray, Serial
 if (unmodifieableBackingList.isEmpty()) {
 return "[]";
 }
-final StringWriter writer = new StringWriter();
+final StringWriter writer = new StringWriter(2048);
 try (final JsonGenerator generator = new JsonGeneratorImpl(writer, 
provider, false)) {
 generator.writeStartArray();
 unmodifieableBackingList.forEach(generator::write);
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
index 4e45f08..f593327 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
@@ -146,7 +146,7 @@ final class JsonObjectImpl extends AbstractMap implements Jso
 if (unmodifieableBackingMap.isEmpty()) {
 return "{}";
 }
-final StringWriter writer = new StringWriter();
+final StringWriter writer = new StringWriter(2048);
 try (final JsonGenerator generator = new JsonGeneratorImpl(writer, 
provider, false)) {
 generator.writeStartObject();
 unmodifieableBackingMap.forEach(generator::write);
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
index 3e75b5c..8f2edb6 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
@@ -42,6 +42,9 @@ public class JsonStreamParserImpl extends 
JohnzonJsonParserImpl implements JsonC
 //-1 would cause a re-read of the first character in the buffer (which is 
at zero index)
 private int bufferPos = Integer.MIN_VALUE;
 
+// performance optimisation to avoid subtraction on readNextChar
+private int bufferLeft = 0;
+
 //available character in the buffer. It might be <= "buffer.length".
 private int availableCharsInBuffer;
 
@@ -220,7 +223,7 @@ public class JsonStreamParserImpl extends 
JohnzonJsonParserImpl implements JsonC
 previousEvent != VALUE_NULL && previousEvent != VALUE_NUMBER) {
 if (bufferPos < 0) { // check we don't have an empty string to 
parse
 final char c = readNextChar();
-bufferPos--;
+unreadChar();
 return c != EOF;
 }
 return true;
@@ -289,7 +292,7 @@ public class JsonStreamParserImpl extends 
JohnzonJsonParserImpl implements JsonC
 //refill is necessary copy the already read value part into the value 
buffer
 protected final char readNextChar() {
 
-if ((availableCharsInBuffer - bufferPos) <= 1) {
+if (bufferLeft == 0) {
 //fillbuffer
 
 //copy content from old buffer to valuebuffer
@@ -317,6 +320,7 @@ public class JsonStreamParserImpl extends 
JohnzonJsonParserImpl implements JsonC
 }
 
 bufferPos = 0;
+bufferLeft = availableCharsInBuffer - bufferPos - 1;
 //end fillbuffer
 } else {
 
@@ -327,6 +331,7 @@ public class JsonStreamParserImpl extends 
JohnzonJsonParserImpl implements JsonC
 //}
 
 bufferPos++;
+bufferLeft--;
 }
 
 return buffer[bufferPos];
@@ -370,13 +375,18 @@ public class JsonStreamParserImpl extends 
JohnzonJsonParserImpl implements JsonC
 : null;
 }
 
+private void unreadChar() {
+bufferPos--;

[johnzon] branch master updated: JOHNZON-333 respect RFC 7159 Section 7 (Strings)

2021-01-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new b8529a3  JOHNZON-333 respect RFC 7159 Section 7 (Strings)
b8529a3 is described below

commit b8529a3b8c45c759ccdd3d9ae2f27d67a5bb2d87
Author: Mark Struberg 
AuthorDate: Mon Jan 25 22:44:26 2021 +0100

JOHNZON-333 respect RFC 7159 Section 7 (Strings)

"test" as Java Object should result in a String "\"test\"".
Because the quotes are part of the JSON notation of a string.
This is nothing we may 'enforce' - this is clearly requrested by
the JSON RFC. And the JSON-B Spec points to the RFC.
---
 .../apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java  |  4 
 .../johnzon/jaxrs/WildcardConfigurableJohnzonProvider.java |  4 
 .../main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java |  3 ---
 .../java/org/apache/johnzon/jsonb/DefaultMappingTest.java  | 14 +-
 .../src/main/java/org/apache/johnzon/mapper/Mapper.java|  8 +++-
 .../main/java/org/apache/johnzon/mapper/MapperBuilder.java | 12 +---
 .../main/java/org/apache/johnzon/mapper/MapperConfig.java  |  8 +---
 .../java/org/apache/johnzon/mapper/MapperConfigTest.java   |  2 +-
 .../test/java/org/apache/johnzon/mapper/MapperTest.java|  3 +--
 .../src/test/java/org/superbiz/ExtendMappingTest.java  |  2 +-
 10 files changed, 21 insertions(+), 39 deletions(-)

diff --git 
a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
 
b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
index edcf545..ab616cc 100644
--- 
a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
+++ 
b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/ConfigurableJohnzonProvider.java
@@ -282,10 +282,6 @@ public class ConfigurableJohnzonProvider implements 
MessageBodyWriter, Mes
 builder.setReadAttributeBeforeWrite(rabw);
 }
 
-public void setEnforceQuoteString(final boolean val) {
-builder.setEnforceQuoteString(val);
-}
-
 public void setPrimitiveConverters(final boolean val) {
 builder.setPrimitiveConverters(val);
 }
diff --git 
a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WildcardConfigurableJohnzonProvider.java
 
b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WildcardConfigurableJohnzonProvider.java
index 5fc52fa..e841125 100644
--- 
a/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WildcardConfigurableJohnzonProvider.java
+++ 
b/johnzon-jaxrs/src/main/java/org/apache/johnzon/jaxrs/WildcardConfigurableJohnzonProvider.java
@@ -222,10 +222,6 @@ public class WildcardConfigurableJohnzonProvider 
implements MessageBodyWriter
 builder.setEncoding(encoding);
 }
 
-public void setEnforceQuoteString(final boolean val) {
-builder.setEnforceQuoteString(val);
-}
-
 public void setPrimitiveConverters(final boolean val) {
 builder.setPrimitiveConverters(val);
 }
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 0b749a4..d21bb18 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
@@ -164,9 +164,6 @@ public class JohnzonBuilder implements JsonbBuilder {
 .map(PropertyVisibilityStrategy.class::cast).orElse(new 
DefaultPropertyVisibilityStrategy());
 
 config.getProperty("johnzon.attributeOrder").ifPresent(comp -> 
builder.setAttributeOrder(Comparator.class.cast(comp)));
-config.getProperty("johnzon.enforceQuoteString")
-.map(this::toBool)
-.ifPresent(builder::setEnforceQuoteString);
 config.getProperty("johnzon.primitiveConverters")
 .map(this::toBool)
 .ifPresent(builder::setPrimitiveConverters);
diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DefaultMappingTest.java 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DefaultMappingTest.java
index f8738ef..c930b44 100644
--- 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DefaultMappingTest.java
+++ 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/DefaultMappingTest.java
@@ -61,6 +61,7 @@ import static org.junit.Assert.fail;
 // taken from the examples of the spec
 // TODO: bunch of asserts
 //CHECKSTYLE:OFF
+
 public class DefaultMappingTest {
 private static final Jsonb JSONB = JsonbBuilder.create();
 
@@ -150,11 +151,11 @@ public class DefaultMappingTest {
 
 @Test
 public void simpleValues() {
-assertEquals("\"strValue\"", JSONB.toJson("\&q

[johnzon] branch master updated: JOHNZON-271 fix bugs in our JsonParser Stream handling

2019-08-20 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 9871e29  JOHNZON-271 fix bugs in our JsonParser Stream handling
9871e29 is described below

commit 9871e297994a092d8e2492c58686bac6c23b56a4
Author: Mark Struberg 
AuthorDate: Tue Aug 20 20:50:05 2019 +0200

JOHNZON-271 fix bugs in our JsonParser Stream handling

problems uncovered by running the JSON-P TCK which we now pass.
---
 johnzon-core/pom.xml   |  23 +
 .../org/apache/johnzon/core/JohnzonJsonParser.java |   2 +-
 .../apache/johnzon/core/JohnzonJsonParserImpl.java |  62 +
 .../apache/johnzon/core/JsonInMemoryParser.java|  15 ++-
 .../apache/johnzon/core/JsonStreamParserImpl.java  |  46 +++---
 .../johnzon/core/JsonParserStreamingTest.java  | 102 +
 .../org/apache/johnzon/core/ManualTckTest.java |  60 
 7 files changed, 257 insertions(+), 53 deletions(-)

diff --git a/johnzon-core/pom.xml b/johnzon-core/pom.xml
index dbe6d03..678d71c 100644
--- a/johnzon-core/pom.xml
+++ b/johnzon-core/pom.xml
@@ -47,4 +47,27 @@
   
 
   
+
+  
+
+  jakartaee-tck
+
+  
+
+  org.eclipse.jakartaee.tck.local
+  tsharness
+  8.0-SNAPSHOT
+  system
+  /opt/eclipse/javaeetck/lib/tsharness.jar
+
+
+  org.eclipse.jakartaee.tck.local
+  sonparsertests_appclient_vehicle_client
+  8.0-SNAPSHOT
+  system
+  
/opt/eclipse/javaeetck/dist/com/sun/ts/tests/jsonp/api/jsonparsertests/jsonparsertests_appclient_vehicle_client.jar
+
+  
+
+  
 
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParser.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParser.java
index cb0a40f..c26ca10 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParser.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParser.java
@@ -43,7 +43,7 @@ public interface JohnzonJsonParser extends JsonParser {
 }
 
 
-public static class JohnzonJsonParserWrapper implements JohnzonJsonParser {
+class JohnzonJsonParserWrapper implements JohnzonJsonParser {
 private final JsonParser jsonParser;
 
 public JohnzonJsonParserWrapper(JsonParser jsonParser) {
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java
index eaa6ed1..cf64a36 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java
@@ -17,6 +17,7 @@
 package org.apache.johnzon.core;
 
 
+import java.util.Collections;
 import java.util.Map;
 import java.util.stream.Stream;
 
@@ -34,8 +35,23 @@ public abstract class JohnzonJsonParserImpl implements 
JohnzonJsonParser {
  * @return {@code true} if we are currently inside an array
  */
 protected abstract boolean isInArray();
+/**
+ * @return {@code true} if we are currently inside an object
+ */
+protected abstract boolean isInObject();
+
 protected abstract BufferStrategy.BufferProvider 
getCharArrayProvider();
 
+private boolean manualNext = false;
+
+@Override
+public Event next() {
+manualNext = true;
+return internalNext();
+}
+
+protected abstract Event internalNext();
+
 @Override
 public JsonObject getObject() {
 Event current = current();
@@ -88,15 +104,17 @@ public abstract class JohnzonJsonParserImpl implements 
JohnzonJsonParser {
 
 @Override
 public void skipObject() {
-int level = 1;
-do {
-Event event = next();
-if (event == Event.START_OBJECT) {
-level++;
-} else if (event == Event.END_OBJECT) {
-level --;
-}
-} while (level > 0 && hasNext());
+if (isInObject()) {
+int level = 1;
+do {
+Event event = internalNext();
+if (event == Event.START_OBJECT) {
+level++;
+} else if (event == Event.END_OBJECT) {
+level--;
+}
+} while (level > 0 && hasNext());
+}
 }
 
 @Override
@@ -104,7 +122,7 @@ public abstract class JohnzonJsonParserImpl implements 
JohnzonJsonParser {
 if (isInArray()) {
 int level = 1;
 do {
-Event event = next();
+Event event = internalNext();
 if (event == Event.START_ARRAY) {
 level++;
 } else if (event == Event.E

[johnzon] branch master updated: JOHNZON-265 improve handling of JsonLongNumbers

2019-08-19 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 141de40  JOHNZON-265 improve handling of JsonLongNumbers
141de40 is described below

commit 141de40745c65e519c1415769d5e735b957553e9
Author: Mark Struberg 
AuthorDate: Mon Aug 19 16:52:52 2019 +0200

JOHNZON-265 improve handling of JsonLongNumbers
---
 .../src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java| 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
index 13a062c..852aa2e 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
@@ -259,7 +259,11 @@ class JsonGeneratorImpl implements JsonGenerator, 
JsonChars, Serializable {
 break;
 case NUMBER:
 final JsonNumber number = JsonNumber.class.cast(value);
-write(number.bigDecimalValue());
+if (number instanceof JsonLongImpl) {
+write(number.longValueExact());
+} else {
+write(number.bigDecimalValue());
+}
 break;
 case TRUE:
 write(true);



[johnzon] branch master updated: JOHNZON-265 fix handling of numbers which exceed long

2019-08-19 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 5a55c66  JOHNZON-265 fix handling of numbers which exceed long
5a55c66 is described below

commit 5a55c6677a6749eff4d4ddb11cd818a6e1cbd2ee
Author: Mark Struberg 
AuthorDate: Mon Aug 19 08:31:36 2019 +0200

JOHNZON-265 fix handling of numbers which exceed long
---
 .../org/apache/johnzon/core/JsonGeneratorImpl.java | 13 -
 .../apache/johnzon/core/JsonReaderImplTest.java| 22 ++
 2 files changed, 26 insertions(+), 9 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
index 6730ec7..13a062c 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
@@ -258,13 +258,8 @@ class JsonGeneratorImpl implements JsonGenerator, 
JsonChars, Serializable {
 write(JsonString.class.cast(value).getString());
 break;
 case NUMBER:
-//TODO optimize
 final JsonNumber number = JsonNumber.class.cast(value);
-if (number.isIntegral()) {
-write(number.longValueExact());
-} else {
-write(number.bigDecimalValue());
-}
+write(number.bigDecimalValue());
 break;
 case TRUE:
 write(true);
@@ -389,14 +384,14 @@ class JsonGeneratorImpl implements JsonGenerator, 
JsonChars, Serializable {
 @Override
 public JsonGenerator write(final BigDecimal value) {
 checkArrayOrValue();
-writeValue(String.valueOf(value));
+writeValue(value.toString());
 return this;
 }
 
 @Override
 public JsonGenerator write(final BigInteger value) {
 checkArrayOrValue();
-writeValue(String.valueOf(value));
+writeValue(value.toString());
 return this;
 }
 
@@ -695,7 +690,7 @@ class JsonGeneratorImpl implements JsonGenerator, 
JsonChars, Serializable {
 if (peek == GeneratorState.START_ARRAY || peek == 
GeneratorState.IN_ARRAY) {
 writeIndent();
 }
-justWrite(String.valueOf(value));
+justWrite(value);
 alignState();
 }
 
diff --git 
a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonReaderImplTest.java 
b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonReaderImplTest.java
index 1fa809d..e41cdbe 100644
--- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonReaderImplTest.java
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonReaderImplTest.java
@@ -92,6 +92,28 @@ public class JsonReaderImplTest {
 reader.close();
 }
 
+/**
+ * Test came up during the TCK adoption.
+ */
+@Test
+public void parseBigDecimal() {
+String json = "123456789012345678901234567890";
+JsonValue jsonValue = Json.createReader(new 
StringReader(json)).readValue();
+String newJson = jsonValue.toString();
+assertEquals(json, newJson);
+}
+
+/**
+ * Test came up during the TCK adoption.
+ */
+@Test
+public void parseBigDecimalArray() {
+String json = "[123456789012345678901234567890]";
+JsonValue jsonValue = Json.createReader(new 
StringReader(json)).readValue();
+String newJson = jsonValue.toString();
+assertEquals(json, newJson);
+}
+
 @Test
 public void unicode() {
 final JsonReader reader = 
Json.createReaderFactory(getFactoryConfig()).createReader(



svn commit: r35125 - in /release/johnzon: johnzon-1.1.12/ johnzon-1.1.13/

2019-08-05 Thread struberg
Author: struberg
Date: Mon Aug  5 09:12:04 2019
New Revision: 35125

Log:
distribution bits for Apache Johnzon-1.1.13

Added:
release/johnzon/johnzon-1.1.13/
release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip   (with props)
release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.asc
release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha1
release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha512
release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip   (with 
props)
release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip.asc
release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip.sha1
release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip.sha512
Removed:
release/johnzon/johnzon-1.1.12/

Added: release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip
--
svn:mime-type = application/octet-stream

Added: release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.asc
==
--- release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.asc (added)
+++ release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.asc Mon Aug  5 
09:12:04 2019
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIzBAABCgAdFiEEgthBm6aX8Of7hZFu6RKHgi/bgbEFAl1DDCAACgkQ6RKHgi/b
+gbFfGg//S1UN+jfbWQsjfAq7PKapwTlnyETo9HF0HZnZDyUCAKrVfYpI4YOt8/6W
+3EO2u81cB3s/ybPzhMPmSJZWNu+QuPRojcP7+FbV0Ozl0HX/MjfSJymv9/hUIgSI
+8cf+2zrQOa7qRX8T6OL4xJ+z79CWbEYmb2Elw0r331xavNNUoVf4mxflnCll71EU
+dsmAtLCJ9KU1EIDFJIw0NLxeRvMTWEUsUaAegMytMeaqiuoPM3xBGNdLc3TV8MqM
+Oa/LoRXXDsfSDfoRXdTHVvVeBX5VfW0SLLgxSq648VQIx2lmEEXTR9sZ1o5hflYd
+lfznUT7KuQnrXF6kXuwF5E8VJtA8ke5byzemo0oEAHxTN2KfyCrrLYDmahEqMFYJ
+diqqdApBp+wLZ+kysO9AwHbVD3qUpDLyls/qk8ayPkS7GWJARfVIq5iz7ZAQWz4t
+ccreY0+L6XgLtN+Aw+girz6nAk5HuroguAjTQWgqTvjNOoH9kv3Sz/mxGi4XZgYT
+RxNhCa9NlezVUFDGdqQjCVIrUXmEqnqYbKunXfbKttHKyXlhrK61h+iRS2o8pdzj
+/0MnVbz7YyJbpS5TCjdPo12dgNosdqU/VOjnbExtRptzfWkWFI1KJ39DSvLBOw5x
+0smVV3xsC+URFxS286uHTfVRVPiNj5DAVZczh++3eZ4RJUguWWA=
+=n9km
+-END PGP SIGNATURE-

Added: release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha1
==
--- release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha1 (added)
+++ release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha1 Mon Aug  
5 09:12:04 2019
@@ -0,0 +1 @@
+9df584d97a865cf20c13c76418b1ce52bbf3c75e
\ No newline at end of file

Added: release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha512
==
--- release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha512 (added)
+++ release/johnzon/johnzon-1.1.13/apache-johnzon-1.1.13-bin.zip.sha512 Mon Aug 
 5 09:12:04 2019
@@ -0,0 +1 @@
+d2dc4e2a0d21174c6b3a4c0f122e5f393eeed39f414c043cab4ca1c0b448af62d2e24a644c67ad5ee1ab232a79952740ee3c5aca6a9f47ec30a77aa97f95a271
  apache-johnzon-1.1.13-bin.zip

Added: release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip
==
Binary file - no diff available.

Propchange: release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip
--
svn:mime-type = application/octet-stream

Added: release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip.asc
==
--- release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip.asc (added)
+++ release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip.asc Mon 
Aug  5 09:12:04 2019
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIzBAABCgAdFiEEgthBm6aX8Of7hZFu6RKHgi/bgbEFAl1DC30ACgkQ6RKHgi/b
+gbHJLA/+JaIJSjtNW3Cs6Kd1nrEsJn1g3FCFukH8yk+U4eDvbhmpluU/SdThXGxY
+utUNfFoytRn+/KwW/BjmcKt+QiqTNGAebkHBBpya+c9OmN0c+PAe0ZR+flzjUsrR
+vQbnIo0A4CkYdWwiZqTZgevKbQv7zd+jd64lZ0Ieeb6opb2MBV5ESgGfnqXFQ7c+
+wD82RnqHVUwNojwLDsMZE/9gFNYcXkUl0fVudAN7nd0qp8q2QjOA/vviBH445IgE
+mWyAVKRsLxphAEGUtRMWSRxwUupowgIEZqo5+I6JYUeoaPq4I4W97hxbKxAQBKXO
+qwyMZdfmvgAQVm1HwX/hiNyuILPAigJlkX8AVDTBP4YHzzFoAUU4YJlGroG+jcu3
+SoCzs8btq44aDHMdBFfxwrZL90b+cWJqRq5KAR+S+HWYk1qejUqWJCwp38EbQZJs
+biDqUK20Z6awt8eo4WPSL8AMunpDzWkJdVQAxvLyLjbKWM5untzR3zw1f5zbvnJt
+Xxyvj6+LzdFsP8ZMc8CP+iiIEAsgXcPpB3BVH+erHJKNGLPB1h5VCMQmAHXcxFxj
+/unfRNjb+j1PTTqYar1BsQccpnTZXgVmTkeVKuVXMzO3gf2YFnjTgAn584JtYOSt
+N33USGXk8DFDUycetZpT0OKIX/mfbV1HsWkKeArUwHphAWWYMkw=
+=px29
+-END PGP SIGNATURE-

Added: release/johnzon/johnzon-1.1.13/johnzon-1.1.13-source-release.zip.sha1

[johnzon] 01/02: [maven-release-plugin] prepare release v1.1.13

2019-08-01 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 17cea5f4a75b5254b5b2464c37f8c8def65f5493
Author: Mark Struberg 
AuthorDate: Thu Aug 1 17:54:39 2019 +0200

[maven-release-plugin] prepare release v1.1.13
---
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 4 ++--
 10 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/johnzon-core/pom.xml b/johnzon-core/pom.xml
index b69d24e..4ee788b 100644
--- a/johnzon-core/pom.xml
+++ b/johnzon-core/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/johnzon-distribution/pom.xml b/johnzon-distribution/pom.xml
index 8ed1f16..71c0425 100644
--- a/johnzon-distribution/pom.xml
+++ b/johnzon-distribution/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/johnzon-jaxrs/pom.xml b/johnzon-jaxrs/pom.xml
index ed8a79d..0cb7869 100644
--- a/johnzon-jaxrs/pom.xml
+++ b/johnzon-jaxrs/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/johnzon-json-extras/pom.xml b/johnzon-json-extras/pom.xml
index 9f1b529..f9dd4ee 100644
--- a/johnzon-json-extras/pom.xml
+++ b/johnzon-json-extras/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/johnzon-jsonb/pom.xml b/johnzon-jsonb/pom.xml
index b51e0e1..8ca07ec 100644
--- a/johnzon-jsonb/pom.xml
+++ b/johnzon-jsonb/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/johnzon-jsonschema/pom.xml b/johnzon-jsonschema/pom.xml
index cae9f6e..b4d6f84 100644
--- a/johnzon-jsonschema/pom.xml
+++ b/johnzon-jsonschema/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/johnzon-mapper/pom.xml b/johnzon-mapper/pom.xml
index ee3c6ea..1d9bfbe 100644
--- a/johnzon-mapper/pom.xml
+++ b/johnzon-mapper/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/johnzon-maven-plugin/pom.xml b/johnzon-maven-plugin/pom.xml
index 51d20af..28e2f17 100644
--- a/johnzon-maven-plugin/pom.xml
+++ b/johnzon-maven-plugin/pom.xml
@@ -23,7 +23,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
 
   johnzon-maven-plugin
diff --git a/johnzon-websocket/pom.xml b/johnzon-websocket/pom.xml
index 80c9d66..2557c8f 100644
--- a/johnzon-websocket/pom.xml
+++ b/johnzon-websocket/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13-SNAPSHOT
+1.1.13
   
   4.0.0
 
diff --git a/pom.xml b/pom.xml
index 0fb3f17..f329434 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
   org.apache.johnzon
   johnzon
   pom
-  1.1.13-SNAPSHOT
+  1.1.13
   Apache Johnzon
   Apache Johnzon is an implementation of JSR-353 (JavaTM API for 
JSON Processing).
   2014
@@ -417,7 +417,7 @@
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 https://git-wip-us.apache.org/repos/asf?p=johnzon.git
-HEAD
+v1.1.13
   
 
   



[johnzon] 02/02: [maven-release-plugin] prepare for next development iteration

2019-08-01 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 74d3a8e8e49a516f37821186161af0e0481a
Author: Mark Struberg 
AuthorDate: Thu Aug 1 17:54:49 2019 +0200

[maven-release-plugin] prepare for next development iteration
---
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 4 ++--
 10 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/johnzon-core/pom.xml b/johnzon-core/pom.xml
index 4ee788b..04cde73 100644
--- a/johnzon-core/pom.xml
+++ b/johnzon-core/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-distribution/pom.xml b/johnzon-distribution/pom.xml
index 71c0425..82d6dd8 100644
--- a/johnzon-distribution/pom.xml
+++ b/johnzon-distribution/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jaxrs/pom.xml b/johnzon-jaxrs/pom.xml
index 0cb7869..ac56e64 100644
--- a/johnzon-jaxrs/pom.xml
+++ b/johnzon-jaxrs/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-json-extras/pom.xml b/johnzon-json-extras/pom.xml
index f9dd4ee..cebb5b4 100644
--- a/johnzon-json-extras/pom.xml
+++ b/johnzon-json-extras/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonb/pom.xml b/johnzon-jsonb/pom.xml
index 8ca07ec..21d8928 100644
--- a/johnzon-jsonb/pom.xml
+++ b/johnzon-jsonb/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-jsonschema/pom.xml b/johnzon-jsonschema/pom.xml
index b4d6f84..f6fde35 100644
--- a/johnzon-jsonschema/pom.xml
+++ b/johnzon-jsonschema/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-mapper/pom.xml b/johnzon-mapper/pom.xml
index 1d9bfbe..c5754d0 100644
--- a/johnzon-mapper/pom.xml
+++ b/johnzon-mapper/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/johnzon-maven-plugin/pom.xml b/johnzon-maven-plugin/pom.xml
index 28e2f17..9145900 100644
--- a/johnzon-maven-plugin/pom.xml
+++ b/johnzon-maven-plugin/pom.xml
@@ -23,7 +23,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
 
   johnzon-maven-plugin
diff --git a/johnzon-websocket/pom.xml b/johnzon-websocket/pom.xml
index 2557c8f..78e76be 100644
--- a/johnzon-websocket/pom.xml
+++ b/johnzon-websocket/pom.xml
@@ -21,7 +21,7 @@
   
 johnzon
 org.apache.johnzon
-1.1.13
+1.1.14-SNAPSHOT
   
   4.0.0
 
diff --git a/pom.xml b/pom.xml
index f329434..3f26909 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
   org.apache.johnzon
   johnzon
   pom
-  1.1.13
+  1.1.14-SNAPSHOT
   Apache Johnzon
   Apache Johnzon is an implementation of JSR-353 (JavaTM API for 
JSON Processing).
   2014
@@ -417,7 +417,7 @@
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 
scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git
 https://git-wip-us.apache.org/repos/asf?p=johnzon.git
-v1.1.13
+HEAD
   
 
   



[johnzon] branch master updated (3bc1fe5 -> 74d3a8e)

2019-08-01 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


from 3bc1fe5  JOHNZON-226 iterator for JsonArrayImpl
 new 17cea5f  [maven-release-plugin] prepare release v1.1.13
 new 74d3a8e  [maven-release-plugin] prepare for next development iteration

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 johnzon-core/pom.xml | 2 +-
 johnzon-distribution/pom.xml | 2 +-
 johnzon-jaxrs/pom.xml| 2 +-
 johnzon-json-extras/pom.xml  | 2 +-
 johnzon-jsonb/pom.xml| 2 +-
 johnzon-jsonschema/pom.xml   | 2 +-
 johnzon-mapper/pom.xml   | 2 +-
 johnzon-maven-plugin/pom.xml | 2 +-
 johnzon-websocket/pom.xml| 2 +-
 pom.xml  | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)



[johnzon] branch master updated: JOHNZON-226 iterator for JsonArrayImpl

2019-07-31 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 3bc1fe5  JOHNZON-226 iterator for JsonArrayImpl
3bc1fe5 is described below

commit 3bc1fe5fe0da2a4fac16ddf998e38b11104a57ef
Author: Mark Struberg 
AuthorDate: Wed Jul 31 23:29:08 2019 +0200

JOHNZON-226 iterator for JsonArrayImpl
---
 .../org/apache/johnzon/core/JsonArrayImpl.java | 32 ++
 1 file changed, 32 insertions(+)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
index 96be451..e247d33 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
@@ -28,7 +28,9 @@ import java.io.ObjectStreamException;
 import java.io.Serializable;
 import java.io.StringWriter;
 import java.util.AbstractList;
+import java.util.Iterator;
 import java.util.List;
+import java.util.NoSuchElementException;
 
 class JsonArrayImpl extends AbstractList implements JsonArray, 
Serializable {
 private final BufferStrategy.BufferProvider provider;
@@ -198,4 +200,34 @@ class JsonArrayImpl extends AbstractList 
implements JsonArray, Serial
 private Object writeReplace() throws ObjectStreamException {
 return new SerializableValue(toString());
 }
+
+@Override
+public Iterator iterator() {
+return new JsonArrayIterator();
+}
+
+/**
+ * We don't need any range check, so we can simplify the Iterator logic.
+ * get() on an ArrayList works even faster than ArrayList#iterator!
+ */
+private class JsonArrayIterator implements Iterator {
+int cursor = 0;
+
+@Override
+public boolean hasNext() {
+return cursor != unmodifieableBackingList.size();
+}
+
+@Override
+public JsonValue next() {
+try {
+int i = cursor;
+JsonValue next = unmodifieableBackingList.get(i);
+cursor = i + 1;
+return next;
+} catch (IndexOutOfBoundsException e) {
+throw new NoSuchElementException();
+}
+}
+}
 }



[johnzon] branch master updated: JOHNZON-226 avoid JsonValue.equals as it is slow

2019-07-31 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 5866bd8  JOHNZON-226 avoid JsonValue.equals as it is slow
5866bd8 is described below

commit 5866bd883b71873d51c2e4966dea2c209feb8e65
Author: Mark Struberg 
AuthorDate: Wed Jul 31 22:08:49 2019 +0200

JOHNZON-226 avoid JsonValue.equals as it is slow

We rather use JsonValue.ValueType comparison instead.
---
 .../org/apache/johnzon/core/JsonArrayImpl.java | 10 +++
 .../org/apache/johnzon/core/JsonObjectImpl.java|  4 +--
 .../org/apache/johnzon/jsonb/JohnzonJsonb.java |  2 +-
 .../jsonschema/spi/builtin/BaseValidation.java |  2 +-
 .../jsonschema/spi/builtin/EnumValidation.java |  2 +-
 .../apache/johnzon/mapper/MappingParserImpl.java   | 32 ++
 6 files changed, 31 insertions(+), 21 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
index fd1b59f..96be451 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayImpl.java
@@ -121,9 +121,9 @@ class JsonArrayImpl extends AbstractList 
implements JsonArray, Serial
 public boolean getBoolean(final int index) {
 final JsonValue val = value(index, JsonValue.class);
 
-if (JsonValue.TRUE.equals(val)) {
+if (JsonValue.ValueType.TRUE == val.getValueType()) {
 return true;
-} else if (JsonValue.FALSE.equals(val)) {
+} else if (JsonValue.ValueType.FALSE == val.getValueType()) {
 return false;
 } else {
 throw new ClassCastException();
@@ -145,13 +145,13 @@ class JsonArrayImpl extends AbstractList 
implements JsonArray, Serial
 return defaultValue;
 }
 
-final JsonValue val = get(index);
-return JsonValue.TRUE.equals(val) || !JsonValue.FALSE.equals(val) && 
defaultValue;
+ValueType valueType = get(index).getValueType();
+return JsonValue.ValueType.TRUE == valueType || 
JsonValue.ValueType.FALSE != valueType && defaultValue;
 }
 
 @Override
 public boolean isNull(final int index) {
-return JsonValue.NULL.equals(value(index, JsonValue.class));
+return JsonValue.ValueType.NULL == value(index, 
JsonValue.class).getValueType();
 }
 
 @Override
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
index af00c6f..7801b60 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectImpl.java
@@ -126,14 +126,14 @@ final class JsonObjectImpl extends AbstractMap implements Jso
 public boolean getBoolean(final String name, final boolean defaultValue) {
 final Object v = value(name, JsonValue.class);
 if (v != null) {
-return JsonValue.TRUE.equals(v) || !JsonValue.FALSE.equals(v) && 
defaultValue;
+return JsonValue.TRUE == v || JsonValue.FALSE != v && defaultValue;
 }
 return defaultValue;
 }
 
 @Override
 public boolean isNull(final String name) {
-return JsonValue.NULL.equals(valueOrExcpetion(name, JsonValue.class));
+return JsonValue.NULL == valueOrExcpetion(name, JsonValue.class);
 }
 
 @Override
diff --git 
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java 
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java
index c173bc4..fc44eef 100644
--- a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java
+++ b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java
@@ -434,7 +434,7 @@ public class JohnzonJsonb implements Jsonb, AutoCloseable, 
JsonbExtension {
 if (Boolean.class != type && boolean.class != type) {
 throw new JsonbException("TRUE and FALSE json can't be 
casted to " + type);
 }
-return (T) Boolean.valueOf(JsonValue.TRUE.equals(json));
+return (T) Boolean.valueOf(JsonValue.ValueType.TRUE == 
json.getValueType());
 case NUMBER:
 if (!Class.class.isInstance(type) || 
!Number.class.isAssignableFrom(Class.class.cast(type))) {
 throw new JsonbException("NUMBER json can't be casted to " 
+ type);
diff --git 
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/BaseValidation.java
 
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/BaseValidation.java
index 0b4e569..bb52fbb 100644
--- 
a/johnzo

[johnzon] branch master updated: JOHNZON-226 register Adapters only once

2019-07-30 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 9539e6d  JOHNZON-226 register Adapters only once
9539e6d is described below

commit 9539e6d1487fbd26640aba55fafd4e5455c19ff8
Author: Mark Struberg 
AuthorDate: Tue Jul 30 17:45:58 2019 +0200

JOHNZON-226 register Adapters only once

Previous each MappingParserImpl has it's own set of ReverseAdapters.
They got rebuilt with every parsing (as this creates a new MappingParserImpl
each time.
I've now moved the ReverseAdapterMap to Config and populate it upfront.

I'm not yet fully happy with the solution as the ReverseAdapterMap also
contains dynamically registered Adapters. So feel free to move the Map
to a better place in the future.
---
 .../johnzon/core/RFC4627AwareInputStreamReader.java  |  2 +-
 .../java/org/apache/johnzon/mapper/MapperConfig.java | 13 +
 .../org/apache/johnzon/mapper/MappingParserImpl.java | 20 
 .../java/org/apache/johnzon/mapper/Mappings.java |  1 +
 4 files changed, 19 insertions(+), 17 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/RFC4627AwareInputStreamReader.java
 
b/johnzon-core/src/main/java/org/apache/johnzon/core/RFC4627AwareInputStreamReader.java
index aa09804..2fe908e 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/RFC4627AwareInputStreamReader.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/RFC4627AwareInputStreamReader.java
@@ -87,7 +87,7 @@ final class RFC4627AwareInputStreamReader extends 
InputStreamReader {
 */
 
 private static Charset getCharset(final PushbackInputStream inputStream, 
Charset preferredCharset) {
-Charset charset = preferredCharset != null ? preferredCharset : 
Charset.forName("UTF-8");
+Charset charset = preferredCharset != null ? preferredCharset : 
StandardCharsets.UTF_8;
 int bomLength=0;
 try {
 final byte[] utfBytes = readAllBytes(inputStream);
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperConfig.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperConfig.java
index f6aa057..02b150d 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperConfig.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperConfig.java
@@ -29,6 +29,7 @@ import java.nio.charset.Charset;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
 /**
@@ -59,6 +60,8 @@ public /* DON'T MAKE IT HIDDEN */ class MapperConfig 
implements Cloneable {
 private final AccessMode accessMode;
 private final Charset encoding;
 private final ConcurrentMap> adapters;
+private final ConcurrentMap, AdapterKey> reverseAdapters;
+
 private final Map, ObjectConverter.Writer> 
objectConverterWriters;
 private final Map, ObjectConverter.Reader> 
objectConverterReaders;
 private final Comparator attributeOrder;
@@ -100,7 +103,13 @@ public /* DON'T MAKE IT HIDDEN */ class MapperConfig 
implements Cloneable {
 this.readAttributeBeforeWrite = readAttributeBeforeWrite;
 this.accessMode = accessMode;
 this.encoding = encoding;
+
+// handle Adapters
 this.adapters = adapters;
+this.reverseAdapters = new ConcurrentHashMap<>(adapters.size());
+adapters.entrySet().forEach(e -> 
this.reverseAdapters.put(e.getValue(), e.getKey()));
+
+
 this.attributeOrder = attributeOrder;
 this.enforceQuoteString = enforceQuoteString;
 this.failOnUnknown = failOnUnknown;
@@ -292,6 +301,10 @@ public /* DON'T MAKE IT HIDDEN */ class MapperConfig 
implements Cloneable {
 return adapters;
 }
 
+public ConcurrentMap, AdapterKey> getReverseAdapters() {
+return reverseAdapters;
+}
+
 public Map, ObjectConverter.Writer> 
getObjectConverterWriters() {
 return objectConverterWriters;
 }
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
index 09a8a4d..43a089c 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
@@ -85,7 +85,6 @@ public class MappingParserImpl implements MappingParser {
 private static final JohnzonParameterizedType ANY_LIST = new 
JohnzonParameterizedType(List.class, Object.class);
 private static final CharacterConverter CHARACTER_CONVERTER = new 
CharacterConverter(); // this one is particular, share the logic
 
-prot

[johnzon] 01/02: JOHNZON-202 improve/fix Adapter JavaDoc

2019-07-29 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 83fc79ee67946683479fb450e8047f29cd8165a3
Author: Mark Struberg 
AuthorDate: Mon Jul 29 11:13:36 2019 +0200

JOHNZON-202 improve/fix Adapter JavaDoc

txs to Alex falb (elexx) for the report!
---
 .../java/org/apache/johnzon/mapper/Adapter.java| 40 +-
 1 file changed, 31 insertions(+), 9 deletions(-)

diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Adapter.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Adapter.java
index 3abcd5f..fd63549 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Adapter.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Adapter.java
@@ -22,20 +22,42 @@ package org.apache.johnzon.mapper;
  * An Adapter is similar to a {@link Converter}.
  * The main difference is that a Converter always converts from/to a String.
  * An adapter might e.g. convert to a Date or any other Object which will
- * then be json-ified.
+ * then be json-ified.
  *
- * @param 
- * @param 
+ * A small example which has a special Java type to internally represent dates.
+ * Let's call it {@code DateHolder}.
+ * Our {@code Mapper} should treat it as a {@code java.util.Date}.
+ * For doing so we create a {@code DateHolderAdapter} like the following 
example shows:
+ * 
+ * public static class DateHolderAdapter implements Adapter {
+ * @Override
+ * public DateHolder to(Date date) {
+ * DateHolder dh = new DateHolder(date.getTime());
+ * return dh;
+ * }
+ *
+ * @Override
+ * public Date from(DateHolder dateHolder) {
+ *return new Date(dateHolder.getDate());
+ * }
+ * }
+ * 
+ *
+ * Consider a POJO has a DateHolder.
+ * When serialising the {@code Mapper} will first use the {@code 
DateHolderAdapter#from(DateHolder)} and from there to JSON.
+ * When reading JSON the {@code to(Date}} method will be used.
+ *
+ * @param  The Java type in the POJO (Plain Old Java Object)
+ * @param  The Java Type which will be used to transform to JSON.
  */
-public interface Adapter extends MapperConverter {
+public interface Adapter extends MapperConverter {
 /**
- * Transfer B to JSON as A.
- * A will be inserted into the JSON output
+ * Transfer JSONTYPE_TYPE from JSON to POJO as POJO_TYPE.
  */
-A to(B b);
+POJO_TYPE to(JSON_TYPE b);
 
 /**
- * Take the object A from JSON an convert it to B to store in the POJO
+ * Take the POJO_TYPE object A from a POJO an convert it to JSON_TYPE 
which will be inserted into the JSON output.
  */
-B from(A a);
+JSON_TYPE from(POJO_TYPE a);
 }



[johnzon] 02/02: JOHNZON-226 performance: avoid Array.getLength

2019-07-29 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit f2d04b6155861e23eb779fa7be0f948276c5c7c3
Author: Mark Struberg 
AuthorDate: Mon Jul 29 15:22:01 2019 +0200

JOHNZON-226 performance: avoid Array.getLength

Array.getLength performs rather poor as it doesn't get inlined
by the JIT due to heavy reflection.
---
 .../johnzon/mapper/MappingGeneratorImpl.java   | 35 +-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
index f741aff..1b4d4e8 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
@@ -470,7 +470,7 @@ public class MappingGeneratorImpl implements 
MappingGenerator {
  * @param key either the attribute key or {@code null} if the array should 
be rendered without key
  */
 private void writeArray(Class type, Adapter itemConverter, String key, 
Object arrayValue, Collection ignoredProperties, JsonPointerTracker 
jsonPointer) {
-final int length = Array.getLength(arrayValue);
+final int length = getArrayLength(arrayValue);
 if (length == 0 && config.isSkipEmptyArray()) {
 return;
 }
@@ -582,6 +582,39 @@ public class MappingGeneratorImpl implements 
MappingGenerator {
 generator.writeEnd();
 }
 
+private int getArrayLength(Object array) {
+// Note: all types of multidimensional arrays are instanceof Object[]
+if (array instanceof Object[]) {
+return ((Object[]) array).length;
+}
+if (array instanceof boolean[]) {
+return ((boolean[])array).length;
+}
+if (array instanceof byte[]) {
+return ((byte[])array).length;
+}
+if (array instanceof char[]) {
+return ((char[]) array).length;
+}
+if (array instanceof short[]) {
+return ((short[]) array).length;
+}
+if (array instanceof int[]) {
+return ((int[]) array).length;
+}
+if (array instanceof long[]) {
+return ((long[]) array).length;
+}
+if (array instanceof float[]) {
+return ((float[]) array).length;
+}
+if (array instanceof double[]) {
+return ((double[]) array).length;
+}
+
+throw new IllegalArgumentException("This is not an array! " + array);
+}
+
 private void writeItem(final Object o, final Collection 
ignoredProperties, JsonPointerTracker jsonPointer) {
 if (o == null) {
 generator.writeNull();



[johnzon] 02/02: JOHNZON-206 properly handle JsonValues in arrays

2019-07-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit a9b615331b1e9830b8ce3b01ea2ec996c7f7c60b
Author: Mark Struberg 
AuthorDate: Thu Jul 25 17:20:49 2019 +0200

JOHNZON-206 properly handle JsonValues in arrays

txs to elexx for the report and unit test!
---
 .../src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java   | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
index f022562..1b7721e 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
@@ -569,6 +569,8 @@ public class MappingGeneratorImpl implements 
MappingGenerator {
 if (valJsonPointer != null) {
 // write the JsonPointer as String natively
 generator.write(valJsonPointer);
+} else if (o instanceof JsonValue) {
+generator.write((JsonValue) o);
 } else {
 writeItem(itemConverter != null ? itemConverter.from(o) : 
o, ignoredProperties, isDeduplicateObjects ? new 
JsonPointerTracker(jsonPointer, i) : null);
 }



[johnzon] branch master updated (4327ea2 -> a9b6153)

2019-07-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


from 4327ea2  JOHNZON-218 ensure to not allocate 
BufferStrategy.BufferProvider in JsonProviderImpl when not needed
 new 014ef1e  JOHNZON-206: Tests for nested toStructure mapping
 new a9b6153  JOHNZON-206 properly handle JsonValues in arrays

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../johnzon/mapper/MappingGeneratorImpl.java   |  2 ++
 .../java/org/apache/johnzon/mapper/MapperTest.java | 31 ++
 2 files changed, 33 insertions(+)



[johnzon] 01/02: JOHNZON-206: Tests for nested toStructure mapping

2019-07-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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

commit 014ef1e19b25a327c3c7108bab9358ca36bca98c
Author: Alexander Falb 
AuthorDate: Mon Apr 1 18:29:55 2019 +0200

JOHNZON-206: Tests for nested toStructure mapping

Signed-off-by: Mark Struberg 
---
 .../java/org/apache/johnzon/mapper/MapperTest.java | 31 ++
 1 file changed, 31 insertions(+)

diff --git 
a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java 
b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java
index 0aa4ccb..45def70 100644
--- a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java
+++ b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java
@@ -54,6 +54,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import javax.json.Json;
 import javax.json.JsonArray;
 import javax.json.JsonObject;
 import javax.json.JsonValue;
@@ -127,6 +128,36 @@ public class MapperTest {
 }
 
 @Test
+public void mapToJsonObject() {
+final JsonObject expectedObject = Json.createObjectBuilder().add("a", 
1).build();
+final JsonValue structure = new 
MapperBuilder().build().toStructure(expectedObject);
+assertEquals(JsonValue.ValueType.OBJECT, structure.getValueType());
+final JsonObject actualObject = structure.asJsonObject();
+assertEquals("{\"a\":1}", actualObject.toString());
+}
+
+@Test
+public void mapToJsonArrayOfJsonObjects() {
+final JsonObject expectedObjectA = Json.createObjectBuilder().add("a", 
1).build();
+final JsonObject expectedObjectB = Json.createObjectBuilder().add("b", 
2).build();
+final JsonArray expectedArray = 
Json.createArrayBuilder().add(expectedObjectA).add(expectedObjectB).build();
+final JsonValue structure = new 
MapperBuilder().build().toStructure(expectedArray);
+assertEquals(JsonValue.ValueType.ARRAY, structure.getValueType());
+final JsonArray actualArray = structure.asJsonArray();
+assertEquals("[{\"a\":1},{\"b\":2}]", actualArray.toString());
+}
+
+@Test
+public void mapToArrayOfJsonObjects() {
+final JsonObject expectedObjectA = Json.createObjectBuilder().add("a", 
1).build();
+final JsonObject expectedObjectB = Json.createObjectBuilder().add("b", 
2).build();
+final JsonValue structure = new 
MapperBuilder().build().toStructure(new Object[]{expectedObjectA, 
expectedObjectB});
+assertEquals(JsonValue.ValueType.ARRAY, structure.getValueType());
+final JsonArray actualArray = structure.asJsonArray();
+assertEquals("[{\"a\":1},{\"b\":2}]", actualArray.toString());
+}
+
+@Test
 public void ignoreAllStrategy() {
 final StringWriter writer = new StringWriter();
 final Child object = new Child();



[johnzon] branch master updated: JOHNZON-218 get rid of JsonProviderDelegate

2019-07-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 8cd1f21  JOHNZON-218 get rid of JsonProviderDelegate
8cd1f21 is described below

commit 8cd1f21a12353758e5fc1efba6acfef3f8db80c7
Author: Mark Struberg 
AuthorDate: Thu Jul 25 15:08:37 2019 +0200

JOHNZON-218 get rid of JsonProviderDelegate

Not needed anymore as we expose the whole API now.
---
 .../org/apache/johnzon/core/JsonProviderImpl.java  | 304 +
 1 file changed, 70 insertions(+), 234 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
index aa1eb99..1a466ed 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
@@ -52,335 +52,171 @@ import javax.json.stream.JsonParser;
 import javax.json.stream.JsonParserFactory;
 
 public class JsonProviderImpl extends JsonProvider implements Serializable {
-private static final JsonProvider DELEGATE = new JsonProviderDelegate();
+private final BufferStrategy.BufferProvider bufferProvider =
+
BufferStrategyFactory.valueOf(System.getProperty(AbstractJsonFactory.BUFFER_STRATEGY,
 "QUEUE"))
+
.newCharProvider(Integer.getInteger("org.apache.johnzon.default-char-provider.length",
 1024));
+
+private final JsonReaderFactory readerFactory = new 
JsonReaderFactoryImpl(null);
+private final JsonParserFactory parserFactory = new 
JsonParserFactoryImpl(null);
+private final JsonGeneratorFactory generatorFactory = new 
JsonGeneratorFactoryImpl(null);
+private final JsonWriterFactory writerFactory = new 
JsonWriterFactoryImpl(null);
+private final JsonBuilderFactoryImpl builderFactory = new 
JsonBuilderFactoryImpl(null, bufferProvider);
 
 @Override
-public JsonParser createParser(final Reader reader) {
-return DELEGATE.createParser(reader);
+public JsonParser createParser(final InputStream in) {
+return parserFactory.createParser(in);
 }
 
 @Override
-public JsonParser createParser(final InputStream inputStream) {
-return DELEGATE.createParser(inputStream);
+public JsonParser createParser(final Reader reader) {
+return parserFactory.createParser(reader);
 }
 
 @Override
-public JsonParserFactory createParserFactory(final Map 
stringMap) {
-return DELEGATE.createParserFactory(stringMap);
+public JsonReader createReader(final InputStream in) {
+return readerFactory.createReader(in);
 }
 
 @Override
-public JsonGenerator createGenerator(final Writer writer) {
-return DELEGATE.createGenerator(writer);
+public JsonReader createReader(final Reader reader) {
+return readerFactory.createReader(reader);
 }
 
 @Override
-public JsonGenerator createGenerator(final OutputStream outputStream) {
-return DELEGATE.createGenerator(outputStream);
+public JsonParserFactory createParserFactory(final Map config) {
+return (config == null || config.isEmpty()) ? parserFactory : new 
JsonParserFactoryImpl(config);
 }
 
 @Override
-public JsonGeneratorFactory createGeneratorFactory(final Map 
stringMap) {
-return DELEGATE.createGeneratorFactory(stringMap);
+public JsonReaderFactory createReaderFactory(final Map config) {
+return (config == null || config.isEmpty()) ? readerFactory : new 
JsonReaderFactoryImpl(config);
 }
 
 @Override
-public JsonReader createReader(final Reader reader) {
-return DELEGATE.createReader(reader);
+public JsonGenerator createGenerator(final Writer writer) {
+return generatorFactory.createGenerator(writer);
 }
 
 @Override
-public JsonReader createReader(final InputStream inputStream) {
-return DELEGATE.createReader(inputStream);
+public JsonGenerator createGenerator(final OutputStream out) {
+return generatorFactory.createGenerator(out);
 }
 
 @Override
-public JsonWriter createWriter(final Writer writer) {
-return DELEGATE.createWriter(writer);
+public JsonGeneratorFactory createGeneratorFactory(final Map 
config) {
+return (config == null || config.isEmpty()) ? generatorFactory : new 
JsonGeneratorFactoryImpl(config);
 }
 
 @Override
-public JsonWriter createWriter(final OutputStream outputStream) {
-return DELEGATE.createWriter(outputStream);
+public JsonWriter createWriter(final Writer writer) {
+return writerFactory.createWriter(writer);
 }
 
 @Override
-public JsonWriterFactory createWriterFactory(final Map 
stringMap) {
-return DELEGATE.createWri

[johnzon] branch master updated: JOHNZON-221 unify the system property for buffer strategy

2019-07-09 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 2807054  JOHNZON-221 unify the system property for buffer strategy
2807054 is described below

commit 2807054bcc9ae43ebdfe73b0846d6b9515eef21e
Author: Mark Struberg 
AuthorDate: Tue Jul 9 09:01:51 2019 +0200

JOHNZON-221 unify the system property for buffer strategy

So far johnzon.global-char-provider.strateg and 
org.apache.johnzon.buffer-strategy
are being used. We should only use the later.
The constant is already defined in AbstractJsonFactory#BUFFER_STRATEGY
---
 .../src/main/java/org/apache/johnzon/core/JsonProviderImpl.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
index 2ae20df..aa1eb99 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
@@ -216,7 +216,7 @@ public class JsonProviderImpl extends JsonProvider 
implements Serializable {
 
 static class JsonProviderDelegate extends JsonProvider {
 private final BufferStrategy.BufferProvider bufferProvider =
-
BufferStrategyFactory.valueOf(System.getProperty("johnzon.global-char-provider.strategy",
 "QUEUE"))
+
BufferStrategyFactory.valueOf(System.getProperty(AbstractJsonFactory.BUFFER_STRATEGY,
 "QUEUE"))
 
.newCharProvider(Integer.getInteger("org.apache.johnzon.default-char-provider.length",
 1024));
 
 private final JsonReaderFactory readerFactory = new 
JsonReaderFactoryImpl(null);



[johnzon] branch master updated: JOHNZON-221 remove unused QUEUE bufferstrategy resolving

2019-07-03 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new f27539a  JOHNZON-221 remove unused QUEUE bufferstrategy resolving
f27539a is described below

commit f27539a65c630d9a3a81139f807f551fd638e105
Author: Mark Struberg 
AuthorDate: Wed Jul 3 09:48:05 2019 +0200

JOHNZON-221 remove unused QUEUE bufferstrategy resolving

It's now derived from jsonp anyway
---
 .../src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java | 3 ---
 1 file changed, 3 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 7cc2a91..b06b29f 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
@@ -83,8 +83,6 @@ import javax.json.stream.JsonGenerator;
 import javax.json.stream.JsonParserFactory;
 
 import org.apache.johnzon.core.AbstractJsonFactory;
-import org.apache.johnzon.core.BufferStrategy;
-import org.apache.johnzon.core.BufferStrategyFactory;
 import org.apache.johnzon.core.JsonGeneratorFactoryImpl;
 import org.apache.johnzon.core.JsonParserFactoryImpl;
 import org.apache.johnzon.core.Types;
@@ -195,7 +193,6 @@ public class JohnzonBuilder implements JsonbBuilder {
 throw new IllegalArgumentException("Unsupported factory: " + val);
 }).orElseGet(this::findFactory);
 
-final BufferStrategy.BufferProvider bufferProvider = 
BufferStrategyFactory.valueOf("QUEUE").newCharProvider(1024);
 final AccessMode accessMode = config.getProperty("johnzon.accessMode")
 .map(this::toAccessMode)
 .orElseGet(() -> new JsonbAccessMode(



[johnzon] branch master updated: remove unused StringBuilder BufferProvider

2019-06-26 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 9b71b34  remove unused StringBuilder BufferProvider
9b71b34 is described below

commit 9b71b34e200079262f90a568ca0523dc1e2c3e4a
Author: Mark Struberg 
AuthorDate: Wed Jun 26 13:21:28 2019 +0200

remove unused StringBuilder BufferProvider
---
 .../org/apache/johnzon/core/BufferStrategy.java|   1 -
 .../apache/johnzon/core/BufferStrategyFactory.java | 119 +
 .../johnzon/core/BufferStrategyFactoryTest.java|   6 --
 3 files changed, 4 insertions(+), 122 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
index 89d7ce4..432d781 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
@@ -25,7 +25,6 @@ import java.io.Serializable;
  */
 public interface BufferStrategy {
 BufferProvider newCharProvider(int size);
-BufferProvider newStringBuilderProvider(int size);
 
 interface BufferProvider extends Serializable {
 T newBuffer();
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java
index 03ebf4f..62556a5 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java
@@ -28,52 +28,10 @@ public class BufferStrategyFactory {
 static {
 DEFAULT_STRATEGIES = new HashMap<>();
 
-DEFAULT_STRATEGIES.put("BY_INSTANCE", new BufferStrategy() {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferByInstanceProvider(size);
-}
-
-@Override
-public BufferProvider 
newStringBuilderProvider(final int size) {
-return new StringBuilderByInstanceProvider(size);
-}
-});
-
-DEFAULT_STRATEGIES.put("THREAD_LOCAL", new BufferStrategy() {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferThreadLocalProvider(size);
-}
-
-@Override
-public BufferProvider 
newStringBuilderProvider(final int size) {
-return new StringBuilderThreadLocalProvider(size);
-}
-});
-
-DEFAULT_STRATEGIES.put("QUEUE", new BufferStrategy() {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferQueueProvider(size);
-}
-
-@Override
-public BufferProvider 
newStringBuilderProvider(final int size) {
-return new StringBuilderQueueProvider(size);
-}
-});
-DEFAULT_STRATEGIES.put("SINGLETON", new BufferStrategy() {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferSingletonProvider(size);
-}
-
-@Override
-public BufferProvider 
newStringBuilderProvider(final int size) {
-return new StringBuilderSingletonProvider(size);
-}
-});
+DEFAULT_STRATEGIES.put("BY_INSTANCE", 
CharBufferByInstanceProvider::new);
+DEFAULT_STRATEGIES.put("THREAD_LOCAL", 
CharBufferThreadLocalProvider::new);
+DEFAULT_STRATEGIES.put("QUEUE", CharBufferQueueProvider::new);
+DEFAULT_STRATEGIES.put("SINGLETON", CharBufferSingletonProvider::new);
 }
 
 private BufferStrategyFactory() {
@@ -132,22 +90,6 @@ public class BufferStrategyFactory {
 }
 }
 
-private static class StringBuilderSingletonProvider extends 
SingletonProvider {
-public StringBuilderSingletonProvider(final int size) {
-super(size);
-}
-
-@Override
-protected StringBuilder newInstance(final int size) {
-return new StringBuilder(size);
-}
-
-@Override
-public void release(final StringBuilder value) {
-value.setLength(0);
-}
-}
-
 private static abstract class SingletonProvider implements 
BufferStrategy.BufferProvider {
 protected final T buffer;
 
@@ -204,23 +146,6 @@ public class BufferStrategyFactory {
 }
 }
 
-private static class StringBuilderThreadLocalProvider extends 
ThreadLocalProvider {
-public StringBuilderThreadLocalProvider(int size) {
-super(size);
-

[johnzon] branch master updated: remove unused BufferProvider usage

2019-06-26 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 094ad43  remove unused BufferProvider usage
094ad43 is described below

commit 094ad43076e3c1302fbd78da22b842c8f310ea25
Author: Mark Struberg 
AuthorDate: Wed Jun 26 12:49:58 2019 +0200

remove unused BufferProvider usage
---
 johnzon-core/src/main/java/org/apache/johnzon/core/Strings.java | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/Strings.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/Strings.java
index e229d4c..603d10d 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/Strings.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/Strings.java
@@ -24,9 +24,6 @@ import java.util.concurrent.ConcurrentMap;
 import javax.json.stream.JsonParsingException;
 
 class Strings implements JsonChars {
-private static final BufferStrategy.BufferProvider 
BUILDER_CACHE =
-
BufferStrategyFactory.valueOf(System.getProperty("johnzon.string-builder.strategy",
 "QUEUE"))
-
.newStringBuilderProvider(Integer.getInteger("org.apache.johnzon.default-string-builder",
 1024));
 
 private static final String UNICODE_PREFIX = "\\u";
 private static final String UNICODE_PREFIX_HELPER = "000";



[johnzon] branch master updated: JOHNZON-217 toUpper on a Class name seems a bad idea...

2019-06-26 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 4d6c30d  JOHNZON-217 toUpper on a Class name seems a bad idea...
4d6c30d is described below

commit 4d6c30df35b6edbfaf8465ed73aceab836667601
Author: Mark Struberg 
AuthorDate: Wed Jun 26 11:05:17 2019 +0200

JOHNZON-217 toUpper on a Class name seems a bad idea...
---
 .../apache/johnzon/core/AbstractJsonFactory.java   |  3 +-
 .../apache/johnzon/core/BufferStrategyFactory.java |  3 +-
 .../johnzon/core/BufferStrategyFactoryTest.java| 39 --
 3 files changed, 40 insertions(+), 5 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
index 4f09d38..40194bd 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
@@ -22,7 +22,6 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Locale;
 import java.util.Map;
 import java.util.logging.Logger;
 
@@ -54,7 +53,7 @@ public abstract class AbstractJsonFactory implements 
Serializable {
 protected BufferStrategy getBufferProvider() {
 final Object name = internalConfig.get(BUFFER_STRATEGY);
 if (name != null) {
-return 
BufferStrategyFactory.valueOf(name.toString().toUpperCase(Locale.ENGLISH));
+return BufferStrategyFactory.valueOf(name.toString());
 }
 return DEFAULT_BUFFER_STRATEGY;
 }
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java
index a52d379..03ebf4f 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategyFactory.java
@@ -17,6 +17,7 @@
 package org.apache.johnzon.core;
 
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
@@ -95,7 +96,7 @@ public class BufferStrategyFactory {
  * @throws IllegalArgumentException if the given strategyName does not 
resolve to a BufferStrategy.
  */
 public static BufferStrategy valueOf(String strategyName) {
-BufferStrategy bufferStrategy = DEFAULT_STRATEGIES.get(strategyName);
+BufferStrategy bufferStrategy = 
DEFAULT_STRATEGIES.get(strategyName.toUpperCase(Locale.ENGLISH));
 if (bufferStrategy == null) {
 // try to load the BufferStrategy via reflection
 Class bsClass = ClassUtil.loadClassOptional(strategyName, 
false);
diff --git 
a/johnzon-core/src/test/java/org/apache/johnzon/core/BufferStrategyFactoryTest.java
 
b/johnzon-core/src/test/java/org/apache/johnzon/core/BufferStrategyFactoryTest.java
index 06efdcf..70024c9 100644
--- 
a/johnzon-core/src/test/java/org/apache/johnzon/core/BufferStrategyFactoryTest.java
+++ 
b/johnzon-core/src/test/java/org/apache/johnzon/core/BufferStrategyFactoryTest.java
@@ -16,8 +16,16 @@
  */
 package org.apache.johnzon.core;
 
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.json.spi.JsonProvider;
+import javax.json.stream.JsonGenerator;
+
 import org.junit.Test;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
@@ -41,20 +49,47 @@ public class BufferStrategyFactoryTest {
 
verify(BufferStrategyFactory.valueOf(DummyBufferStrategy.class.getName()));
 }
 
+@Test
+public void testJsonGeneratorStrategyFromClass() {
+DummyBufferStrategy.counter.set(0);
+
+StringWriter sw = new StringWriter();
+JsonGenerator generator = 
JsonProvider.provider().createGeneratorFactory(new HashMap() {
+{
+put(AbstractJsonFactory.BUFFER_STRATEGY, 
DummyBufferStrategy.class.getName());
+}
+}).createGenerator(sw);
+
+
+generator.writeStartObject()
+.write("age", 27)
+.write("name", "karl")
+.writeEnd()
+.flush();
+
+assertEquals(1, DummyBufferStrategy.counter.get());
+assertEquals("{\"age\":27,\"name\":\"karl\"}", sw.toString());
+}
+
 private void verify(Object bufferStrategy) {
 assertNotNull(bufferStrategy);
 assertTrue(bufferStrategy instanceof BufferStrategy);
 }
 
 public static final class DummyBufferStrategy implements BufferStrategy {
+   

[johnzon] branch master updated: JOHNZON-178 support Mapper#writeArray for primitives

2019-06-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 67b761c  JOHNZON-178 support Mapper#writeArray for primitives
67b761c is described below

commit 67b761c40f6e6ad0d16ed82313915166afffad31
Author: Mark Struberg 
AuthorDate: Wed Jun 26 06:57:06 2019 +0200

JOHNZON-178 support Mapper#writeArray for primitives
---
 .../java/org/apache/johnzon/mapper/Mapper.java |  26 -
 .../org/apache/johnzon/mapper/util/ArrayUtil.java  | 129 +
 .../java/org/apache/johnzon/mapper/MapperTest.java |  49 
 3 files changed, 200 insertions(+), 4 deletions(-)

diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
index 77b22b6..a9ca674 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
@@ -18,7 +18,6 @@
  */
 package org.apache.johnzon.mapper;
 
-import static java.util.Arrays.asList;
 import static org.apache.johnzon.mapper.internal.Streams.noClose;
 
 import java.io.Closeable;
@@ -38,6 +37,7 @@ import java.math.BigInteger;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 
 import javax.json.JsonArray;
@@ -53,6 +53,7 @@ import javax.json.stream.JsonGeneratorFactory;
 
 import org.apache.johnzon.mapper.internal.JsonPointerTracker;
 import org.apache.johnzon.mapper.reflection.JohnzonCollectionType;
+import org.apache.johnzon.mapper.util.ArrayUtil;
 
 public class Mapper implements Closeable {
 
@@ -82,15 +83,32 @@ public class Mapper implements Closeable {
 
 
 public  void writeArray(final Object object, final OutputStream stream) 
{
-writeObject(asList((T[]) object), stream);
+if (object instanceof short[]) {
+writeObject(ArrayUtil.asList((short[]) object), stream);
+} else if (object instanceof int[]) {
+writeObject(ArrayUtil.asList((int[]) object), stream);
+} else if (object instanceof long[]) {
+writeObject(ArrayUtil.asList((long[]) object), stream);
+} else if (object instanceof byte[]) {
+writeObject(ArrayUtil.asList((byte[]) object), stream);
+} else if (object instanceof char[]) {
+writeObject(ArrayUtil.asList((char[]) object), stream);
+} else if (object instanceof float[]) {
+writeObject(ArrayUtil.asList((float[]) object), stream);
+} else if (object instanceof double[]) {
+writeObject(ArrayUtil.asList((double[]) object), stream);
+} else {
+writeObject(Arrays.asList((T[]) object), stream);
+}
 }
 
+
 public  void writeArray(final T[] object, final OutputStream stream) {
-writeObject(asList(object), stream);
+writeObject(Arrays.asList(object), stream);
 }
 
 public  void writeArray(final T[] object, final Writer stream) {
-writeObject(asList(object), stream);
+writeObject(Arrays.asList(object), stream);
 }
 
 public  void writeArray(final Collection object, final OutputStream 
stream) {
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/util/ArrayUtil.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/util/ArrayUtil.java
new file mode 100644
index 000..a7a6c57
--- /dev/null
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/util/ArrayUtil.java
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.johnzon.mapper.util;
+
+import java.util.AbstractList;
+import java.util.List;
+
+/**
+ * Various Array utils which do not exist in Java.
+ */
+public final class ArrayUtil {
+private ArrayUtil() {
+// utility class ct
+}
+
+public static List asList(final int[] vals) {
+return new AbstractList() {
+@Override
+public Integer get(int index) {
+   

[johnzon] branch master updated: JOHNZON-217 allow custom BufferStrategy

2019-06-25 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 4d20815  JOHNZON-217 allow custom BufferStrategy
4d20815 is described below

commit 4d20815696c960c21fad653db812fbccf8aa1be7
Author: Mark Struberg 
AuthorDate: Tue Jun 25 22:34:58 2019 +0200

JOHNZON-217 allow custom BufferStrategy

We do now also allow a fully qualified class name of a
custom BufferStrategy implementation.
---
 .../apache/johnzon/core/AbstractJsonFactory.java   |   4 +-
 .../org/apache/johnzon/core/BufferStrategy.java| 250 +
 ...ferStrategy.java => BufferStrategyFactory.java} | 172 --
 .../org/apache/johnzon/core/JsonProviderImpl.java  |   2 +-
 .../main/java/org/apache/johnzon/core/Strings.java |   2 +-
 .../org/apache/johnzon/core/util/ClassUtil.java|  61 +
 .../johnzon/core/BufferStrategyFactoryTest.java|  60 +
 .../org/apache/johnzon/core/SerializationTest.java |   4 +-
 .../org/apache/johnzon/jsonb/JohnzonBuilder.java   |   3 +-
 9 files changed, 242 insertions(+), 316 deletions(-)

diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
index 41cce43..4f09d38 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/AbstractJsonFactory.java
@@ -29,7 +29,7 @@ import java.util.logging.Logger;
 public abstract class AbstractJsonFactory implements Serializable {
 
 public static final String BUFFER_STRATEGY = 
"org.apache.johnzon.buffer-strategy";
-public static final BufferStrategy DEFAULT_BUFFER_STRATEGY = 
BufferStrategy.valueOf(System.getProperty(BUFFER_STRATEGY, "QUEUE"));
+public static final BufferStrategy DEFAULT_BUFFER_STRATEGY = 
BufferStrategyFactory.valueOf(System.getProperty(BUFFER_STRATEGY, "QUEUE"));
 
 protected final Map internalConfig = new HashMap();
 
@@ -54,7 +54,7 @@ public abstract class AbstractJsonFactory implements 
Serializable {
 protected BufferStrategy getBufferProvider() {
 final Object name = internalConfig.get(BUFFER_STRATEGY);
 if (name != null) {
-return 
BufferStrategy.valueOf(name.toString().toUpperCase(Locale.ENGLISH));
+return 
BufferStrategyFactory.valueOf(name.toString().toUpperCase(Locale.ENGLISH));
 }
 return DEFAULT_BUFFER_STRATEGY;
 }
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
index c37ecfb..89d7ce4 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/BufferStrategy.java
@@ -19,254 +19,18 @@
 package org.apache.johnzon.core;
 
 import java.io.Serializable;
-import java.util.concurrent.ConcurrentLinkedQueue;
 
-public enum BufferStrategy {
-BY_INSTANCE {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferByInstanceProvider(size);
-}
-
-@Override
-public BufferProvider newStringBuilderProvider(final 
int size) {
-return new StringBuilderByInstanceProvider(size);
-}
-},
-THREAD_LOCAL {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferThreadLocalProvider(size);
-}
-
-@Override
-public BufferProvider newStringBuilderProvider(final 
int size) {
-return new StringBuilderThreadLocalProvider(size);
-}
-},
-QUEUE {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferQueueProvider(size);
-}
-
-@Override
-public BufferProvider newStringBuilderProvider(final 
int size) {
-return new StringBuilderQueueProvider(size);
-}
-},
-SINGLETON {
-@Override
-public BufferProvider newCharProvider(final int size) {
-return new CharBufferSingletonProvider(size);
-}
-
-@Override
-public BufferProvider newStringBuilderProvider(final 
int size) {
-return new StringBuilderSingletonProvider(size);
-}
-};
-
-public abstract BufferProvider newCharProvider(int size);
-public abstract BufferProvider newStringBuilderProvider(int 
size);
+/**
+ * Plugable way to hold various buffers for reading and writing json
+ */
+public interface BufferStrategy {
+BufferProvider newCharProvider(int size);
+BufferProvider newStringBuilderProvider(int size);
 
-public static interface BufferProvider exte

[johnzon] branch master updated: JOHNZON-204 update to latest jsonp spec

2019-03-07 Thread struberg
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 0e77865  JOHNZON-204 update to latest jsonp spec
0e77865 is described below

commit 0e77865fea3a84c08ee1609fbf8b23dfc8d7903d
Author: Mark Struberg 
AuthorDate: Thu Mar 7 09:48:28 2019 +0100

JOHNZON-204 update to latest jsonp spec

This prevents a potential classloader lock as described in
https://issues.apache.org/jira/browse/GERONIMO-6712
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b9ec9a7..4159c37 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,7 +40,7 @@
   http://johnzon.apache.org
 
   
-1.1
+1.2
 UTF-8
 
https://svn.apache.org/repos/asf/johnzon/site/publish/
 scm:svn:${johnzon.site.url}



[johnzon] Git Push Summary

2018-08-30 Thread struberg
Repository: johnzon
Updated Tags:  refs/tags/v1.1.9 [created] ac5e2256e


johnzon git commit: JOHNZON-186 fix NPE in EnumConverter

2018-08-30 Thread struberg
Repository: johnzon
Updated Branches:
  refs/heads/master 847a4268f -> 8b5c87d5c


JOHNZON-186 fix NPE in EnumConverter


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

Branch: refs/heads/master
Commit: 8b5c87d5caa942c0facfa1b62b8376fca869cf45
Parents: 847a426
Author: Mark Struberg 
Authored: Thu Aug 30 11:02:53 2018 +0200
Committer: Mark Struberg 
Committed: Thu Aug 30 11:02:53 2018 +0200

--
 .../apache/johnzon/jsonb/SerializerTest.java| 27 
 .../johnzon/mapper/converter/EnumConverter.java |  2 +-
 2 files changed, 28 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/johnzon/blob/8b5c87d5/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java
--
diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java
index 1446e92..963a41e 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java
@@ -89,6 +89,25 @@ public class SerializerTest {
 assertEquals("{\"elems\":[2,null]}", jsonb.toJson(wrapper));
 }
 
+@Test
+public void nullValuesInEnumList() {
+Jsonb jsonb = JsonbBuilder.create();
+
+EnumList wrapper = new EnumList();
+wrapper.elems.add(null);
+assertEquals("{\"elems\":[null]}", jsonb.toJson(wrapper));
+
+wrapper.elems.add(MyStatus.OK);
+assertEquals("{\"elems\":[null,\"OK\"]}", jsonb.toJson(wrapper));
+
+wrapper.elems.add(0, MyStatus.WRONG);
+assertEquals("{\"elems\":[\"WRONG\",null,\"OK\"]}", 
jsonb.toJson(wrapper));
+
+wrapper.elems.remove(2);
+assertEquals("{\"elems\":[\"WRONG\",null]}", jsonb.toJson(wrapper));
+}
+
+
 public static class Foo {
 public String name;
 public int value;
@@ -109,6 +128,14 @@ public class SerializerTest {
 public List elems = new ArrayList<>();
 }
 
+public enum MyStatus {
+OK, WRONG;
+}
+
+public static class EnumList {
+public List elems = new ArrayList<>();
+}
+
 public static class FooDeser implements JsonbDeserializer {
 @Override
 public Foo deserialize(final JsonParser parser, final 
DeserializationContext ctx, final Type rtType) {

http://git-wip-us.apache.org/repos/asf/johnzon/blob/8b5c87d5/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java
--
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java
 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java
index 0056e46..4588f54 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java
@@ -40,7 +40,7 @@ public class EnumConverter> implements 
Converter, Converter
 
 @Override // no need of cache here, it is already fast
 public String toString(final T instance) {
-return instance.name();
+return instance != null ? instance.name() : null;
 }
 
 @Override



johnzon git commit: JOHNZON-177 soften the rules at least for bytes.

2018-07-23 Thread struberg
Repository: johnzon
Updated Branches:
  refs/heads/master 50b8fc3e8 -> 31fe53aad


JOHNZON-177 soften the rules at least for bytes.

This is only an intermediate solution!
We will have to ship a proper solution until it's clear how
it will be solved on a spec level


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

Branch: refs/heads/master
Commit: 31fe53aadcaa18f94694addafb91bf04a5412f57
Parents: 50b8fc3
Author: Mark Struberg 
Authored: Mon Jul 23 13:15:56 2018 +0200
Committer: Mark Struberg 
Committed: Mon Jul 23 13:15:56 2018 +0200

--
 .../java/org/apache/johnzon/mapper/MappingParserImpl.java | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/johnzon/blob/31fe53aa/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
--
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
index 3dbc337..e2dc84d 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
@@ -557,11 +557,15 @@ public class MappingParserImpl implements MappingParser {
 }
 
 if (type == Byte.class || type == byte.class) {
-byte byteVal = (byte) intValue;
-if (intValue != byteVal) {
+
+// bytes have a special handling as they are often used
+// to transport binary. So we have to pass on the full 8 bit.
+// TODO: ATTENTION: this is only an intermediate solution 
until JOHNZON-177
+// resp https://github.com/eclipse-ee4j/jsonb-api/issues/82 is 
properly specced
+if (intValue < -128 || intValue > 255) {
 throw new java.lang.ArithmeticException("Overflow");
 }
-return byteVal;
+return (byte) intValue;
 }
 
 } else if (JsonString.class.isInstance(jsonValue)) {



johnzon git commit: JOHNZON-179 improve writeArray performance

2018-07-13 Thread struberg
Repository: johnzon
Updated Branches:
  refs/heads/master a2cbd4375 -> f784faf2c


JOHNZON-179 improve writeArray performance

Array.get is really slow, so I rewrote the array handling
to render native types separately.


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

Branch: refs/heads/master
Commit: f784faf2ce2c954bbf6168e476d9152a3843b50f
Parents: a2cbd43
Author: Mark Struberg 
Authored: Fri Jul 13 11:52:19 2018 +0200
Committer: Mark Struberg 
Committed: Fri Jul 13 11:52:19 2018 +0200

--
 .../johnzon/mapper/MappingGeneratorImpl.java| 153 ++-
 .../johnzon/mapper/MapperPerformanceTest.java   | 122 +++
 .../org/apache/johnzon/mapper/MapperTest.java   |  38 -
 3 files changed, 276 insertions(+), 37 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/johnzon/blob/f784faf2/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
--
diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
index 3fa054a..b4b9cef 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
@@ -322,32 +322,7 @@ public class MappingGeneratorImpl implements 
MappingGenerator {
 return;
 }
 if (array || (dynamic && type.isArray())) {
-final int length = Array.getLength(value);
-if (length == 0 && config.isSkipEmptyArray()) {
-return;
-}
-
-if(config.isTreatByteArrayAsBase64() && (type == byte[].class /*|| 
type == Byte[].class*/)) {
-String base64EncodedByteArray = 
Base64.getEncoder().encodeToString((byte[]) value);
-generator.write(key, base64EncodedByteArray);
-return;
-}
-if(config.isTreatByteArrayAsBase64URL() && (type == byte[].class 
/*|| type == Byte[].class*/)) {
-generator.write(key, 
Base64.getUrlEncoder().encodeToString((byte[]) value));
-return;
-}
-
-generator.writeStartArray(key);
-for (int i = 0; i < length; i++) {
-final Object o = Array.get(value, i);
-String valJsonPointer = jsonPointers.get(o);
-if (valJsonPointer != null) {
-writePrimitives(valJsonPointer);
-} else {
-writeItem(itemConverter != null ? itemConverter.from(o) : 
o, ignoredProperties, isDeduplicateObjects ? new 
JsonPointerTracker(jsonPointer, i) : null);
-}
-}
-generator.writeEnd();
+writeArray(type, itemConverter, key, value, ignoredProperties, 
jsonPointer);
 } else if (collection || (dynamic && 
Collection.class.isAssignableFrom(type))) {
 generator.writeStartArray(key);
 int i = 0;
@@ -411,6 +386,121 @@ public class MappingGeneratorImpl implements 
MappingGenerator {
 }
 }
 
+/**
+ * Write a JSON Array with a given Array Value, like byte[], int[], 
Person[] etc.
+ * @param key either the attribute key or {@code null} if the array should 
be rendered without key
+ */
+private void writeArray(Class type, Adapter itemConverter, String key, 
Object arrayValue, Collection ignoredProperties, JsonPointerTracker 
jsonPointer) {
+final int length = Array.getLength(arrayValue);
+if (length == 0 && config.isSkipEmptyArray()) {
+return;
+}
+
+if(config.isTreatByteArrayAsBase64() && (type == byte[].class /*|| 
type == Byte[].class*/)) {
+String base64EncodedByteArray = 
Base64.getEncoder().encodeToString((byte[]) arrayValue);
+if (key != null) {
+generator.write(key, base64EncodedByteArray);
+} else {
+generator.write(base64EncodedByteArray);
+}
+return;
+}
+if(config.isTreatByteArrayAsBase64URL() && (type == byte[].class /*|| 
type == Byte[].class*/)) {
+if (key != null) {
+generator.write(key, 
Base64.getUrlEncoder().encodeToString((byte[]) arrayValue));
+} else {
+generator.write(Base64.getUrlEncoder().encodeToString((byte[]) 
arrayValue));
+}
+return;
+}
+
+if (key !

svn commit: r1834806 [16/31] - in /johnzon/site/publish: ./ apidocs/ apidocs/org/apache/johnzon/core/ apidocs/org/apache/johnzon/core/class-use/ apidocs/org/apache/johnzon/jaxrs/ apidocs/org/apache/jo

2018-07-01 Thread struberg
Modified: 
johnzon/site/publish/johnzon-core/apidocs/org/apache/johnzon/core/class-use/BufferStrategy.CharBufferThreadLocalProvider.html
URL: 
http://svn.apache.org/viewvc/johnzon/site/publish/johnzon-core/apidocs/org/apache/johnzon/core/class-use/BufferStrategy.CharBufferThreadLocalProvider.html?rev=1834806=1834805=1834806=diff
==
--- 
johnzon/site/publish/johnzon-core/apidocs/org/apache/johnzon/core/class-use/BufferStrategy.CharBufferThreadLocalProvider.html
 (original)
+++ 
johnzon/site/publish/johnzon-core/apidocs/org/apache/johnzon/core/class-use/BufferStrategy.CharBufferThreadLocalProvider.html
 Sun Jul  1 20:58:34 2018
@@ -4,7 +4,7 @@
 
 
 
-Uses of Class 
org.apache.johnzon.core.BufferStrategy.CharBufferThreadLocalProvider (Johnzon 
:: Core 1.1.8-SNAPSHOT API)
+Uses of Class 
org.apache.johnzon.core.BufferStrategy.CharBufferThreadLocalProvider (Johnzon 
:: Core 1.1.9-SNAPSHOT API)
 
 
 
@@ -12,7 +12,7 @@
 
 
-Uses of Class org.apache.johnzon.core.BufferStrategy.QueueProvider 
(Johnzon :: Core 1.1.8-SNAPSHOT API)
+Uses of Class org.apache.johnzon.core.BufferStrategy.QueueProvider 
(Johnzon :: Core 1.1.9-SNAPSHOT API)