You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by jl...@apache.org on 2023/05/22 09:06:53 UTC
[johnzon] 11/11: fix: issue with cherry-pick conflicts resolution
This is an automated email from the ASF dual-hosted git repository.
jlmonteiro pushed a commit to branch johnzon-1.2.x
in repository https://gitbox.apache.org/repos/asf/johnzon.git
commit d8d00d28a57a4ab1f6bd4b00b2d3d482f3cd9ac9
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Mon May 22 11:06:29 2023 +0200
fix: issue with cherry-pick conflicts resolution
Signed-off-by: Jean-Louis Monteiro <jl...@tomitribe.com>
---
.../java/org/apache/johnzon/core/JsonProviderImpl.java | 14 +++++++++++++-
1 file changed, 13 insertions(+), 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 55101a32..d6b86921 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
@@ -18,6 +18,8 @@
*/
package org.apache.johnzon.core;
+import org.apache.johnzon.core.spi.JsonPointerFactory;
+
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
@@ -27,7 +29,9 @@ import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
import java.util.Map;
+import java.util.ServiceLoader;
import java.util.function.Supplier;
+import java.util.stream.StreamSupport;
import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
@@ -52,6 +56,8 @@ import javax.json.stream.JsonGeneratorFactory;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParserFactory;
+import static java.util.Comparator.comparing;
+
public class JsonProviderImpl extends JsonProvider implements Serializable {
private final Supplier<BufferStrategy.BufferProvider<char[]>> bufferProvider = new Cached<>(() ->
BufferStrategyFactory.valueOf(System.getProperty(AbstractJsonFactory.BUFFER_STRATEGY, "QUEUE"))
@@ -64,7 +70,13 @@ public class JsonProviderImpl extends JsonProvider implements Serializable {
private final Supplier<JsonBuilderFactory> builderFactory = new Cached<>(() ->
new JsonBuilderFactoryImpl(null, bufferProvider.get(), RejectDuplicateKeysMode.DEFAULT, this));
private int maxBigDecimalScale = Integer.getInteger("johnzon.max-big-decimal-scale", 1_000);
+ private final JsonPointerFactory jsonPointerFactory;
+ public JsonProviderImpl() {
+ jsonPointerFactory = StreamSupport.stream(ServiceLoader.load(JsonPointerFactory.class).spliterator(), false)
+ .min(comparing(JsonPointerFactory::ordinal))
+ .orElseGet(DefaultJsonPointerFactory::new);
+ }
@Override
public JsonParser createParser(final InputStream in) {
return parserFactory.createParser(in);
@@ -204,7 +216,7 @@ public class JsonProviderImpl extends JsonProvider implements Serializable {
@Override
public JsonPointer createPointer(String path) {
- return new JsonPointerImpl(this, path);
+ return jsonPointerFactory.createPointer(this, path);
}
@Override