Skip to content

Commit 04deb60

Browse files
authored
Merge pull request #45716 from radcortez/fix-45662
Avoid recursive interceptor lookups when the REST Client full name matches the simple name
2 parents 47a1a8c + de0e007 commit 04deb60

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

extensions/resteasy-classic/rest-client-config/runtime/src/main/java/io/quarkus/restclient/config/AbstractRestClientConfigBuilder.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ public SmallRyeConfigBuilder configBuilder(final SmallRyeConfigBuilder builder)
9494
// FQN -> Quoted Config Key -> Quoted Simple Name -> Simple Name
9595
quarkusFallbacks.put(quotedFullName, quotedConfigKey);
9696
quarkusFallbacks.put(quotedConfigKey, restClient.getSimpleName());
97-
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
97+
if (!quotedSimpleName.equals(quotedFullName)) {
98+
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
99+
}
98100
fullNameRelocates.add(quotedConfigKey);
99101
fullNameRelocates.add(restClient.getSimpleName());
100102
fullNameRelocates.add(quotedSimpleName);
@@ -103,7 +105,9 @@ public SmallRyeConfigBuilder configBuilder(final SmallRyeConfigBuilder builder)
103105
quarkusFallbacks.put(quotedFullName, configKey);
104106
quarkusFallbacks.put(configKey, quotedConfigKey);
105107
quarkusFallbacks.put(quotedConfigKey, restClient.getSimpleName());
106-
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
108+
if (!quotedSimpleName.equals(quotedFullName)) {
109+
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
110+
}
107111
fullNameRelocates.add(configKey);
108112
fullNameRelocates.add(quotedConfigKey);
109113
fullNameRelocates.add(restClient.getSimpleName());
@@ -112,14 +116,18 @@ public SmallRyeConfigBuilder configBuilder(final SmallRyeConfigBuilder builder)
112116
} else {
113117
// FQN -> Quoted Simple Name -> Simple Name
114118
quarkusFallbacks.put(quotedFullName, restClient.getSimpleName());
115-
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
119+
if (!quotedSimpleName.equals(quotedFullName)) {
120+
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
121+
}
116122
fullNameRelocates.add(restClient.getSimpleName());
117123
fullNameRelocates.add(quotedSimpleName);
118124
}
119125
} else {
120126
// FQN -> Quoted Simple Name -> Simple Name
121127
quarkusFallbacks.put(quotedFullName, restClient.getSimpleName());
122-
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
128+
if (!quotedSimpleName.equals(quotedFullName)) {
129+
quarkusFallbacks.put(restClient.getSimpleName(), quotedSimpleName);
130+
}
123131
fullNameRelocates.add(restClient.getSimpleName());
124132
fullNameRelocates.add(quotedSimpleName);
125133
}

extensions/resteasy-classic/rest-client-config/runtime/src/test/java/io/quarkus/restclient/config/RestClientConfigTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,29 @@ void buildTimeConfig() {
324324
assertFalse(buildTimeConfig.clients().get(ConfigKeyRestClient.class.getName()).removesTrailingSlash());
325325
}
326326

327+
@Test
328+
void defaultPackage() {
329+
RegisteredRestClient registeredRestClient = new RegisteredRestClient("FullNameRestClient", "FullNameRestClient", null);
330+
// application.properties in test/resources
331+
SmallRyeConfig config = ConfigUtils.emptyConfigBuilder()
332+
.withMapping(RestClientsConfig.class)
333+
.withCustomizers(new SmallRyeConfigBuilderCustomizer() {
334+
@Override
335+
public void configBuilder(final SmallRyeConfigBuilder builder) {
336+
new AbstractRestClientConfigBuilder() {
337+
@Override
338+
public List<RegisteredRestClient> getRestClients() {
339+
return List.of(registeredRestClient);
340+
}
341+
}.configBuilder(builder);
342+
}
343+
})
344+
.build();
345+
346+
RestClientsConfig restClientsConfig = config.getConfigMapping(RestClientsConfig.class);
347+
assertEquals(1, restClientsConfig.clients().size());
348+
}
349+
327350
private void verifyConfig(RestClientConfig config) {
328351
assertTrue(config.url().isPresent());
329352
assertThat(config.url().get()).isEqualTo("http://localhost:8080");

0 commit comments

Comments
 (0)