Skip to content

Commit 781736a

Browse files
authored
Merge pull request #31649 from geoand/reflect-bi
Replace some uses of the deprecated ReflectiveClassBuildItem constructors
2 parents 885291b + 7cc3d18 commit 781736a

File tree

4 files changed

+38
-42
lines changed

4 files changed

+38
-42
lines changed

extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -120,18 +120,18 @@ void register(
120120
BuildProducer<ReflectiveMethodBuildItem> reflectiveMethod,
121121
BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
122122
reflectiveClass.produce(
123-
new ReflectiveClassBuildItem(true, false,
124-
"com.fasterxml.jackson.databind.ser.std.SqlDateSerializer",
123+
ReflectiveClassBuildItem.builder("com.fasterxml.jackson.databind.ser.std.SqlDateSerializer",
125124
"com.fasterxml.jackson.databind.ser.std.SqlTimeSerializer",
126125
"com.fasterxml.jackson.databind.deser.std.DateDeserializers$SqlDateDeserializer",
127126
"com.fasterxml.jackson.databind.deser.std.DateDeserializers$TimestampDeserializer",
128-
"com.fasterxml.jackson.annotation.SimpleObjectIdResolver"));
127+
"com.fasterxml.jackson.annotation.SimpleObjectIdResolver").methods(true).build());
129128

130129
if (curateOutcomeBuildItem.getApplicationModel().getDependencies().stream().anyMatch(
131130
x -> x.getGroupId().equals("com.fasterxml.jackson.module")
132131
&& x.getArtifactId().equals("jackson-module-jaxb-annotations"))) {
133132
reflectiveClass.produce(
134-
new ReflectiveClassBuildItem(true, false, "com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector"));
133+
ReflectiveClassBuildItem.builder("com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector")
134+
.methods(true).build());
135135
}
136136

137137
IndexView index = combinedIndexBuildItem.getIndex();
@@ -163,18 +163,18 @@ void register(
163163
AnnotationValue usingValue = deserializeInstance.value("using");
164164
if (usingValue != null) {
165165
// the Deserializers are constructed internally by Jackson using a no-args constructor
166-
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, usingValue.asClass().name().toString()));
166+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(usingValue.asClass().name().toString()).build());
167167
}
168168
AnnotationValue keyUsingValue = deserializeInstance.value("keyUsing");
169169
if (keyUsingValue != null) {
170170
// the Deserializers are constructed internally by Jackson using a no-args constructor
171-
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, keyUsingValue.asClass().name().toString()));
171+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(keyUsingValue.asClass().name().toString()).build());
172172
}
173173
AnnotationValue contentUsingValue = deserializeInstance.value("contentUsing");
174174
if (contentUsingValue != null) {
175175
// the Deserializers are constructed internally by Jackson using a no-args constructor
176176
reflectiveClass
177-
.produce(new ReflectiveClassBuildItem(false, false, contentUsingValue.asClass().name().toString()));
177+
.produce(ReflectiveClassBuildItem.builder(contentUsingValue.asClass().name().toString()).build());
178178
}
179179
}
180180

@@ -183,32 +183,31 @@ void register(
183183
AnnotationValue usingValue = serializeInstance.value("using");
184184
if (usingValue != null) {
185185
// the Serializers are constructed internally by Jackson using a no-args constructor
186-
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, usingValue.asClass().name().toString()));
186+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(usingValue.asClass().name().toString()).build());
187187
}
188188
AnnotationValue keyUsingValue = serializeInstance.value("keyUsing");
189189
if (keyUsingValue != null) {
190190
// the Deserializers are constructed internally by Jackson using a no-args constructor
191-
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, keyUsingValue.asClass().name().toString()));
191+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(keyUsingValue.asClass().name().toString()).build());
192192
}
193193
AnnotationValue contentUsingValue = serializeInstance.value("contentUsing");
194194
if (contentUsingValue != null) {
195195
// the Deserializers are constructed internally by Jackson using a no-args constructor
196196
reflectiveClass
197-
.produce(new ReflectiveClassBuildItem(false, false, contentUsingValue.asClass().name().toString()));
197+
.produce(ReflectiveClassBuildItem.builder(contentUsingValue.asClass().name().toString()).build());
198198
}
199199
AnnotationValue nullsUsingValue = serializeInstance.value("nullsUsing");
200200
if (nullsUsingValue != null) {
201201
// the Deserializers are constructed internally by Jackson using a no-args constructor
202202
reflectiveClass
203-
.produce(new ReflectiveClassBuildItem(false, false, nullsUsingValue.asClass().name().toString()));
203+
.produce(ReflectiveClassBuildItem.builder(nullsUsingValue.asClass().name().toString()).build());
204204
}
205205
}
206206

