mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-28 01:59:04 +00:00
Polishing contribution
Closes gh-35307
This commit is contained in:
+16
-15
@@ -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);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+3
-3
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
+8
-9
@@ -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) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user