Skip to content

Commit 6c0a02b

Browse files
committed
HV-2018 Use filters in CDI extension instead of the stream
1 parent d2f3439 commit 6c0a02b

File tree

1 file changed

+29
-11
lines changed

1 file changed

+29
-11
lines changed

cdi/src/main/java/org/hibernate/validator/cdi/internal/ValidationProviderHelper.java

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import java.util.Collections;
1414
import java.util.HashSet;
1515
import java.util.Set;
16-
import java.util.stream.Collectors;
1716

1817
import jakarta.enterprise.inject.Any;
1918
import jakarta.enterprise.inject.Default;
@@ -27,6 +26,7 @@
2726
import org.hibernate.validator.internal.engine.ValidatorImpl;
2827
import org.hibernate.validator.internal.util.CollectionHelper;
2928
import org.hibernate.validator.internal.util.classhierarchy.ClassHierarchyHelper;
29+
import org.hibernate.validator.internal.util.classhierarchy.Filter;
3030

3131
/**
3232
* Provides functionality for dealing with validation provider types.
@@ -146,27 +146,45 @@ private static Set<Annotation> determineRequiredQualifiers(
146146
public Set<Type> determineValidatorFactoryCdiTypes() {
147147
return Collections.unmodifiableSet(
148148
CollectionHelper.<Type>newHashSet(
149-
ClassHierarchyHelper.getHierarchy( getValidatorFactoryBeanClass() )
150-
.stream()
151-
// We do not include Hibernate Validator internal types:
152-
.filter( klass -> !( isHibernateValidator && isHibernateValidatorInternalType( klass ) ) )
153-
.collect( Collectors.toSet() )
149+
ClassHierarchyHelper.getHierarchy(
150+
getValidatorFactoryBeanClass(),
151+
isHibernateValidator ? HibernateValidatorInternalTypeFilter.INSTANCE : AcceptAllFilter.INSTANCE
152+
)
154153
)
155154
);
156155
}
157156

158157
public Set<Type> determineValidatorCdiTypes() {
159158
return Collections.unmodifiableSet(
160159
CollectionHelper.<Type>newHashSet(
161-
ClassHierarchyHelper.getHierarchy( getValidatorBeanClass() )
162-
.stream()
163-
// We do not include Hibernate Validator internal types:
164-
.filter( klass -> !( isHibernateValidator && isHibernateValidatorInternalType( klass ) ) )
165-
.collect( Collectors.toSet() )
160+
ClassHierarchyHelper.getHierarchy(
161+
getValidatorBeanClass(),
162+
isHibernateValidator ? HibernateValidatorInternalTypeFilter.INSTANCE : AcceptAllFilter.INSTANCE
163+
)
166164
)
167165
);
168166
}
169167

168+
private static class HibernateValidatorInternalTypeFilter implements Filter {
169+
170+
public static final HibernateValidatorInternalTypeFilter INSTANCE = new HibernateValidatorInternalTypeFilter();
171+
172+
@Override
173+
public boolean accepts(Class<?> clazz) {
174+
return !isHibernateValidatorInternalType( clazz );
175+
}
176+
}
177+
178+
private static class AcceptAllFilter implements Filter {
179+
180+
public static final AcceptAllFilter INSTANCE = new AcceptAllFilter();
181+
182+
@Override
183+
public boolean accepts(Class<?> clazz) {
184+
return true;
185+
}
186+
}
187+
170188
@Override
171189
public String toString() {
172190
return "ValidationProviderHelper [isDefaultProvider="

0 commit comments

Comments
 (0)