207207
for (AnnotationInstance creatorInstance : index.getAnnotations(JSON_AUTO_DETECT)) {
208208
if (creatorInstance.target().kind() == CLASS) {
209-
reflectiveClass
210-
.produce(
211-
new ReflectiveClassBuildItem(true, true, creatorInstance.target().asClass().name().toString()));
209+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(creatorInstance.target().asClass().name().toString())
210+
.methods(true).fields(true).build());
212211
}
213212
}
214213

@@ -221,7 +220,9 @@ void register(
221220
AnnotationValue value = resolverInstance.value("value");
222221
if (value != null) {
223222
// Add the type-id-resolver class
224-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, value.asClass().name().toString()));
223+
reflectiveClass
224+
.produce(ReflectiveClassBuildItem.builder(value.asClass().name().toString()).methods(true).fields(true)
225+
.build());
225226
if (resolverInstance.target().kind() == CLASS) {
226227
// Add the whole hierarchy of the annotated class
227228
addReflectiveHierarchyClass(resolverInstance.target().asClass().name(), reflectiveHierarchyClass);
@@ -240,7 +241,8 @@ void register(
240241
for (AnnotationInstance jsonNamingInstance : index.getAnnotations(JSON_NAMING)) {
241242
AnnotationValue strategyValue = jsonNamingInstance.value("value");
242243
if (strategyValue != null) {
243-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, strategyValue.asClass().name().toString()));
244+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(strategyValue.asClass().name().toString())
245+
.methods(true).fields(true).build());
244246
}
245247
}
246248

@@ -249,13 +251,16 @@ void register(
249251
AnnotationValue generatorValue = jsonIdentityInfoInstance.value("generator");
250252
AnnotationValue resolverValue = jsonIdentityInfoInstance.value("resolver");
251253
if (generatorValue != null) {
252-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, generatorValue.asClass().name().toString()));
254+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(generatorValue.asClass().name().toString())
255+
.methods(true).fields(true).build());
253256
}
254257
if (resolverValue != null) {
255-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, resolverValue.asClass().name().toString()));
258+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(resolverValue.asClass().name().toString())
259+
.methods(true).fields(true).build());
256260
} else {
257261
// Registering since SimpleObjectIdResolver is the default value of @JsonIdentityInfo.resolver
258-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, SimpleObjectIdResolver.class));
262+
reflectiveClass.produce(
263+
ReflectiveClassBuildItem.builder(SimpleObjectIdResolver.class).methods(true).fields(true).build());
259264
}
260265
}
261266

@@ -389,7 +394,7 @@ public void supportMixins(MixinsRecorder recorder,
389394
}
390395
ClassInfo mixinClassInfo = instance.target().asClass();
391396
String mixinClassName = mixinClassInfo.name().toString();
392-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, mixinClassName));
397+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(mixinClassName).methods(true).fields(true).build());
393398
try {
394399
Type[] targetTypes = instance.value().asClassArray();
395400
if ((targetTypes == null) || targetTypes.length == 0) {
@@ -398,7 +403,8 @@ public void supportMixins(MixinsRecorder recorder,
398403
Class<?> mixinClass = Thread.currentThread().getContextClassLoader().loadClass(mixinClassName);
399404
for (Type targetType : targetTypes) {
400405
String targetClassName = targetType.name().toString();
401-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, targetClassName));
406+
reflectiveClass
407+
.produce(ReflectiveClassBuildItem.builder(targetClassName).methods(true).fields(true).build());
402408
mixinsMap.put(Thread.currentThread().getContextClassLoader().loadClass(targetClassName),
403409
mixinClass);
404410
}

extensions/kubernetes-client/deployment/src/main/java/io/quarkus/kubernetes/client/deployment/KubernetesClientProcessor.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -190,36 +190,27 @@ public void process(ApplicationIndexBuildItem applicationIndex, CombinedIndexBui
190190
.map(c -> c.name().toString())
191191
.filter(s -> s.startsWith("io.fabric8.kubernetes"))
192192
.toArray(String[]::new);
193-
reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, deserializerClasses));
193+
reflectiveClasses.produce(ReflectiveClassBuildItem.builder(deserializerClasses).methods(true).build());
194194

