Polishing

This commit is contained in:
Juergen Hoeller 2015-03-05 18:56:57 +01:00
parent 1e26d17a3d
commit b541fc9366
10 changed files with 65 additions and 63 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -219,8 +219,7 @@ public class PropertyPlaceholderConfigurer extends PlaceholderConfigurerSupport
throws BeansException { throws BeansException {
StringValueResolver valueResolver = new PlaceholderResolvingStringValueResolver(props); StringValueResolver valueResolver = new PlaceholderResolvingStringValueResolver(props);
doProcessProperties(beanFactoryToProcess, valueResolver);
this.doProcessProperties(beanFactoryToProcess, valueResolver);
} }
/** /**

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2014 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -269,7 +269,7 @@ public class BeanDefinitionBuilder {
*/ */
public BeanDefinitionBuilder addDependsOn(String beanName) { public BeanDefinitionBuilder addDependsOn(String beanName) {
if (this.beanDefinition.getDependsOn() == null) { if (this.beanDefinition.getDependsOn() == null) {
this.beanDefinition.setDependsOn(new String[] {beanName}); this.beanDefinition.setDependsOn(beanName);
} }
else { else {
String[] added = ObjectUtils.addObjectToArray(this.beanDefinition.getDependsOn(), beanName); String[] added = ObjectUtils.addObjectToArray(this.beanDefinition.getDependsOn(), beanName);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2011 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -28,16 +28,16 @@ import org.springframework.beans.factory.config.BeanDefinition;
* Indicates the 'role' hint for a given bean. * Indicates the 'role' hint for a given bean.
* *
* <p>May be used on any class directly or indirectly annotated with * <p>May be used on any class directly or indirectly annotated with
* {@link org.springframework.stereotype.Component} or on methods annotated with * {@link org.springframework.stereotype.Component} or on methods
* {@link Bean}. * annotated with {@link Bean}.
* *
* <p>If this annotation is not present on a Component or Bean definition, the * <p>If this annotation is not present on a Component or Bean definition,
* default value of {@link BeanDefinition#ROLE_APPLICATION} will apply. * the default value of {@link BeanDefinition#ROLE_APPLICATION} will apply.
* *
* <p>If Role is present on a {@link Configuration @Configuration} class, this * <p>If Role is present on a {@link Configuration @Configuration} class,
* indicates the role of the configuration class bean definition and does not * this indicates the role of the configuration class bean definition and
* cascade to all @{@code Bean} methods defined within. This behavior is * does not cascade to all @{@code Bean} methods defined within. This behavior
* different than that of the @{@link Lazy} annotation, for example. * is different than that of the @{@link Lazy} annotation, for example.
* *
* @author Chris Beams * @author Chris Beams
* @since 3.1 * @since 3.1

View File

@ -45,7 +45,7 @@ public class ProxyAsyncConfiguration extends AbstractAsyncConfiguration {
public AsyncAnnotationBeanPostProcessor asyncAdvisor() { public AsyncAnnotationBeanPostProcessor asyncAdvisor() {
Assert.notNull(this.enableAsync, "@EnableAsync annotation metadata was not injected"); Assert.notNull(this.enableAsync, "@EnableAsync annotation metadata was not injected");
AsyncAnnotationBeanPostProcessor bpp = new AsyncAnnotationBeanPostProcessor(); AsyncAnnotationBeanPostProcessor bpp = new AsyncAnnotationBeanPostProcessor();
Class<? extends Annotation> customAsyncAnnotation = enableAsync.getClass("annotation"); Class<? extends Annotation> customAsyncAnnotation = this.enableAsync.getClass("annotation");
if (customAsyncAnnotation != AnnotationUtils.getDefaultValue(EnableAsync.class, "annotation")) { if (customAsyncAnnotation != AnnotationUtils.getDefaultValue(EnableAsync.class, "annotation")) {
bpp.setAsyncAnnotationType(customAsyncAnnotation); bpp.setAsyncAnnotationType(customAsyncAnnotation);
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -35,6 +35,7 @@ public class ByteBufferConverterTests {
private GenericConversionService conversionService; private GenericConversionService conversionService;
@Before @Before
public void setup() { public void setup() {
this.conversionService = new GenericConversionService(); this.conversionService = new GenericConversionService();
@ -43,6 +44,7 @@ public class ByteBufferConverterTests {
this.conversionService.addConverter(new OtherTypeToByteArrayConverter()); this.conversionService.addConverter(new OtherTypeToByteArrayConverter());
} }
@Test @Test
public void byteArrayToByteBuffer() throws Exception { public void byteArrayToByteBuffer() throws Exception {
byte[] bytes = new byte[] { 1, 2, 3 }; byte[] bytes = new byte[] { 1, 2, 3 };
@ -78,6 +80,7 @@ public class ByteBufferConverterTests {
assertThat(bytes, equalTo(convert.array())); assertThat(bytes, equalTo(convert.array()));
} }
private static class OtherType { private static class OtherType {
private byte[] bytes; private byte[] bytes;
@ -88,8 +91,8 @@ public class ByteBufferConverterTests {
} }
private static class ByteArrayToOtherTypeConverter implements
Converter<byte[], OtherType> { private static class ByteArrayToOtherTypeConverter implements Converter<byte[], OtherType> {
@Override @Override
public OtherType convert(byte[] source) { public OtherType convert(byte[] source) {
@ -97,8 +100,8 @@ public class ByteBufferConverterTests {
} }
} }
private static class OtherTypeToByteArrayConverter implements
Converter<OtherType, byte[]> { private static class OtherTypeToByteArrayConverter implements Converter<OtherType, byte[]> {
@Override @Override
public byte[] convert(OtherType source) { public byte[] convert(OtherType source) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -34,7 +34,6 @@ import static java.lang.String.*;
*/ */
public enum TestGroup { public enum TestGroup {
/** /**
* Tests that take a considerable amount of time to run. Any test lasting longer than * Tests that take a considerable amount of time to run. Any test lasting longer than
* 500ms should be considered a candidate in order to avoid making the overall test * 500ms should be considered a candidate in order to avoid making the overall test
@ -68,6 +67,7 @@ public enum TestGroup {
*/ */
CUSTOM_COMPILATION; CUSTOM_COMPILATION;
/** /**
* Parse the specified comma separated string of groups. * Parse the specified comma separated string of groups.
* @param value the comma separated string of groups * @param value the comma separated string of groups
@ -102,4 +102,5 @@ public enum TestGroup {
} }
return groups; return groups;
} }
} }

View File

@ -29,7 +29,7 @@ import org.springframework.jms.config.JmsListenerEndpointRegistry;
* a default {@link JmsListenerEndpointRegistry}. * a default {@link JmsListenerEndpointRegistry}.
* *
* <p>This configuration class is automatically imported when using the @{@link EnableJms} * <p>This configuration class is automatically imported when using the @{@link EnableJms}
* annotation. See {@link EnableJms} Javadoc for complete usage. * annotation. See the {@link EnableJms} javadocs for complete usage details.
* *
* @author Stephane Nicoll * @author Stephane Nicoll
* @since 4.1 * @since 4.1

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2014 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -55,55 +55,56 @@ public class CastorMarshallerTests extends AbstractMarshallerTests {
/** /**
* Represents the expected result that doesn't contain the xml declaration. * Represents the expected result that doesn't contain the xml declaration.
*/ */
private static final String DOCUMENT_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" private static final String DOCUMENT_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "<tns:flights xmlns:tns=\"http://samples.springframework.org/flight\">" "<tns:flights xmlns:tns=\"http://samples.springframework.org/flight\">" +
+ "<tns:flight><tns:number>42</tns:number></tns:flight></tns:flights>"; "<tns:flight><tns:number>42</tns:number></tns:flight></tns:flights>";
/** /**
* Represents the expected result that doesn't contain the xml namespaces. * Represents the expected result that doesn't contain the xml namespaces.
*/ */
private static final String SUPPRESSED_NAMESPACE_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><flights><flight><number>42</number></flight></flights>"; private static final String SUPPRESSED_NAMESPACE_EXPECTED_STRING =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><flights><flight><number>42</number></flight></flights>";
/** /**
* Represents the expected result with modified root element name. * Represents the expected result with modified root element name.
*/ */
private static final String ROOT_ELEMENT_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" private static final String ROOT_ELEMENT_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "<tns:canceledFlights xmlns:tns=\"http://samples.springframework.org/flight\">" "<tns:canceledFlights xmlns:tns=\"http://samples.springframework.org/flight\">" +
+ "<tns:flight><tns:number>42</tns:number></tns:flight></tns:canceledFlights>"; "<tns:flight><tns:number>42</tns:number></tns:flight></tns:canceledFlights>";
/** /**
* Represents the expected result with 'xsi:type' attribute. * Represents the expected result with 'xsi:type' attribute.
*/ */
private static final String XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" private static final String XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "<objects><castor-object xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" "<objects><castor-object xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
+ " xmlns:java=\"http://java.sun.com\"" " xmlns:java=\"http://java.sun.com\"" +
+ " xsi:type=\"java:org.springframework.oxm.castor.CastorObject\">" " xsi:type=\"java:org.springframework.oxm.castor.CastorObject\">" +
+ "<name>test</name><value>8</value></castor-object></objects>"; "<name>test</name><value>8</value></castor-object></objects>";
/** /**
* Represents the expected result with suppressed 'xsi:type' attribute. * Represents the expected result with suppressed 'xsi:type' attribute.
*/ */
private static final String SUPPRESSED_XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" private static final String SUPPRESSED_XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "<objects><castor-object><name>test</name><value>8</value></castor-object></objects>"; "<objects><castor-object><name>test</name><value>8</value></castor-object></objects>";
/** /**
* Represents the expected result with 'xsi:type' attribute for root element. * Represents the expected result with 'xsi:type' attribute for root element.
*/ */
private static final String ROOT_WITH_XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" private static final String ROOT_WITH_XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "<objects xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" "<objects xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
+ " xmlns:java=\"http://java.sun.com\"" " xmlns:java=\"http://java.sun.com\"" +
+ " xsi:type=\"java:java.util.Arrays$ArrayList\">" " xsi:type=\"java:java.util.Arrays$ArrayList\">" +
+ "<castor-object xsi:type=\"java:org.springframework.oxm.castor.CastorObject\">" "<castor-object xsi:type=\"java:org.springframework.oxm.castor.CastorObject\">" +
+ "<name>test</name><value>8</value></castor-object></objects>"; "<name>test</name><value>8</value></castor-object></objects>";
/** /**
* Represents the expected result without 'xsi:type' attribute for root element. * Represents the expected result without 'xsi:type' attribute for root element.
*/ */
private static final String ROOT_WITHOUT_XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" private static final String ROOT_WITHOUT_XSI_EXPECTED_STRING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "<objects><castor-object xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" "<objects><castor-object xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
+ " xmlns:java=\"http://java.sun.com\"" " xmlns:java=\"http://java.sun.com\"" +
+ " xsi:type=\"java:org.springframework.oxm.castor.CastorObject\">" " xsi:type=\"java:org.springframework.oxm.castor.CastorObject\">" +
+ "<name>test</name><value>8</value></castor-object></objects>"; "<name>test</name><value>8</value></castor-object></objects>";
@Override @Override
@ -277,9 +278,9 @@ public class CastorMarshallerTests extends AbstractMarshallerTests {
} }
/** /**
* Asserts the values of xpath expression evaluation is exactly the same as expected value. </p> The xpath may contain * Asserts the values of xpath expression evaluation is exactly the same as expected value.
* the xml namespace prefixes, since namespaces from flight example are being registered. * <p>The xpath may contain the xml namespace prefixes, since namespaces from flight example
* * are being registered.
* @param msg the error message that will be used in case of test failure * @param msg the error message that will be used in case of test failure
* @param expected the expected value * @param expected the expected value
* @param xpath the xpath to evaluate * @param xpath the xpath to evaluate
@ -302,8 +303,6 @@ public class CastorMarshallerTests extends AbstractMarshallerTests {
/** /**
* Creates a instance of {@link CastorObject} for testing. * Creates a instance of {@link CastorObject} for testing.
*
* @return a instance of {@link CastorObject}
*/ */
private CastorObject createCastorObject() { private CastorObject createCastorObject() {
CastorObject castorObject = new CastorObject(); CastorObject castorObject = new CastorObject();
@ -311,4 +310,5 @@ public class CastorMarshallerTests extends AbstractMarshallerTests {
castorObject.setValue(8); castorObject.setValue(8);
return castorObject; return castorObject;
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2014 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -47,15 +47,16 @@ public class CastorUnmarshallerTests extends AbstractUnmarshallerTests {
*/ */
protected static final String EXTRA_ATTRIBUTES_STRING = protected static final String EXTRA_ATTRIBUTES_STRING =
"<tns:flights xmlns:tns=\"http://samples.springframework.org/flight\">" + "<tns:flights xmlns:tns=\"http://samples.springframework.org/flight\">" +
"<tns:flight status=\"canceled\"><tns:number>42</tns:number></tns:flight></tns:flights>"; "<tns:flight status=\"canceled\"><tns:number>42</tns:number></tns:flight></tns:flights>";
/** /**
* Represents the xml with additional element that is not mapped in Castor config. * Represents the xml with additional element that is not mapped in Castor config.
*/ */
protected static final String EXTRA_ELEMENTS_STRING = protected static final String EXTRA_ELEMENTS_STRING =
"<tns:flights xmlns:tns=\"http://samples.springframework.org/flight\">" + "<tns:flights xmlns:tns=\"http://samples.springframework.org/flight\">" +
"<tns:flight><tns:number>42</tns:number><tns:date>2011-06-14</tns:date>" + "<tns:flight><tns:number>42</tns:number><tns:date>2011-06-14</tns:date>" +
"</tns:flight></tns:flights>"; "</tns:flight></tns:flights>";
@Override @Override
protected void testFlights(Object o) { protected void testFlights(Object o) {
@ -237,7 +238,6 @@ public class CastorUnmarshallerTests extends AbstractUnmarshallerTests {
@Test @Test
public void unmarshalSaxSourceExternalEntities() throws Exception { public void unmarshalSaxSourceExternalEntities() throws Exception {
final AtomicReference<XMLReader> result = new AtomicReference<XMLReader>(); final AtomicReference<XMLReader> result = new AtomicReference<XMLReader>();
CastorMarshaller marshaller = new CastorMarshaller() { CastorMarshaller marshaller = new CastorMarshaller() {
@Override @Override
@ -248,13 +248,11 @@ public class CastorUnmarshallerTests extends AbstractUnmarshallerTests {
}; };
// 1. external-general-entities disabled (default) // 1. external-general-entities disabled (default)
marshaller.unmarshal(new SAXSource(new InputSource("1"))); marshaller.unmarshal(new SAXSource(new InputSource("1")));
assertNotNull(result.get()); assertNotNull(result.get());
assertEquals(false, result.get().getFeature("http://xml.org/sax/features/external-general-entities")); assertEquals(false, result.get().getFeature("http://xml.org/sax/features/external-general-entities"));
// 2. external-general-entities disabled (default) // 2. external-general-entities disabled (default)
result.set(null); result.set(null);
marshaller.setProcessExternalEntities(true); marshaller.setProcessExternalEntities(true);
marshaller.unmarshal(new SAXSource(new InputSource("1"))); marshaller.unmarshal(new SAXSource(new InputSource("1")));

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -33,11 +33,11 @@ import org.springframework.http.converter.HttpMessageConverter;
* <p>Supported for annotated handler methods in Servlet environments. * <p>Supported for annotated handler methods in Servlet environments.
* *
* @author Arjen Poutsma * @author Arjen Poutsma
* @since 3.0
* @see RequestHeader * @see RequestHeader
* @see ResponseBody * @see ResponseBody
* @see org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter * @see org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
* @see org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter * @see org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
* @since 3.0
*/ */
@Target(ElementType.PARAMETER) @Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@ -49,6 +49,7 @@ public @interface RequestBody {
* <p>Default is {@code true}, leading to an exception thrown in case * <p>Default is {@code true}, leading to an exception thrown in case
* there is no body content. Switch this to {@code false} if you prefer * there is no body content. Switch this to {@code false} if you prefer
* {@code null} to be passed when the body content is {@code null}. * {@code null} to be passed when the body content is {@code null}.
* @since 3.2
*/ */
boolean required() default true; boolean required() default true;