diff --git a/spring-web/src/main/java/org/springframework/web/service/registry/AbstractHttpServiceRegistrar.java b/spring-web/src/main/java/org/springframework/web/service/registry/AbstractHttpServiceRegistrar.java index 1ee41b4f5d3..ea8af343994 100644 --- a/spring-web/src/main/java/org/springframework/web/service/registry/AbstractHttpServiceRegistrar.java +++ b/spring-web/src/main/java/org/springframework/web/service/registry/AbstractHttpServiceRegistrar.java @@ -147,22 +147,23 @@ public abstract class AbstractHttpServiceRegistrar implements registerHttpServices(new DefaultGroupRegistry(), metadata); - if (this.groupsMetadata.hasRegistrations()) { - RootBeanDefinition proxyRegistryBeanDef = createOrGetRegistry(beanRegistry); - - mergeGroups(proxyRegistryBeanDef); - - this.groupsMetadata.forEachRegistration((groupName, types) -> types.forEach(type -> { - RootBeanDefinition proxyBeanDef = new RootBeanDefinition(); - proxyBeanDef.setBeanClassName(type); - proxyBeanDef.setAttribute(HTTP_SERVICE_GROUP_NAME_ATTRIBUTE, groupName); - proxyBeanDef.setInstanceSupplier(() -> getProxyInstance(groupName, type)); - String beanName = (groupName + "#" + type); - if (!beanRegistry.containsBeanDefinition(beanName)) { - beanRegistry.registerBeanDefinition(beanName, proxyBeanDef); - } - })); + if (this.groupsMetadata.isEmpty()) { + return; } + + RootBeanDefinition proxyRegistryBeanDef = createOrGetRegistry(beanRegistry); + mergeGroups(proxyRegistryBeanDef); + + this.groupsMetadata.forEachRegistration((groupName, types) -> types.forEach(type -> { + RootBeanDefinition proxyBeanDef = new RootBeanDefinition(); + proxyBeanDef.setBeanClassName(type); + proxyBeanDef.setAttribute(HTTP_SERVICE_GROUP_NAME_ATTRIBUTE, groupName); + proxyBeanDef.setInstanceSupplier(() -> getProxyInstance(groupName, type)); + String beanName = (groupName + "#" + type); + if (!beanRegistry.containsBeanDefinition(beanName)) { + beanRegistry.registerBeanDefinition(beanName, proxyBeanDef); + } + })); } /** diff --git a/spring-web/src/main/java/org/springframework/web/service/registry/GroupsMetadata.java b/spring-web/src/main/java/org/springframework/web/service/registry/GroupsMetadata.java index 4aa5ec1c8bb..0c991d4fad5 100644 --- a/spring-web/src/main/java/org/springframework/web/service/registry/GroupsMetadata.java +++ b/spring-web/src/main/java/org/springframework/web/service/registry/GroupsMetadata.java @@ -98,10 +98,10 @@ final class GroupsMetadata { } /** - * Return if there are any {@link Registration registrations}. + * Return {@code true} if there are no {@link Registration registrations}. */ - boolean hasRegistrations() { - return !this.groupMap.isEmpty(); + boolean isEmpty() { + return this.groupMap.isEmpty(); } diff --git a/spring-web/src/test/java/org/springframework/web/service/registry/ClientHttpServiceRegistrarTests.java b/spring-web/src/test/java/org/springframework/web/service/registry/ClientHttpServiceRegistrarTests.java index 57b507fa700..3373945b12f 100644 --- a/spring-web/src/test/java/org/springframework/web/service/registry/ClientHttpServiceRegistrarTests.java +++ b/spring-web/src/test/java/org/springframework/web/service/registry/ClientHttpServiceRegistrarTests.java @@ -68,8 +68,8 @@ public class ClientHttpServiceRegistrarTests { @Test void registerWhenNoClientsDoesNotCreateBeans() { - try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(NothingFoundConfiguration.class)) { - assertThat(context.getBeanNamesForType(HttpServiceProxyRegistry.class)).isEmpty(); + try (AnnotationConfigApplicationContext cxt = new AnnotationConfigApplicationContext(NoOpImportConfig.class)) { + assertThat(cxt.getBeanNamesForType(HttpServiceProxyRegistry.class)).isEmpty(); } } @@ -85,18 +85,17 @@ public class ClientHttpServiceRegistrarTests { } } - @Configuration(proxyBeanMethods = false) - @Import(NothingFoundRegistrar.class) - static class NothingFoundConfiguration { + @Configuration(proxyBeanMethods = false) + @Import(NoOpRegistrar.class) + static class NoOpImportConfig { } - static class NothingFoundRegistrar extends AbstractClientHttpServiceRegistrar { + + static class NoOpRegistrar extends AbstractClientHttpServiceRegistrar { @Override - protected void registerHttpServices(GroupRegistry registry, - AnnotationMetadata importingClassMetadata) { - findAndRegisterHttpServiceClients(registry, List.of("com.example.missing.package")); + protected void registerHttpServices(GroupRegistry registry, AnnotationMetadata metadata) { } }