195195
final String[] serializerClasses = combinedIndexBuildItem.getIndex()
196196
.getAllKnownSubclasses(DotName.createSimple("com.fasterxml.jackson.databind.JsonSerializer"))
197197
.stream()
198198
.map(c -> c.name().toString())
199199
.filter(s -> s.startsWith("io.fabric8.kubernetes"))
200200
.toArray(String[]::new);
201-
reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, serializerClasses));
201+
reflectiveClasses.produce(ReflectiveClassBuildItem.builder(serializerClasses).methods(true).build());
202202

203-
reflectiveClasses
204-
.produce(new ReflectiveClassBuildItem(true, true, KubernetesClientImpl.class.getName()));
205-
reflectiveClasses
206-
.produce(new ReflectiveClassBuildItem(true, true, DefaultKubernetesClient.class.getName()));
207-
reflectiveClasses
208-
.produce(new ReflectiveClassBuildItem(true, false, AnyType.class.getName()));
209-
reflectiveClasses
210-
.produce(new ReflectiveClassBuildItem(true, false, IntOrString.class.getName()));
211-
212-
reflectiveClasses
213-
.produce(new ReflectiveClassBuildItem(true, false, KubernetesDeserializer.class.getName()));
214-
reflectiveClasses
215-
.produce(new ReflectiveClassBuildItem(true, true, VersionInfo.class.getName()));
203+
reflectiveClasses.produce(
204+
ReflectiveClassBuildItem.builder(KubernetesClientImpl.class, DefaultKubernetesClient.class, VersionInfo.class)
205+
.methods(true).fields(true).build());
206+
reflectiveClasses.produce(ReflectiveClassBuildItem
207+
.builder(AnyType.class, IntOrString.class, KubernetesDeserializer.class).methods(true).build());
216208

217209
// exec credentials support - we need to use Strings as the classes are private
218210
reflectiveClasses
219-
.produce(new ReflectiveClassBuildItem(true, true,
220-
"io.fabric8.kubernetes.client.Config$ExecCredential",
211+
.produce(ReflectiveClassBuildItem.builder("io.fabric8.kubernetes.client.Config$ExecCredential",
221212
"io.fabric8.kubernetes.client.Config$ExecCredentialSpec",
222-
"io.fabric8.kubernetes.client.Config$ExecCredentialStatus"));
213+
"io.fabric8.kubernetes.client.Config$ExecCredentialStatus").methods(true).fields(true).build());
223214

224215
if (log.isDebugEnabled()) {
225216
final String watchedClassNames = watchedClasses

extensions/spring-cloud-config-client/deployment/src/main/java/io/quarkus/spring/cloud/config/client/SpringCloudConfigProcessor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ public void enableSsl(BuildProducer<ExtensionSslNativeSupportBuildItem> extensio
2424

2525
@BuildStep
2626
public void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
27-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, false, Response.class));
28-
reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, false, Response.PropertySource.class));
27+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(Response.class, Response.PropertySource.class).build());
2928
}
3029

3130
@BuildStep

integration-tests/main/src/main/resources/application.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,4 @@ quarkus.class-loading.removed-resources."io.quarkus\:quarkus-integration-test-ma
6161
quarkus.test.enable-callbacks-for-integration-tests=true
6262

6363
# @RolesAllowed value is configuration expression
64-
tester-config-exp=tester
64+
tester-config-exp=tester

0 commit comments

Comments
 (0)