From 0fa0ffc003545acb20e10acabcf648dce681ce58 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Fri, 21 Nov 2025 12:11:22 -0500 Subject: [PATCH] add hibernate validator to build We finally hit the version number to add this to the regular build --- http-hibernate-validator/pom.xml | 20 ++++++-------- .../hibernate/validator/BeanValidator.java | 17 +++++++----- .../validator/ValidatorProvider.java | 27 ++++++++++++------- .../src/main/java/module-info.java | 8 +++--- .../io.avaje.inject.spi.InjectExtension | 1 - pom.xml | 1 + 6 files changed, 40 insertions(+), 34 deletions(-) delete mode 100644 http-hibernate-validator/src/main/resources/META-INF/services/io.avaje.inject.spi.InjectExtension diff --git a/http-hibernate-validator/pom.xml b/http-hibernate-validator/pom.xml index 82c917cc6..1acdb7095 100644 --- a/http-hibernate-validator/pom.xml +++ b/http-hibernate-validator/pom.xml @@ -2,17 +2,13 @@ 4.0.0 - - io.avaje - avaje-http-hibernate-validator - 3.5 - - org.avaje - java11-oss - 4.3 - + io.avaje + avaje-http-parent + 3.6-RC1 + + avaje-http-hibernate-validator scm:git:git@github.com:avaje/avaje-http.git @@ -36,14 +32,14 @@ io.avaje avaje-http-api - 2.6 + 3.6-RC1 provided io.avaje - avaje-inject - 11.0 + avaje-inject-generator + 12.1-RC3 provided diff --git a/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/BeanValidator.java b/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/BeanValidator.java index 9a5ffa620..ccd54b960 100644 --- a/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/BeanValidator.java +++ b/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/BeanValidator.java @@ -1,22 +1,27 @@ package io.avaje.http.hibernate.validator; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; import io.avaje.http.api.ValidationException; import io.avaje.http.api.ValidationException.Violation; import io.avaje.http.api.Validator; import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolationException; -import jakarta.validation.Validation; -import jakarta.validation.ValidatorFactory; public class BeanValidator implements Validator { - private static final ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + private jakarta.validation.Validator validator; + + void postConstruct(jakarta.validation.Validator validator) { + this.validator = validator; + } @Override - public void validate(Object bean, String acceptLanguage, Class... groups) throws ValidationException { - final Set> violations = factory.getValidator().validate(bean, groups); + public void validate(Object bean, String acceptLanguage, Class... groups) + throws ValidationException { + final Set> violations = validator.validate(bean, groups); if (!violations.isEmpty()) { throwExceptionWith(violations); } diff --git a/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/ValidatorProvider.java b/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/ValidatorProvider.java index cb8759224..a70470871 100644 --- a/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/ValidatorProvider.java +++ b/http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/ValidatorProvider.java @@ -2,19 +2,26 @@ import io.avaje.http.api.Validator; import io.avaje.inject.BeanScopeBuilder; +import io.avaje.inject.spi.PluginProvides; +import jakarta.validation.Validation; -/** - * Plugin for avaje inject that provides a default BeanValidator instance. - */ +/** Plugin for avaje inject that provides a default BeanValidator instance. */ +@PluginProvides(Validator.class) public final class ValidatorProvider implements io.avaje.inject.spi.InjectPlugin { - @Override - public Class[] provides() { - return new Class[]{Validator.class}; - } - @Override public void apply(BeanScopeBuilder builder) { - builder.provideDefault(null, Validator.class, BeanValidator::new); + builder.provideDefault( + Validator.class, + () -> { + var validator = new BeanValidator(); + builder.addPostConstruct( + b -> + validator.postConstruct( + b.getOptional(jakarta.validation.Validator.class) + .orElseGet( + () -> Validation.buildDefaultValidatorFactory().getValidator()))); + return validator; + }); } -} \ No newline at end of file +} diff --git a/http-hibernate-validator/src/main/java/module-info.java b/http-hibernate-validator/src/main/java/module-info.java index 2d1c0f6f9..90a5e1bf3 100644 --- a/http-hibernate-validator/src/main/java/module-info.java +++ b/http-hibernate-validator/src/main/java/module-info.java @@ -2,11 +2,9 @@ module io.avaje.http.hibernate.validator { - exports io.avaje.http.hibernate.validator; - - requires io.avaje.http.api; - requires io.avaje.inject; - requires jakarta.validation; + requires transitive io.avaje.http.api; + requires transitive io.avaje.inject; + requires transitive jakarta.validation; provides io.avaje.inject.spi.InjectExtension with ValidatorProvider; } diff --git a/http-hibernate-validator/src/main/resources/META-INF/services/io.avaje.inject.spi.InjectExtension b/http-hibernate-validator/src/main/resources/META-INF/services/io.avaje.inject.spi.InjectExtension deleted file mode 100644 index b33492160..000000000 --- a/http-hibernate-validator/src/main/resources/META-INF/services/io.avaje.inject.spi.InjectExtension +++ /dev/null @@ -1 +0,0 @@ -io.avaje.http.hibernate.validator.ValidatorProvider diff --git a/pom.xml b/pom.xml index df6722420..f426ba264 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,7 @@ http-generator-javalin http-generator-sigma http-generator-client + http-hibernate-validator