This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 1ac2b11fb575697ea0dd37a5447ff680cec86998
Author: JiriOndrusek <ondrusek.j...@gmail.com>
AuthorDate: Wed Jul 12 14:51:26 2023 +0200

    Fixed version conflict + substitution in json-validator
---
 .../graal/JsonValidatorSubstitutions.java          | 39 +++++++---------------
 1 file changed, 12 insertions(+), 27 deletions(-)

diff --git 
a/extensions/json-validator/runtime/src/main/java/org/apache/camel/quarkus/component/json/validator/graal/JsonValidatorSubstitutions.java
 
b/extensions/json-validator/runtime/src/main/java/org/apache/camel/quarkus/component/json/validator/graal/JsonValidatorSubstitutions.java
index 82518ba3fd..5237dc65a3 100644
--- 
a/extensions/json-validator/runtime/src/main/java/org/apache/camel/quarkus/component/json/validator/graal/JsonValidatorSubstitutions.java
+++ 
b/extensions/json-validator/runtime/src/main/java/org/apache/camel/quarkus/component/json/validator/graal/JsonValidatorSubstitutions.java
@@ -19,16 +19,10 @@ package 
org.apache.camel.quarkus.component.json.validator.graal;
 import java.lang.reflect.Constructor;
 import java.util.function.BooleanSupplier;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.networknt.schema.JsonSchema;
-import com.networknt.schema.JsonValidator;
-import com.networknt.schema.PatternValidator;
 import com.networknt.schema.ValidationContext;
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.Delete;
+import com.networknt.schema.regex.RegularExpression;
 import com.oracle.svm.core.annotate.Substitute;
 import com.oracle.svm.core.annotate.TargetClass;
-import com.oracle.svm.core.annotate.TargetElement;
 
 /**
  * Removes references to PatternValidatorEcma262Deletion, which requires 
optional org.jruby.joni:joni
@@ -36,36 +30,27 @@ import com.oracle.svm.core.annotate.TargetElement;
 public class JsonValidatorSubstitutions {
 }
 
-@TargetClass(value = PatternValidator.class, onlyWith = IsJoniAbsent.class)
-final class PatternValidatorSubstitutions {
-    @Alias
-    private JsonValidator delegate;
-    @Alias
-    private ValidationContext validationContext;
+@TargetClass(value = RegularExpression.class, onlyWith = IsJoniAbsent.class)
+@Substitute
+interface RegularExpressionSubstitutions {
+    @Substitute
+    boolean matches(String value);
 
     @Substitute
-    @TargetElement(name = TargetElement.CONSTRUCTOR_NAME)
-    public PatternValidatorSubstitutions(String schemaPath, JsonNode 
schemaNode, JsonSchema parentSchema,
-            ValidationContext validationContext) {
+    static RegularExpression compile(String regex, ValidationContext 
validationContext) {
+        if (null == regex)
+            return s -> true;
         try {
-            Class<?> clazz = 
Class.forName("com.networknt.schema.PatternValidator$PatternValidatorJava");
-            Constructor<?> constructor = 
clazz.getDeclaredConstructor(String.class, JsonNode.class, JsonSchema.class,
-                    ValidationContext.class);
+            Class<?> clazz = 
Class.forName("com.networknt.schema.regex.JDKRegularExpression");
+            Constructor<?> constructor = 
clazz.getDeclaredConstructor(String.class);
 
-            this.validationContext = validationContext;
-            this.delegate = (JsonValidator) 
constructor.newInstance(schemaPath, schemaNode, parentSchema,
-                    validationContext);
+            return (RegularExpression) constructor.newInstance(regex);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 }
 
-@TargetClass(className = 
"com.networknt.schema.PatternValidator$PatternValidatorEcma262", onlyWith = 
IsJoniAbsent.class)
-@Delete
-final class PatternValidatorEcma262Deletion {
-}
-
 final class IsJoniAbsent implements BooleanSupplier {
     @Override
     public boolean getAsBoolean() {

Reply via email to