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 812b9e60d668002a02ab2d60aeb68d1c5f4508f7 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() {