Browse Source

Polishing contribution

Closes gh-35307
pull/35329/head
rstoyanchev 5 months ago
parent
commit
553f289ddb
  1. 31
      spring-web/src/main/java/org/springframework/web/service/registry/AbstractHttpServiceRegistrar.java
  2. 6
      spring-web/src/main/java/org/springframework/web/service/registry/GroupsMetadata.java
  3. 17
      spring-web/src/test/java/org/springframework/web/service/registry/ClientHttpServiceRegistrarTests.java

31
spring-web/src/main/java/org/springframework/web/service/registry/AbstractHttpServiceRegistrar.java

@ -147,22 +147,23 @@ public abstract class AbstractHttpServiceRegistrar implements @@ -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);
}
}));
}
/**

6
spring-web/src/main/java/org/springframework/web/service/registry/GroupsMetadata.java

@ -98,10 +98,10 @@ final class GroupsMetadata { @@ -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();
}

17
spring-web/src/test/java/org/springframework/web/service/registry/ClientHttpServiceRegistrarTests.java

@ -68,8 +68,8 @@ public class ClientHttpServiceRegistrarTests { @@ -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 { @@ -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) {
}
}

Loading…
Cancel
Save