You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ji...@apache.org on 2023/07/21 11:51:17 UTC

[camel-quarkus] 04/21: Fixed version conflict + substitution in json-validator

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

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

commit 4622a74b056bc65106936848f5b2a101f940befb
Author: JiriOndrusek <on...@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() {