Skip to content

Commit 585c195

Browse files
authored
Merge pull request #142 from SentryMan/v
AutoProvide Validator
2 parents 49212f3 + d4277d5 commit 585c195

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

http-hibernate-validator/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-hibernate-validator</artifactId>
7-
<version>3.0</version>
7+
<version>3.1</version>
88

99
<parent>
1010
<groupId>org.avaje</groupId>
@@ -42,7 +42,7 @@
4242
<dependency>
4343
<groupId>io.avaje</groupId>
4444
<artifactId>avaje-inject</artifactId>
45-
<version>8.11</version>
45+
<version>8.12-RC1</version>
4646
<scope>provided</scope>
4747
</dependency>
4848

http-hibernate-validator/src/main/java/io/avaje/http/hibernate/validator/BeanValidator.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,27 @@
77

88
import io.avaje.http.api.ValidationException;
99
import io.avaje.http.api.Validator;
10-
import io.avaje.inject.Component;
1110
import jakarta.validation.ConstraintViolation;
12-
import jakarta.validation.Path;
1311
import jakarta.validation.Validation;
1412
import jakarta.validation.ValidatorFactory;
1513

16-
@Component
1714
public class BeanValidator implements Validator {
1815

1916
private static final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
2017

2118
@Override
2219
public void validate(Object bean) {
23-
Set<ConstraintViolation<Object>> violations = factory.getValidator().validate(bean);
20+
final Set<ConstraintViolation<Object>> violations = factory.getValidator().validate(bean);
2421
if (!violations.isEmpty()) {
2522
throwExceptionWith(violations);
2623
}
2724
}
2825

2926
private void throwExceptionWith(Set<ConstraintViolation<Object>> violations) {
30-
Map<String, Object> errors = new LinkedHashMap<>();
31-
for (ConstraintViolation<?> violation : violations) {
32-
Path path = violation.getPropertyPath();
33-
String message = violation.getMessage();
27+
final Map<String, Object> errors = new LinkedHashMap<>();
28+
for (final ConstraintViolation<?> violation : violations) {
29+
final var path = violation.getPropertyPath();
30+
final var message = violation.getMessage();
3431
errors.put(path.toString(), message);
3532
}
3633

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.avaje.http.hibernate.validator;
2+
3+
import io.avaje.http.api.Validator;
4+
import io.avaje.inject.BeanScopeBuilder;
5+
6+
/**
7+
* Plugin for avaje inject that provides a default BeanValidator instance.
8+
*/
9+
public final class ValidatorProvider implements io.avaje.inject.spi.Plugin {
10+
11+
@Override
12+
public Class<?>[] provides() {
13+
return new Class<?>[]{Validator.class};
14+
}
15+
16+
@Override
17+
public void apply(BeanScopeBuilder builder) {
18+
builder.provideDefault(Validator.class, BeanValidator::new);
19+
}
20+
}

0 commit comments

Comments
 (0)