Commit 31736466 authored by Dave Syer's avatar Dave Syer

Fix another test from gh-708

parent 26c5a3ed
...@@ -16,9 +16,13 @@ ...@@ -16,9 +16,13 @@
package org.springframework.boot.autoconfigure.web; package org.springframework.boot.autoconfigure.web;
import javax.servlet.MultipartConfigElement;
import javax.servlet.Servlet;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext; import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext;
import org.springframework.boot.context.embedded.MultipartConfigFactory; import org.springframework.boot.context.embedded.MultipartConfigFactory;
...@@ -28,58 +32,55 @@ import org.springframework.context.annotation.Configuration; ...@@ -28,58 +32,55 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import javax.servlet.MultipartConfigElement;
import javax.servlet.Servlet;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for multi-part uploads. Adds a * {@link EnableAutoConfiguration Auto-configuration} for multi-part uploads. Adds a
* {@link StandardServletMultipartResolver} if none is present, and adds a * {@link StandardServletMultipartResolver} if none is present, and adds a
* {@link javax.servlet.MultipartConfigElement multipartConfigElement} if none is otherwise defined. * {@link javax.servlet.MultipartConfigElement multipartConfigElement} if none is
* The {@link EmbeddedWebApplicationContext} will associate the * otherwise defined. The {@link EmbeddedWebApplicationContext} will associate the
* {@link MultipartConfigElement} bean to any {@link Servlet} beans. * {@link MultipartConfigElement} bean to any {@link Servlet} beans.
* <p/> * <p/>
* The {@link javax.servlet.MultipartConfigElement} is a Servlet API that's used to configure how the container handles * The {@link javax.servlet.MultipartConfigElement} is a Servlet API that's used to
* file uploads. By default * configure how the container handles file uploads. By default
* *
* @author Greg Turnquist * @author Greg Turnquist
* @author Josh Long * @author Josh Long
*/ */
@Configuration @Configuration
@ConditionalOnClass({Servlet.class, StandardServletMultipartResolver.class}) @ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver.class })
@ConditionalOnExpression("${multipart.enabled:true}")
@EnableConfigurationProperties(MultipartProperties.class) @EnableConfigurationProperties(MultipartProperties.class)
public class MultipartAutoConfiguration { public class MultipartAutoConfiguration {
@Autowired @Autowired
private MultipartProperties multipartProperties = new MultipartProperties(); private MultipartProperties multipartProperties = new MultipartProperties();
@Bean
@ConditionalOnMissingBean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
if (StringUtils.hasText(this.multipartProperties.getFileSizeThreshold())) { @Bean
factory.setFileSizeThreshold(this.multipartProperties.getFileSizeThreshold()); @ConditionalOnMissingBean
} public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
if (StringUtils.hasText(this.multipartProperties.getLocation())) { if (StringUtils.hasText(this.multipartProperties.getFileSizeThreshold())) {
factory.setLocation(this.multipartProperties.getLocation()); factory.setFileSizeThreshold(this.multipartProperties.getFileSizeThreshold());
} }
if (StringUtils.hasText(this.multipartProperties.getMaxRequestSize())) { if (StringUtils.hasText(this.multipartProperties.getLocation())) {
factory.setMaxRequestSize(this.multipartProperties.getMaxRequestSize()); factory.setLocation(this.multipartProperties.getLocation());
} }
if (StringUtils.hasText(this.multipartProperties.getMaxFileSize())) { if (StringUtils.hasText(this.multipartProperties.getMaxRequestSize())) {
factory.setMaxFileSize(this.multipartProperties.getMaxFileSize()); factory.setMaxRequestSize(this.multipartProperties.getMaxRequestSize());
} }
return factory.createMultipartConfig(); if (StringUtils.hasText(this.multipartProperties.getMaxFileSize())) {
} factory.setMaxFileSize(this.multipartProperties.getMaxFileSize());
}
return factory.createMultipartConfig();
}
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public StandardServletMultipartResolver multipartResolver() { public StandardServletMultipartResolver multipartResolver() {
return new StandardServletMultipartResolver(); return new StandardServletMultipartResolver();
} }
} }
...@@ -37,9 +37,9 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext ...@@ -37,9 +37,9 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext
import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.Matchers.nullValue;
import static org.hamcrest.Matchers.sameInstance; import static org.hamcrest.Matchers.sameInstance;
...@@ -211,7 +211,7 @@ public class AutoConfigurationReportTests { ...@@ -211,7 +211,7 @@ public class AutoConfigurationReportTests {
ConditionAndOutcomes outcomes = report.getConditionAndOutcomesBySource().get( ConditionAndOutcomes outcomes = report.getConditionAndOutcomesBySource().get(
autoconfigKey); autoconfigKey);
assertThat(outcomes, not(nullValue())); assertThat(outcomes, not(nullValue()));
assertThat(getNumberOfOutcomes(outcomes), equalTo(1)); assertThat(getNumberOfOutcomes(outcomes), equalTo(2));
List<String> messages = new ArrayList<String>(); List<String> messages = new ArrayList<String>();
for (ConditionAndOutcome outcome : outcomes) { for (ConditionAndOutcome outcome : outcomes) {
...@@ -221,7 +221,7 @@ public class AutoConfigurationReportTests { ...@@ -221,7 +221,7 @@ public class AutoConfigurationReportTests {
Matcher<String> onClassMessage = containsString("@ConditionalOnClass " Matcher<String> onClassMessage = containsString("@ConditionalOnClass "
+ "classes found: javax.servlet.Servlet,org.springframework.web.multipart.support.StandardServletMultipartResolver"); + "classes found: javax.servlet.Servlet,org.springframework.web.multipart.support.StandardServletMultipartResolver");
assertThat(messages, contains(onClassMessage)); assertThat(messages, hasItem(onClassMessage));
context.close(); context.close();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment