DATACMNS-1722 - More defensive lookup of XmlBeamHttpMessageConverter.

We now avoid a type reference to XmlBeamHttpMessageConverter in a field within SpringDataWebConfiguration to avoid a type reference to a potentially unresolvable type. This seems to have caused issues on certain JDK 14 builds [0].

[0] https://github.com/spring-projects/spring-framework/issues/25050
This commit is contained in:
Oliver Drotbohm
2020-05-12 09:01:14 +02:00
parent 152cee7956
commit 0d4b764c2c

View File

@@ -65,7 +65,6 @@ public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLo
private @Autowired Optional<PageableHandlerMethodArgumentResolverCustomizer> pageableResolverCustomizer;
private @Autowired Optional<SortHandlerMethodArgumentResolverCustomizer> sortResolverCustomizer;
private @Autowired Optional<XmlBeamHttpMessageConverter> xmlBeamHttpMessageConverter;
public SpringDataWebConfiguration(ApplicationContext context,
@Qualifier("mvcConversionService") ObjectFactory<ConversionService> conversionService) {
@@ -168,7 +167,9 @@ public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLo
}
if (ClassUtils.isPresent("org.xmlbeam.XBProjector", context.getClassLoader())) {
converters.add(0, xmlBeamHttpMessageConverter.orElseGet(() -> new XmlBeamHttpMessageConverter()));
converters.add(0, context.getBeanProvider(XmlBeamHttpMessageConverter.class) //
.getIfAvailable(() -> new XmlBeamHttpMessageConverter()));
}
}