Polishing
This commit is contained in:
		
							parent
							
								
									799589ec1c
								
							
						
					
					
						commit
						1332482c40
					
				|  | @ -1,5 +1,5 @@ | |||
| /* | ||||
|  * Copyright 2002-2012 the original author or authors. | ||||
|  * Copyright 2002-2017 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. | ||||
|  | @ -42,7 +42,7 @@ public class Problem { | |||
| 
 | ||||
| 	/** | ||||
| 	 * Create a new instance of the {@link Problem} class. | ||||
| 	 * @param message	a message detailing the problem | ||||
| 	 * @param message a message detailing the problem | ||||
| 	 * @param location the location within a bean configuration source that triggered the error | ||||
| 	 */ | ||||
| 	public Problem(String message, Location location) { | ||||
|  | @ -51,7 +51,7 @@ public class Problem { | |||
| 
 | ||||
| 	/** | ||||
| 	 * Create a new instance of the {@link Problem} class. | ||||
| 	 * @param message	a message detailing the problem | ||||
| 	 * @param message a message detailing the problem | ||||
| 	 * @param parseState the {@link ParseState} at the time of the error | ||||
| 	 * @param location the location within a bean configuration source that triggered the error | ||||
| 	 */ | ||||
|  | @ -61,8 +61,8 @@ public class Problem { | |||
| 
 | ||||
| 	/** | ||||
| 	 * Create a new instance of the {@link Problem} class. | ||||
| 	 * @param message    a message detailing the problem | ||||
| 	 * @param rootCause the underlying expection that caused the error (may be {@code null}) | ||||
| 	 * @param message a message detailing the problem | ||||
| 	 * @param rootCause the underlying exception that caused the error (may be {@code null}) | ||||
| 	 * @param parseState the {@link ParseState} at the time of the error | ||||
| 	 * @param location the location within a bean configuration source that triggered the error | ||||
| 	 */ | ||||
|  | @ -107,7 +107,7 @@ public class Problem { | |||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the underlying expection that caused the error (may be {@code null}). | ||||
| 	 * Get the underlying exception that caused the error (may be {@code null}). | ||||
| 	 */ | ||||
| 	public Throwable getRootCause() { | ||||
| 		return this.rootCause; | ||||
|  |  | |||
|  | @ -1295,8 +1295,8 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp | |||
| 					mbd.setScope(containingBd.getScope()); | ||||
| 				} | ||||
| 
 | ||||
| 				// Only cache the merged bean definition if we're already about to create an | ||||
| 				// instance of the bean, or at least have already created an instance before. | ||||
| 				// Cache the merged bean definition for the time being | ||||
| 				// (it might still get re-merged later on in order to pick up metadata changes) | ||||
| 				if (containingBd == null && isCacheBeanMetadata()) { | ||||
| 					this.mergedBeanDefinitions.put(beanName, mbd); | ||||
| 				} | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| /* | ||||
|  * Copyright 2002-2014 the original author or authors. | ||||
|  * Copyright 2002-2017 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. | ||||
|  | @ -81,7 +81,9 @@ public class ResourceEditor extends PropertyEditorSupport { | |||
| 	 * @param ignoreUnresolvablePlaceholders whether to ignore unresolvable placeholders | ||||
| 	 * if no corresponding property could be found in the given {@code propertyResolver} | ||||
| 	 */ | ||||
| 	public ResourceEditor(ResourceLoader resourceLoader, PropertyResolver propertyResolver, boolean ignoreUnresolvablePlaceholders) { | ||||
| 	public ResourceEditor(ResourceLoader resourceLoader, PropertyResolver propertyResolver, | ||||
| 			boolean ignoreUnresolvablePlaceholders) { | ||||
| 
 | ||||
| 		Assert.notNull(resourceLoader, "ResourceLoader must not be null"); | ||||
| 		this.resourceLoader = resourceLoader; | ||||
| 		this.propertyResolver = propertyResolver; | ||||
|  |  | |||
|  | @ -54,6 +54,7 @@ import static org.springframework.core.annotation.AnnotationUtils.*; | |||
|  * @author Sam Brannen | ||||
|  * @author Chris Beams | ||||
|  * @author Phillip Webb | ||||
|  * @author Oleg Zhurakousky | ||||
|  */ | ||||
| public class AnnotationUtilsTests { | ||||
| 
 | ||||
|  | @ -90,7 +91,7 @@ public class AnnotationUtilsTests { | |||
| 		assertNotNull(findAnnotation(m, Order.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findMethodAnnotationWithAnnotationOnMethodInInterface() throws Exception { | ||||
| 		Method m = Leaf.class.getMethod("fromInterfaceImplementedByRoot"); | ||||
|  | @ -102,7 +103,7 @@ public class AnnotationUtilsTests { | |||
| 		assertNotNull(findAnnotation(m, Order.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findMethodAnnotationWithMetaAnnotationOnLeaf() throws Exception { | ||||
| 		Method m = Leaf.class.getMethod("metaAnnotatedOnLeaf"); | ||||
|  | @ -111,7 +112,7 @@ public class AnnotationUtilsTests { | |||
| 		assertNotNull(findAnnotation(m, Order.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findMethodAnnotationWithMetaMetaAnnotationOnLeaf() throws Exception { | ||||
| 		Method m = Leaf.class.getMethod("metaMetaAnnotatedOnLeaf"); | ||||
|  | @ -128,7 +129,7 @@ public class AnnotationUtilsTests { | |||
| 		assertNotNull(findAnnotation(m, Order.class)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findMethodAnnotationWithMetaAnnotationOnRoot() throws Exception { | ||||
| 		Method m = Leaf.class.getMethod("metaAnnotatedOnRoot"); | ||||
|  | @ -258,42 +259,42 @@ public class AnnotationUtilsTests { | |||
| 		assertNull("Should not find @Component on MetaCycleAnnotatedClass", component); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findClassAnnotationOnInheritedAnnotationInterface() { | ||||
| 		Transactional tx = findAnnotation(InheritedAnnotationInterface.class, Transactional.class); | ||||
| 		assertNotNull("Should find @Transactional on InheritedAnnotationInterface", tx); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findClassAnnotationOnSubInheritedAnnotationInterface() { | ||||
| 		Transactional tx = findAnnotation(SubInheritedAnnotationInterface.class, Transactional.class); | ||||
| 		assertNotNull("Should find @Transactional on SubInheritedAnnotationInterface", tx); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findClassAnnotationOnSubSubInheritedAnnotationInterface() { | ||||
| 		Transactional tx = findAnnotation(SubSubInheritedAnnotationInterface.class, Transactional.class); | ||||
| 		assertNotNull("Should find @Transactional on SubSubInheritedAnnotationInterface", tx); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findClassAnnotationOnNonInheritedAnnotationInterface() { | ||||
| 		Order order = findAnnotation(NonInheritedAnnotationInterface.class, Order.class); | ||||
| 		assertNotNull("Should find @Order on NonInheritedAnnotationInterface", order); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findClassAnnotationOnSubNonInheritedAnnotationInterface() { | ||||
| 		Order order = findAnnotation(SubNonInheritedAnnotationInterface.class, Order.class); | ||||
| 		assertNotNull("Should find @Order on SubNonInheritedAnnotationInterface", order); | ||||
| 	} | ||||
| 
 | ||||
| 	/** @since 4.2 */ | ||||
| 	// @since 4.2 | ||||
| 	@Test | ||||
| 	public void findClassAnnotationOnSubSubNonInheritedAnnotationInterface() { | ||||
| 		Order order = findAnnotation(SubSubNonInheritedAnnotationInterface.class, Order.class); | ||||
|  | @ -1240,6 +1241,11 @@ public class AnnotationUtilsTests { | |||
| 		assertEquals("location: ", "", contextConfig.location()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test(expected = AnnotationConfigurationException.class) | ||||
| 	public void synthesizeAnnotationWithAttributeAliasesDifferentValues() throws Exception { | ||||
| 		getValue(synthesizeAnnotation(ContextConfigMismatch.class.getAnnotation(ContextConfig.class))); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void synthesizeAnnotationFromMapWithMinimalAttributesWithAttributeAliases() throws Exception { | ||||
| 		Map<String, Object> map = Collections.singletonMap("location", "test.xml"); | ||||
|  | @ -1357,11 +1363,6 @@ public class AnnotationUtilsTests { | |||
| 		assertNotNull(synthesizedWebMapping2); | ||||
| 
 | ||||
| 		assertThat(webMappingWithAliases.toString(), is(not(synthesizedWebMapping1.toString()))); | ||||
| 
 | ||||
| 		// The unsynthesized annotation for handleMappedWithSamePathAndValueAttributes() | ||||
| 		// should produce the same toString() results as synthesized annotations for | ||||
| 		// handleMappedWithPathAttribute() | ||||
| 		assertToStringForWebMappingWithPathAndValue(webMappingWithPathAndValue); | ||||
| 		assertToStringForWebMappingWithPathAndValue(synthesizedWebMapping1); | ||||
| 		assertToStringForWebMappingWithPathAndValue(synthesizedWebMapping2); | ||||
| 	} | ||||
|  | @ -1819,13 +1820,13 @@ public class AnnotationUtilsTests { | |||
| 	interface InterfaceWithRepeated { | ||||
| 
 | ||||
| 		@MyRepeatable("A") | ||||
| 		@MyRepeatableContainer({ @MyRepeatable("B"), @MyRepeatable("C") }) | ||||
| 		@MyRepeatableContainer({@MyRepeatable("B"), @MyRepeatable("C")}) | ||||
| 		@MyRepeatableMeta1 | ||||
| 		void foo(); | ||||
| 	} | ||||
| 
 | ||||
| 	@MyRepeatable("A") | ||||
| 	@MyRepeatableContainer({ @MyRepeatable("B"), @MyRepeatable("C") }) | ||||
| 	@MyRepeatableContainer({@MyRepeatable("B"), @MyRepeatable("C")}) | ||||
| 	@MyRepeatableMeta1 | ||||
| 	static class MyRepeatableClass { | ||||
| 	} | ||||
|  | @ -1834,7 +1835,7 @@ public class AnnotationUtilsTests { | |||
| 	} | ||||
| 
 | ||||
| 	@MyRepeatable("X") | ||||
| 	@MyRepeatableContainer({ @MyRepeatable("Y"), @MyRepeatable("Z") }) | ||||
| 	@MyRepeatableContainer({@MyRepeatable("Y"), @MyRepeatable("Z")}) | ||||
| 	@MyRepeatableMeta2 | ||||
| 	static class SubMyRepeatableWithAdditionalLocalDeclarationsClass extends MyRepeatableClass { | ||||
| 	} | ||||
|  | @ -1964,7 +1965,7 @@ public class AnnotationUtilsTests { | |||
| 		BrokenContextConfig[] value(); | ||||
| 	} | ||||
| 
 | ||||
| 	@Hierarchy({ @ContextConfig("A"), @ContextConfig(location = "B") }) | ||||
| 	@Hierarchy({@ContextConfig("A"), @ContextConfig(location = "B")}) | ||||
| 	static class ConfigHierarchyTestCase { | ||||
| 	} | ||||
| 
 | ||||
|  | @ -2316,7 +2317,7 @@ public class AnnotationUtilsTests { | |||
| 		Filter[] excludeFilters() default {}; | ||||
| 	} | ||||
| 
 | ||||
| 	@ComponentScan(excludeFilters = { @Filter(pattern = "*Foo"), @Filter(pattern = "*Bar") }) | ||||
| 	@ComponentScan(excludeFilters = {@Filter(pattern = "*Foo"), @Filter(pattern = "*Bar")}) | ||||
| 	static class ComponentScanClass { | ||||
| 	} | ||||
| 
 | ||||
|  | @ -2344,4 +2345,8 @@ public class AnnotationUtilsTests { | |||
| 		String text(); | ||||
| 	} | ||||
| 
 | ||||
| 	@ContextConfig(value = "foo", location = "bar") | ||||
| 	interface ContextConfigMismatch { | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -179,12 +179,11 @@ public class FormHttpMessageConverter implements HttpMessageConverter<MultiValue | |||
| 	 * names. Encoding is based on the encoded-word syntax defined in RFC 2047 | ||||
| 	 * and relies on {@code MimeUtility} from "javax.mail". | ||||
| 	 * <p>If not set file names will be encoded as US-ASCII. | ||||
| 	 * @param multipartCharset the charset to use | ||||
| 	 * @since 4.1.1 | ||||
| 	 * @see <a href="http://en.wikipedia.org/wiki/MIME#Encoded-Word">Encoded-Word</a> | ||||
| 	 */ | ||||
| 	public void setMultipartCharset(Charset multipartCharset) { | ||||
| 		this.multipartCharset = multipartCharset; | ||||
| 	public void setMultipartCharset(Charset charset) { | ||||
| 		this.multipartCharset = charset; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -264,6 +264,10 @@ public class DispatcherServlet extends FrameworkServlet { | |||
| 	 */ | ||||
| 	private static final String DEFAULT_STRATEGIES_PATH = "DispatcherServlet.properties"; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Common prefix that DispatcherServlet's default strategy attributes start with. | ||||
| 	 */ | ||||
| 	private static final String DEFAULT_STRATEGIES_PREFIX = "org.springframework.web.servlet"; | ||||
| 
 | ||||
| 	/** Additional logger to use when no mapped handler is found for a request. */ | ||||
| 	protected static final Log pageNotFoundLogger = LogFactory.getLog(PAGE_NOT_FOUND_LOG_CATEGORY); | ||||
|  | @ -279,7 +283,7 @@ public class DispatcherServlet extends FrameworkServlet { | |||
| 			defaultStrategies = PropertiesLoaderUtils.loadProperties(resource); | ||||
| 		} | ||||
| 		catch (IOException ex) { | ||||
| 			throw new IllegalStateException("Could not load 'DispatcherServlet.properties': " + ex.getMessage()); | ||||
| 			throw new IllegalStateException("Could not load '" + DEFAULT_STRATEGIES_PATH + "': " + ex.getMessage()); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -874,7 +878,7 @@ public class DispatcherServlet extends FrameworkServlet { | |||
| 			Enumeration<?> attrNames = request.getAttributeNames(); | ||||
| 			while (attrNames.hasMoreElements()) { | ||||
| 				String attrName = (String) attrNames.nextElement(); | ||||
| 				if (this.cleanupAfterInclude || attrName.startsWith("org.springframework.web.servlet")) { | ||||
| 				if (this.cleanupAfterInclude || attrName.startsWith(DEFAULT_STRATEGIES_PREFIX)) { | ||||
| 					attributesSnapshot.put(attrName, request.getAttribute(attrName)); | ||||
| 				} | ||||
| 			} | ||||
|  | @ -1348,7 +1352,7 @@ public class DispatcherServlet extends FrameworkServlet { | |||
| 		Enumeration<?> attrNames = request.getAttributeNames(); | ||||
| 		while (attrNames.hasMoreElements()) { | ||||
| 			String attrName = (String) attrNames.nextElement(); | ||||
| 			if (this.cleanupAfterInclude || attrName.startsWith("org.springframework.web.servlet")) { | ||||
| 			if (this.cleanupAfterInclude || attrName.startsWith(DEFAULT_STRATEGIES_PREFIX)) { | ||||
| 				attrsToCheck.add(attrName); | ||||
| 			} | ||||
| 		} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue