@@ -17,6 +17,7 @@ public final class ReflectiveClassBuildItem extends MultiBuildItem {
17
17
private final List <String > className ;
18
18
private final boolean methods ;
19
19
private final boolean queryMethods ;
20
+ private final boolean queryPublicMethods ;
20
21
private final boolean fields ;
21
22
private final boolean classes ;
22
23
private final boolean constructors ;
@@ -45,7 +46,7 @@ public static Builder builder(String... classNames) {
45
46
private ReflectiveClassBuildItem (boolean constructors , boolean queryConstructors , boolean methods , boolean queryMethods ,
46
47
boolean fields , boolean getClasses , boolean weak , boolean serialization ,
47
48
boolean unsafeAllocated , Class <?>... classes ) {
48
- this (constructors , queryConstructors , methods , queryMethods , fields , getClasses , weak , serialization ,
49
+ this (constructors , queryConstructors , methods , queryMethods , false , fields , getClasses , weak , serialization ,
49
50
unsafeAllocated , stream (classes ).map (Class ::getName ).toArray (String []::new ));
50
51
}
51
52
@@ -117,12 +118,12 @@ public static ReflectiveClassBuildItem serializationClass(String... classNames)
117
118
ReflectiveClassBuildItem (boolean constructors , boolean queryConstructors , boolean methods , boolean queryMethods ,
118
119
boolean fields , boolean weak , boolean serialization ,
119
120
boolean unsafeAllocated , String ... className ) {
120
- this (constructors , queryConstructors , methods , queryMethods , fields , false , weak , serialization , unsafeAllocated ,
121
+ this (constructors , queryConstructors , methods , queryMethods , false , fields , false , weak , serialization , unsafeAllocated ,
121
122
className );
122
123
}
123
124
124
125
ReflectiveClassBuildItem (boolean constructors , boolean queryConstructors , boolean methods , boolean queryMethods ,
125
- boolean fields , boolean classes , boolean weak , boolean serialization ,
126
+ boolean queryPublicMethods , boolean fields , boolean classes , boolean weak , boolean serialization ,
126
127
boolean unsafeAllocated , String ... className ) {
127
128
for (String i : className ) {
128
129
if (i == null ) {
@@ -139,6 +140,7 @@ public static ReflectiveClassBuildItem serializationClass(String... classNames)
139
140
} else {
140
141
this .queryMethods = queryMethods ;
141
142
}
143
+ this .queryPublicMethods = queryPublicMethods ;
142
144
this .fields = fields ;
143
145
this .classes = classes ;
144
146
this .constructors = constructors ;
@@ -167,6 +169,10 @@ public boolean isQueryMethods() {
167
169
return queryMethods ;
168
170
}
169
171
172
+ public boolean isQueryPublicMethods () {
173
+ return queryPublicMethods ;
174
+ }
175
+
170
176
public boolean isFields () {
171
177
return fields ;
172
178
}
@@ -210,6 +216,7 @@ public static class Builder {
210
216
private boolean queryConstructors ;
211
217
private boolean methods ;
212
218
private boolean queryMethods ;
219
+ private boolean queryPublicMethods ;
213
220
private boolean fields ;
214
221
private boolean classes ;
215
222
private boolean weak ;
@@ -277,6 +284,20 @@ public Builder queryMethods() {
277
284
return queryMethods (true );
278
285
}
279
286
287
+ /**
288
+ * Configures whether declared methods should be registered for reflection, for query purposes only,
289
+ * i.e. {@link Class#getMethods()}. Setting this enables getting all declared methods for the class but
290
+ * does not allow invoking them reflectively.
291
+ */
292
+ public Builder queryPublicMethods (boolean queryPublicMethods ) {
293
+ this .queryPublicMethods = queryPublicMethods ;
294
+ return this ;
295
+ }
296
+
297
+ public Builder queryPublicMethods () {
298
+ return queryPublicMethods (true );
299
+ }
300
+
280
301
/**
281
302
* Configures whether fields should be registered for reflection.
282
303
* Setting this enables getting all declared fields for the class as well as accessing them reflectively.
@@ -346,8 +367,8 @@ public Builder unsafeAllocated() {
346
367
}
347
368
348
369
public ReflectiveClassBuildItem build () {
349
- return new ReflectiveClassBuildItem (constructors , queryConstructors , methods , queryMethods , fields , classes , weak ,
350
- serialization , unsafeAllocated , className );
370
+ return new ReflectiveClassBuildItem (constructors , queryConstructors , methods , queryMethods , queryPublicMethods ,
371
+ fields , classes , weak , serialization , unsafeAllocated , className );
351
372
}
352
373
}
353
374
}
0 commit comments