[johnzon] branch master updated: [JOHNZON-333] align both writePrimitives methods of MappingGeneratorImpl

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

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


The following commit(s) were added to refs/heads/master by this push:
 new f96fcea  [JOHNZON-333] align both writePrimitives methods of 
MappingGeneratorImpl
f96fcea is described below

commit f96fceae0316cdf5f7cf406def46486d48c4805c
Author: Romain Manni-Bucau 
AuthorDate: Tue Jan 26 08:56:04 2021 +0100

[JOHNZON-333] align both writePrimitives methods of MappingGeneratorImpl
---
 .../apache/johnzon/jsonb/DefaultMappingTest.java   |  2 +-
 .../org/apache/johnzon/jsonb/JsonbWriteTest.java   | 22 +
 .../java/org/apache/johnzon/mapper/Mapper.java | 37 ++
 .../johnzon/mapper/MappingGeneratorImpl.java   |  6 +++-
 4 files changed, 37 insertions(+), 30 deletions(-)

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 c930b44..5c7f4e2 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
@@ -151,7 +151,7 @@ public class DefaultMappingTest {
 
 @Test
 public void simpleValues() {
-assertEquals("\"\"strValue\"\"", JSONB.toJson("\"strValue\""));
+assertEquals("\"\\\"strValue\\\"\"", JSONB.toJson("\"strValue\""));
 assertEquals("\"true\"", JSONB.toJson("true"));
 assertEquals("\"false\"", JSONB.toJson("false"));
 assertEquals("\"null\"", JSONB.toJson("null"));
diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java
index 36b41a5..60fbfdb 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java
@@ -23,6 +23,7 @@ import org.junit.Test;
 import javax.json.bind.Jsonb;
 import javax.json.bind.JsonbBuilder;
 import javax.json.bind.JsonbConfig;
+import javax.json.bind.adapter.JsonbAdapter;
 import javax.json.bind.annotation.JsonbCreator;
 import javax.json.bind.annotation.JsonbDateFormat;
 import javax.json.bind.annotation.JsonbProperty;
@@ -44,6 +45,27 @@ import static org.junit.Assert.assertEquals;
 
 public class JsonbWriteTest {
 @Test
+public void rawAdapter() throws Exception {
+try (final Jsonb jsonb = JsonbBuilder.create(new JsonbConfig()
+.withAdapters(new JsonbAdapter() {
+@Override
+public String adaptToJson(final SimpleProperty obj) {
+return obj.getValue();
+}
+
+@Override
+public SimpleProperty adaptFromJson(final String obj) {
+throw new UnsupportedOperationException();
+}
+}))) {
+final SimpleProperty property = new SimpleProperty();
+property.setValue("ok");
+final String json = jsonb.toJson(property, Throwable.class);
+assertEquals("\"ok\"", json);
+}
+}
+
+@Test
 public void throwable() throws Exception {
 try (final Jsonb jsonb = JsonbBuilder.create(new JsonbConfig()
 
.withPropertyOrderStrategy(PropertyOrderStrategy.LEXICOGRAPHICAL))){
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 775e7b6..3e7aaf7 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
@@ -168,45 +168,26 @@ public class Mapper implements Closeable {
 }
 
 public void writeObject(final Object object, final Writer stream) {
-if (JsonValue.class.isInstance(object)
-|| Boolean.class.isInstance(object) || 
String.class.isInstance(object) || Number.class.isInstance(object)
-|| object == null) {
-try {
-final String valueOf = String.valueOf(object);
-if (object instanceof String) {
-stream.write('"');
-stream.write(valueOf);
-stream.write('"');
-}  else {
-stream.write(valueOf);
-}
+if (object == null) {
+try (final Writer w = stream) {
+w.write("null");
 } catch (final IOException e) {
 throw new MapperException(e);
-} finally {
-if (config.isClose()) {
-try {
-stream.close();
-} catch (final IOException e) {
-// no-op
-

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

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

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


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

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

JOHNZON-333 respect RFC 7159 Section 7 (Strings)

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

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

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

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

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

commit 343c8318c0236a7fa04f308261c4a4b59cd60745
Author: Romain Manni-Bucau 
AuthorDate: Mon Jan 25 11:54:35 2021 +0100

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

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



[johnzon] 02/03: [JOHNZON-332] add skipAccessModeWrapper toggle for backward compatibility

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

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

commit 0d06bd02fb9e8e3d9cc26dc90dd004e20b0b3b0a
Author: Romain Manni-Bucau 
AuthorDate: Mon Jan 25 11:51:16 2021 +0100

[JOHNZON-332] add skipAccessModeWrapper toggle for backward compatibility
---
 .../src/main/java/org/apache/johnzon/mapper/MapperBuilder.java| 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperBuilder.java 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperBuilder.java
index cbb2213..9646a90 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperBuilder.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MapperBuilder.java
@@ -106,6 +106,7 @@ public class MapperBuilder {
 private boolean useBigDecimalForObjectNumbers;
 private boolean supportEnumContainerDeserialization = true;
 private Function, MapperConfig.CustomEnumConverter> 
enumConverterFactory = type -> new EnumConverter(type);
+private boolean skipAccessModeWrapper;
 
 // @experimental polymorphic api
 private Function> typeLoader;
@@ -200,7 +201,7 @@ public class MapperBuilder {
 throw new IllegalStateException("AccessMode is not an 
BaseAccessMode");
 }
 }
-if (!KnownNotOpenedJavaTypesAccessMode.class.isInstance(accessMode)) {
+if (!skipAccessModeWrapper && 
!KnownNotOpenedJavaTypesAccessMode.class.isInstance(accessMode)) {
 accessMode = new KnownNotOpenedJavaTypesAccessMode(accessMode);
 }
 
@@ -561,4 +562,9 @@ public class MapperBuilder {
 this.discriminator = value;
 return this;
 }
+
+public MapperBuilder setSkipAccessModeWrapper(final boolean 
skipAccessModeWrapper) {
+this.skipAccessModeWrapper = skipAccessModeWrapper;
+return this;
+}
 }



[johnzon] 01/03: [JOHNZON-332] exception de/serialization

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

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

commit 4f53103f64c9f7c0ec645c1b0d04c1d34f9a8dcf
Author: Romain Manni-Bucau 
AuthorDate: Mon Jan 25 11:48:36 2021 +0100

[JOHNZON-332] exception de/serialization
---
 .../org/apache/johnzon/jsonb/JohnzonBuilder.java   |  37 +-
 .../org/apache/johnzon/jsonb/JsonbWriteTest.java   |  31 ++
 .../org/apache/johnzon/mapper/MapperBuilder.java   |   4 +
 .../access/KnownNotOpenedJavaTypesAccessMode.java  | 415 +
 .../johnzon/mapper/CircularExceptionTest.java  |   4 +-
 5 files changed, 475 insertions(+), 16 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 ab82053..52878dc 100644
--- a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java
+++ b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonBuilder.java
@@ -38,6 +38,7 @@ import org.apache.johnzon.mapper.ObjectConverter;
 import org.apache.johnzon.mapper.SerializeValueFilter;
 import org.apache.johnzon.mapper.access.AccessMode;
 import org.apache.johnzon.mapper.access.FieldAndMethodAccessMode;
+import org.apache.johnzon.mapper.access.KnownNotOpenedJavaTypesAccessMode;
 import org.apache.johnzon.mapper.converter.LocaleConverter;
 import org.apache.johnzon.mapper.internal.AdapterKey;
 
@@ -213,21 +214,27 @@ public class JohnzonBuilder implements JsonbBuilder {
 
 final AccessMode accessMode = config.getProperty("johnzon.accessMode")
 .map(this::toAccessMode)
-.orElseGet(() -> new JsonbAccessMode(
-propertyNamingStrategy, orderValue, visibilityStrategy,
-
!namingStrategyValue.orElse("").equals(PropertyNamingStrategy.CASE_INSENSITIVE),
-builder.getAdapters(),
-factory, jsonp, builderFactorySupplier, 
parserFactoryProvider,
-config.getProperty("johnzon.accessModeDelegate")
-.map(this::toAccessMode)
-.orElseGet(() -> new 
FieldAndMethodAccessMode(true, true, false, true)),
-
config.getProperty("johnzon.failOnMissingCreatorValues")
-  .map(this::toBool)
-  .orElse(true) /*spec 1.0 requirement*/,
-isNillable,
-config.getProperty("johnzon.supportsPrivateAccess")
-.map(this::toBool)
-.orElse(false)));
+.orElseGet(() -> {
+final AccessMode access = new JsonbAccessMode(
+propertyNamingStrategy, orderValue, 
visibilityStrategy,
+
!namingStrategyValue.orElse("").equals(PropertyNamingStrategy.CASE_INSENSITIVE),
+builder.getAdapters(),
+factory, jsonp, builderFactorySupplier, 
parserFactoryProvider,
+config.getProperty("johnzon.accessModeDelegate")
+.map(this::toAccessMode)
+.orElseGet(() -> new 
FieldAndMethodAccessMode(true, true, false, true)),
+
config.getProperty("johnzon.failOnMissingCreatorValues")
+.map(this::toBool)
+.orElse(true) /*spec 1.0 requirement*/,
+isNillable,
+config.getProperty("johnzon.supportsPrivateAccess")
+.map(this::toBool)
+.orElse(false));
+return 
ofNullable(config.getProperty("johnzon.enable-exception-serialization"))
+.map(v -> Boolean.parseBoolean(String.valueOf(v)))
+.map(it -> it ? new 
KnownNotOpenedJavaTypesAccessMode(access) : access)
+.orElseGet(() -> new 
KnownNotOpenedJavaTypesAccessMode(access));
+});
 builder.setAccessMode(accessMode);
 
 // user adapters
diff --git 
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java 
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java
index 95541ee..36b41a5 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java
@@ -22,8 +22,11 @@ import org.junit.Test;
 
 import javax.json.bind.Jsonb;
 import javax.json.bind.JsonbBuilder;
+import javax.json.bind.JsonbConfig;
+import javax.json.bind.annotation.JsonbCreator;
 import javax.json.bind.annotation.JsonbDateFormat;
 import 

[johnzon] branch master updated: 1.2.10 download page update

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

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


The following commit(s) were added to refs/heads/master by this push:
 new a6e569e  1.2.10 download page update
a6e569e is described below

commit a6e569e87f0466d7fb211326718c0866303933db
Author: Romain Manni-Bucau 
AuthorDate: Mon Jan 25 09:25:51 2021 +0100

1.2.10 download page update
---
 src/site/markdown/download.md | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/site/markdown/download.md b/src/site/markdown/download.md
index f321303..df5ef3b 100644
--- a/src/site/markdown/download.md
+++ b/src/site/markdown/download.md
@@ -41,16 +41,16 @@ Apache Johnzon 1.1.x implements the JSON-P 1.1 and JSON-B 
1.0 specifications whi
  Binaries
 The binary distribution contains all Johnzon modules.
 
-* 
[apache-johnzon-1.2.8-bin.zip](https://www.apache.org/dyn/closer.lua/johnzon/johnzon-1.2.8/apache-johnzon-1.2.8-bin.zip)
-* 
[apache-johnzon-1.2.8-bin.zip.sha1](https://www.apache.org/dist/johnzon/johnzon-1.2.8/apache-johnzon-1.2.8-bin.zip.sha1)
-* 
[apache-johnzon-1.2.8-bin.zip.asc](https://www.apache.org/dist/johnzon/johnzon-1.2.8/apache-johnzon-1.2.8-bin.zip.asc)
+* 
[apache-johnzon-1.2.10-bin.zip](https://www.apache.org/dyn/closer.lua/johnzon/johnzon-1.2.10/apache-johnzon-1.2.10-bin.zip)
+* 
[apache-johnzon-1.2.10-bin.zip.sha1](https://www.apache.org/dist/johnzon/johnzon-1.2.10/apache-johnzon-1.2.10-bin.zip.sha1)
+* 
[apache-johnzon-1.2.10-bin.zip.asc](https://www.apache.org/dist/johnzon/johnzon-1.2.10/apache-johnzon-1.2.10-bin.zip.asc)
 
  Source
 Should you want to build any of the above binaries, this source bundle is the 
right one and covers them all.
 
-* 
[johnzon-1.2.8-source-release.zip](https://www.apache.org/dyn/closer.lua/johnzon/johnzon-1.2.8/johnzon-1.2.8-source-release.zip)
-* 
[johnzon-1.2.8-source-release.zip.sha1](https://www.apache.org/dist/johnzon/johnzon-1.2.8/johnzon-1.2.8-source-release.zip.sha1)
-* 
[johnzon-1.2.8-source-release.zip.asc](https://www.apache.org/dist/johnzon/johnzon-1.2.8/johnzon-1.2.8-source-release.zip.asc)
+* 
[johnzon-1.2.10-source-release.zip](https://www.apache.org/dyn/closer.lua/johnzon/johnzon-1.2.10/johnzon-1.2.10-source-release.zip)
+* 
[johnzon-1.2.10-source-release.zip.sha1](https://www.apache.org/dist/johnzon/johnzon-1.2.10/johnzon-1.2.10-source-release.zip.sha1)
+* 
[johnzon-1.2.10-source-release.zip.asc](https://www.apache.org/dist/johnzon/johnzon-1.2.10/johnzon-1.2.10-source-release.zip.asc)
 
 
 ## Johnzon-1.0.x