[johnzon] branch master updated: finish primitive test with rest of missing types
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
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
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
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
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/
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)
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
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)
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
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/
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)
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)
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
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
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
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
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
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.
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)
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
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
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)
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
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
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
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/
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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...
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
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
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
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
Repository: johnzon Updated Tags: refs/tags/v1.1.9 [created] ac5e2256e
johnzon git commit: JOHNZON-186 fix NPE in EnumConverter
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.
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
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
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)