Replace reflection call in HttpMessageConverters
Closes gh-23485
This commit is contained in:
parent
c4e224ffac
commit
294af45bb3
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -16,7 +16,6 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.http;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
@ -24,13 +23,11 @@ import java.util.Collections;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.http.converter.FormHttpMessageConverter;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
|
||||
import org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter;
|
||||
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||
|
||||
|
@ -140,19 +137,12 @@ public class HttpMessageConverters implements Iterable<HttpMessageConverter<?>>
|
|||
|
||||
private void configurePartConverters(AllEncompassingFormHttpMessageConverter formConverter,
|
||||
Collection<HttpMessageConverter<?>> converters) {
|
||||
List<HttpMessageConverter<?>> partConverters = extractPartConverters(formConverter);
|
||||
List<HttpMessageConverter<?>> partConverters = formConverter.getPartConverters();
|
||||
List<HttpMessageConverter<?>> combinedConverters = getCombinedConverters(converters, partConverters);
|
||||
combinedConverters = postProcessPartConverters(combinedConverters);
|
||||
formConverter.setPartConverters(combinedConverters);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private List<HttpMessageConverter<?>> extractPartConverters(FormHttpMessageConverter formConverter) {
|
||||
Field field = ReflectionUtils.findField(FormHttpMessageConverter.class, "partConverters");
|
||||
ReflectionUtils.makeAccessible(field);
|
||||
return (List<HttpMessageConverter<?>>) ReflectionUtils.getField(field, formConverter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method that can be used to post-process the {@link HttpMessageConverter} list
|
||||
* before it is used.
|
||||
|
|
Loading…
Reference in New Issue