Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 8 additions & 12 deletions http-hibernate-validator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,13 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>io.avaje</groupId>
<artifactId>avaje-http-hibernate-validator</artifactId>
<version>3.5</version>

<parent>
<groupId>org.avaje</groupId>
<artifactId>java11-oss</artifactId>
<version>4.3</version>
<relativePath/>
<groupId>io.avaje</groupId>
<artifactId>avaje-http-parent</artifactId>
<version>3.6-RC1</version>
</parent>

<artifactId>avaje-http-hibernate-validator</artifactId>

<scm>
<developerConnection>scm:git:git@github.com:avaje/avaje-http.git</developerConnection>
Expand All @@ -36,14 +32,14 @@
<dependency>
<groupId>io.avaje</groupId>
<artifactId>avaje-http-api</artifactId>
<version>2.6</version>
<version>3.6-RC1</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>io.avaje</groupId>
<artifactId>avaje-inject</artifactId>
<version>11.0</version>
<artifactId>avaje-inject-generator</artifactId>
<version>12.1-RC3</version>
<scope>provided</scope>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
@@ -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<ConstraintViolation<Object>> violations = factory.getValidator().validate(bean, groups);
public void validate(Object bean, String acceptLanguage, Class<?>... groups)
throws ValidationException {
final Set<ConstraintViolation<Object>> violations = validator.validate(bean, groups);
if (!violations.isEmpty()) {
throwExceptionWith(violations);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
});
}
}
}
8 changes: 3 additions & 5 deletions http-hibernate-validator/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

This file was deleted.

1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
<module>http-generator-javalin</module>
<module>http-generator-sigma</module>
<module>http-generator-client</module>
<module>http-hibernate-validator</module>
</modules>

<profiles>
Expand Down