Add getter for RequestMappingInfo.BuilderConfiguration

This improves support for programmatic registration of mappings to
use the same config as that of the RequestMappingHandlerMapping.

See gh-27723
This commit is contained in:
Andreas Grub
2021-11-24 07:47:21 +01:00
committed by Rossen Stoyanchev
parent 0d7c562693
commit ce0aed216b
2 changed files with 22 additions and 0 deletions

View File

@@ -246,6 +246,17 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi
return this.config.getFileExtensions();
}
/**
* Get the configuration to build {@link RequestMappingInfo}
* instances. This is useful for programmatic registration of
* additional mappings following the same configuration as {@link
* #createRequestMappingInfo(RequestMapping, RequestCondition)}.
*
* @return builder configuration to be supplied into {@link RequestMappingInfo.Builder#options}.
*/
public RequestMappingInfo.BuilderConfiguration getRequestMappingInfoBuilderConfiguration() {
return this.config;
}
/**
* {@inheritDoc}

View File

@@ -79,6 +79,17 @@ public class RequestMappingHandlerMappingTests {
return Stream.of(Arguments.of(mapping1, wac1), Arguments.of(mapping2, wac2));
}
@Test
void getRequestMappingInfoBuilderConfiguration() {
RequestMappingHandlerMapping handlerMapping = new RequestMappingHandlerMapping();
handlerMapping.setApplicationContext(new StaticWebApplicationContext());
RequestMappingInfo.BuilderConfiguration beforeAfterPropertiesSet = handlerMapping.getRequestMappingInfoBuilderConfiguration();
assertThat(beforeAfterPropertiesSet).isNotNull();
handlerMapping.afterPropertiesSet();
RequestMappingInfo.BuilderConfiguration afterPropertiesSet = handlerMapping.getRequestMappingInfoBuilderConfiguration();
assertThat(afterPropertiesSet).isNotNull().isNotSameAs(beforeAfterPropertiesSet);
}
@Test
@SuppressWarnings("deprecation")