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 <jlmonte...@tomitribe.com>
AuthorDate: Mon May 22 11:06:29 2023 +0200

    fix: issue with cherry-pick conflicts resolution
    
    Signed-off-by: Jean-Louis Monteiro <jlmonte...@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

Reply via email to