diff --git a/formalist/deployment/src/main/java/org/pagan/formalist/HibernateValidatorProcessor.java b/formalist/deployment/src/main/java/org/pagan/formalist/HibernateValidatorProcessor.java index b44ecac..35a99f9 100644 --- a/formalist/deployment/src/main/java/org/pagan/formalist/HibernateValidatorProcessor.java +++ b/formalist/deployment/src/main/java/org/pagan/formalist/HibernateValidatorProcessor.java @@ -11,7 +11,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Predicate; -import java.util.regex.Pattern; import javax.validation.ClockProvider; import javax.validation.Constraint; @@ -32,6 +31,7 @@ import org.jboss.jandex.DotName; import org.jboss.jandex.IndexView; import org.jboss.jandex.MethodInfo; import org.jboss.jandex.Type; +import org.pagan.formalist.interceptor.MethodValidationInterceptor; import io.quarkus.arc.deployment.AdditionalBeanBuildItem; import io.quarkus.arc.deployment.AnnotationsTransformerBuildItem; @@ -41,23 +41,15 @@ import io.quarkus.arc.deployment.UnremovableBeanBuildItem; import io.quarkus.arc.processor.BeanInfo; import io.quarkus.deployment.Capabilities; import io.quarkus.deployment.Capability; -import io.quarkus.deployment.Feature; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.annotations.Record; import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; -import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem; import io.quarkus.deployment.builditem.ShutdownContextBuildItem; -import io.quarkus.deployment.builditem.nativeimage.NativeImageConfigBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveFieldBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveMethodBuildItem; -import io.quarkus.deployment.logging.LogCleanupFilterBuildItem; import io.quarkus.deployment.recording.RecorderContext; -//import org.pagan.formalist.HibernateValidatorBuildTimeConfig; -import org.pagan.formalist.HibernateValidatorRecorder; -import org.pagan.formalist.ValidatorProvider; -import org.pagan.formalist.interceptor.MethodValidationInterceptor; import io.quarkus.resteasy.server.common.spi.AdditionalJaxRsResourceMethodAnnotationsBuildItem; //import io.quarkus.runtime.LocalesBuildTimeConfig; @@ -88,7 +80,8 @@ class HibernateValidatorProcessor { private static final DotName REPEATABLE = DotName.createSimple(Repeatable.class.getName()); - private static final Pattern BUILT_IN_CONSTRAINT_REPEATABLE_CONTAINER_PATTERN = Pattern.compile("\\$List$"); + // private static final Pattern BUILT_IN_CONSTRAINT_REPEATABLE_CONTAINER_PATTERN + // = Pattern.compile("\\$List$"); // @BuildStep // HotDeploymentWatchedFileBuildItem configFile() { @@ -198,8 +191,9 @@ class HibernateValidatorProcessor { } // we trim the repeatable container suffix if needed - String builtinConstraintCandidate = BUILT_IN_CONSTRAINT_REPEATABLE_CONTAINER_PATTERN - .matcher(consideredAnnotation.toString()).replaceAll(""); + // String builtinConstraintCandidate = + // BUILT_IN_CONSTRAINT_REPEATABLE_CONTAINER_PATTERN + // .matcher(consideredAnnotation.toString()).replaceAll(""); // if (builtinConstraints.contains(builtinConstraintCandidate)) { // detectedBuiltinConstraints.add(builtinConstraintCandidate); // } @@ -252,7 +246,8 @@ class HibernateValidatorProcessor { Set> classesToBeValidated = new HashSet<>(); for (DotName className : classNamesToBeValidated) { - classesToBeValidated.add(recorderContext.classProxy(className.toString())); + classesToBeValidated + .add(Class.forName(className.toString(), true, Thread.currentThread().getContextClassLoader())); } beanContainerListener @@ -274,19 +269,21 @@ class HibernateValidatorProcessor { // .build(); // } - private static void contributeBuiltinConstraints(Set builtinConstraints, - Set consideredAnnotationsCollector) { - for (String builtinConstraint : builtinConstraints) { - consideredAnnotationsCollector.add(DotName.createSimple(builtinConstraint)); - - // for all built-in constraints, we follow a strict convention for repeatable - // annotations, - // they are all inner classes called List - // while not all our built-in constraints are repeatable, let's avoid loading - // the class to check - consideredAnnotationsCollector.add(DotName.createSimple(builtinConstraint + "$List")); - } - } + // private static void contributeBuiltinConstraints(Set + // builtinConstraints, + // Set consideredAnnotationsCollector) { + // for (String builtinConstraint : builtinConstraints) { + // consideredAnnotationsCollector.add(DotName.createSimple(builtinConstraint)); + + // // for all built-in constraints, we follow a strict convention for repeatable + // // annotations, + // // they are all inner classes called List + // // while not all our built-in constraints are repeatable, let's avoid loading + // // the class to check + // consideredAnnotationsCollector.add(DotName.createSimple(builtinConstraint + + // "$List")); + // } + // } private static void contributeClass(Set classNamesCollector, IndexView indexView, DotName className) { classNamesCollector.add(className); diff --git a/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/AbstractMethodValidationInterceptor.java b/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/AbstractMethodValidationInterceptor.java index ba844c4..bbdc3a0 100644 --- a/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/AbstractMethodValidationInterceptor.java +++ b/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/AbstractMethodValidationInterceptor.java @@ -28,6 +28,7 @@ import javax.validation.executable.ExecutableValidator; */ public abstract class AbstractMethodValidationInterceptor implements Serializable { + private static final long serialVersionUID = 1L; /** * The validator to be used for method validation. *

diff --git a/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/MethodValidationInterceptor.java b/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/MethodValidationInterceptor.java index cc9355c..07d1c9a 100644 --- a/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/MethodValidationInterceptor.java +++ b/formalist/runtime/src/main/java/org/pagan/formalist/interceptor/MethodValidationInterceptor.java @@ -12,6 +12,8 @@ import javax.interceptor.InvocationContext; @Priority(Interceptor.Priority.PLATFORM_AFTER + 800) public class MethodValidationInterceptor extends AbstractMethodValidationInterceptor { + private static final long serialVersionUID = 1L; + @AroundInvoke @Override public Object validateMethodInvocation(InvocationContext ctx) throws Exception { diff --git a/formalist/runtime/src/main/java/org/pagan/formalist/jaxrs/JaxrsEndPointValidationInterceptor.java b/formalist/runtime/src/main/java/org/pagan/formalist/jaxrs/JaxrsEndPointValidationInterceptor.java index eb8607d..54ac8e2 100644 --- a/formalist/runtime/src/main/java/org/pagan/formalist/jaxrs/JaxrsEndPointValidationInterceptor.java +++ b/formalist/runtime/src/main/java/org/pagan/formalist/jaxrs/JaxrsEndPointValidationInterceptor.java @@ -23,6 +23,8 @@ import org.pagan.formalist.interceptor.AbstractMethodValidationInterceptor; @Priority(Interceptor.Priority.PLATFORM_AFTER + 800) public class JaxrsEndPointValidationInterceptor extends AbstractMethodValidationInterceptor { + private static final long serialVersionUID = 1L; + @AroundInvoke @Override public Object validateMethodInvocation(InvocationContext ctx) throws Exception {