@@ -51,7 +51,8 @@ public class TypeCollector {
51
51
private static final Log logger = LogFactory .getLog (TypeCollector .class );
52
52
53
53
static final Set <String > EXCLUDED_DOMAINS = new HashSet <>(Arrays .asList ("java" , "sun." , "jdk." , "reactor." ,
54
- "kotlinx." , "kotlin." , "org.springframework.core." , "org.springframework.boot." ));
54
+ "kotlinx." , "kotlin." , "org.springframework.core." , "org.springframework.data.mapping." ,
55
+ "org.springframework.data.repository." , "org.springframework.boot." , "org.springframework.core." ));
55
56
56
57
private final Predicate <Class <?>> excludedDomainsFilter = type -> {
57
58
String packageName = type .getPackageName ();
@@ -60,34 +61,9 @@ public class TypeCollector {
60
61
61
62
private Predicate <Class <?>> typeFilter = excludedDomainsFilter ;
62
63
63
- private final Predicate <Method > methodFilter = method -> {
64
+ private final Predicate <Method > methodFilter = createMethodFilter ();
64
65
65
- // TODO: Eagerly construct predicate objects to avoid object allocations during test(…)
66
- Predicate <Method > excludedDomainsPredicate = methodToTest -> excludedDomainsFilter
67
- .test (methodToTest .getDeclaringClass ());
68
-
69
- Predicate <Method > excludedMethodsPredicate = Predicates .IS_BRIDGE_METHOD //
70
- .or (Predicates .IS_OBJECT_MEMBER ) //
71
- .or (Predicates .IS_HIBERNATE_MEMBER ) //
72
- .or (Predicates .IS_ENUM_MEMBER ) //
73
- .or (Predicates .IS_NATIVE ) //
74
- .or (Predicates .IS_PRIVATE ) //
75
- .or (Predicates .IS_PROTECTED ) //
76
- .or (Predicates .IS_SYNTHETIC ) //
77
- .or (excludedDomainsPredicate .negate ()); //
78
-
79
- return !excludedMethodsPredicate .test (method );
80
- };
81
-
82
- private Predicate <Field > fieldFilter = field -> {
83
-
84
- // TODO: Eagerly construct predicate objects to avoid object allocations during test(…)
85
- Predicate <Member > excludedFieldPredicate = Predicates .IS_HIBERNATE_MEMBER //
86
- .or (Predicates .IS_SYNTHETIC ) //
87
- .or (Predicates .IS_JAVA );
88
-
89
- return !excludedFieldPredicate .test (field );
90
- };
66
+ private Predicate <Field > fieldFilter = createFieldFilter ();
91
67
92
68
public TypeCollector filterFields (Predicate <Field > filter ) {
93
69
this .fieldFilter = filter .and (filter );
@@ -198,6 +174,35 @@ Set<Type> visitFieldsOfType(ResolvableType type) {
198
174
return discoveredTypes ;
199
175
}
200
176
177
+ private Predicate <Method > createMethodFilter () {
178
+
179
+ Predicate <Method > excludedDomainsPredicate = methodToTest -> excludedDomainsFilter
180
+ .test (methodToTest .getDeclaringClass ());
181
+
182
+ Predicate <Method > excludedMethodsPredicate = Predicates .IS_BRIDGE_METHOD //
183
+ .or (Predicates .IS_STATIC ) //
184
+ .or (Predicates .IS_SYNTHETIC ) //
185
+ .or (Predicates .IS_NATIVE ) //
186
+ .or (Predicates .IS_PRIVATE ) //
187
+ .or (Predicates .IS_PROTECTED ) //
188
+ .or (Predicates .IS_OBJECT_MEMBER ) //
189
+ .or (Predicates .IS_HIBERNATE_MEMBER ) //
190
+ .or (Predicates .IS_ENUM_MEMBER ) //
191
+ .or (excludedDomainsPredicate .negate ()); //
192
+
193
+ return excludedMethodsPredicate .negate ();
194
+ }
195
+
196
+ @ SuppressWarnings ("rawtypes" )
197
+ private Predicate <Field > createFieldFilter () {
198
+
199
+ Predicate <Member > excludedFieldPredicate = Predicates .IS_HIBERNATE_MEMBER //
200
+ .or (Predicates .IS_SYNTHETIC ) //
201
+ .or (Predicates .IS_JAVA );
202
+
203
+ return (Predicate ) excludedFieldPredicate .negate ();
204
+ }
205
+
201
206
public static class ReachableTypes {
202
207
203
208
private final Iterable <Class <?>> roots ;
0 commit comments