parent
942ead75e2
commit
e30429051d
|
|
@ -124,7 +124,7 @@ public class DateTimeFormattingTests {
|
|||
@Test
|
||||
public void testBindLocalDateArray() {
|
||||
MutablePropertyValues propertyValues = new MutablePropertyValues();
|
||||
propertyValues.add("localDate", new String[]{"10/31/09"});
|
||||
propertyValues.add("localDate", new String[] {"10/31/09"});
|
||||
binder.bind(propertyValues);
|
||||
assertEquals(0, binder.getBindingResult().getErrorCount());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2016 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.
|
||||
|
|
@ -185,9 +185,6 @@ final class ObjectToObjectConverter implements ConditionalGenericConverter {
|
|||
method = ClassUtils.getStaticMethod(targetClass, "of", sourceClass);
|
||||
if (method == null) {
|
||||
method = ClassUtils.getStaticMethod(targetClass, "from", sourceClass);
|
||||
if (method == null) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
return method;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
* Copyright 2002-2016 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.
|
||||
|
|
@ -19,10 +19,10 @@ package org.springframework.core.env;
|
|||
import org.springframework.core.convert.support.ConfigurableConversionService;
|
||||
|
||||
/**
|
||||
* Configuration interface to be implemented by most if not all {@link PropertyResolver
|
||||
* PropertyResolver} types. Provides facilities for accessing and customizing the
|
||||
* {@link org.springframework.core.convert.ConversionService ConversionService} used when
|
||||
* converting property values from one type to another.
|
||||
* Configuration interface to be implemented by most if not all {@link PropertyResolver}
|
||||
* types. Provides facilities for accessing and customizing the
|
||||
* {@link org.springframework.core.convert.ConversionService ConversionService}
|
||||
* used when converting property values from one type to another.
|
||||
*
|
||||
* @author Chris Beams
|
||||
* @since 3.1
|
||||
|
|
@ -30,7 +30,7 @@ import org.springframework.core.convert.support.ConfigurableConversionService;
|
|||
public interface ConfigurablePropertyResolver extends PropertyResolver {
|
||||
|
||||
/**
|
||||
* @return the {@link ConfigurableConversionService} used when performing type
|
||||
* Return the {@link ConfigurableConversionService} used when performing type
|
||||
* conversions on properties.
|
||||
* <p>The configurable nature of the returned conversion service allows for
|
||||
* the convenient addition and removal of individual {@code Converter} instances:
|
||||
|
|
@ -46,10 +46,10 @@ public interface ConfigurablePropertyResolver extends PropertyResolver {
|
|||
/**
|
||||
* Set the {@link ConfigurableConversionService} to be used when performing type
|
||||
* conversions on properties.
|
||||
* <p><strong>Note:</strong> as an alternative to fully replacing the {@code
|
||||
* ConversionService}, consider adding or removing individual {@code Converter}
|
||||
* instances by drilling into {@link #getConversionService()} and calling methods
|
||||
* such as {@code #addConverter}.
|
||||
* <p><strong>Note:</strong> as an alternative to fully replacing the
|
||||
* {@code ConversionService}, consider adding or removing individual
|
||||
* {@code Converter} instances by drilling into {@link #getConversionService()}
|
||||
* and calling methods such as {@code #addConverter}.
|
||||
* @see PropertyResolver#getProperty(String, Class)
|
||||
* @see #getConversionService()
|
||||
* @see org.springframework.core.convert.converter.ConverterRegistry#addConverter
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2016 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.
|
||||
|
|
@ -134,7 +134,7 @@ public class StopWatch {
|
|||
/**
|
||||
* Stop the current task. The results are undefined if timing
|
||||
* methods are called without invoking at least one pair
|
||||
* {@code #start()} / {@code #stop()} methods.
|
||||
* {@code start()} / {@code stop()} methods.
|
||||
* @see #start()
|
||||
*/
|
||||
public void stop() throws IllegalStateException {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
* Copyright 2002-2016 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.
|
||||
|
|
@ -46,7 +46,7 @@ public class SerializableTypeWrapperTests {
|
|||
public void forField() throws Exception {
|
||||
Type type = SerializableTypeWrapper.forField(Fields.class.getField("parameterizedType"));
|
||||
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>"));
|
||||
assertSerialzable(type);
|
||||
assertSerializable(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -54,7 +54,7 @@ public class SerializableTypeWrapperTests {
|
|||
Method method = Methods.class.getDeclaredMethod("method", Class.class, Object.class);
|
||||
Type type = SerializableTypeWrapper.forMethodParameter(MethodParameter.forMethodOrConstructor(method, 0));
|
||||
assertThat(type.toString(), equalTo("java.lang.Class<T>"));
|
||||
assertSerialzable(type);
|
||||
assertSerializable(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -62,62 +62,62 @@ public class SerializableTypeWrapperTests {
|
|||
Constructor<?> constructor = Constructors.class.getDeclaredConstructor(List.class);
|
||||
Type type = SerializableTypeWrapper.forMethodParameter(MethodParameter.forMethodOrConstructor(constructor, 0));
|
||||
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>"));
|
||||
assertSerialzable(type);
|
||||
assertSerializable(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forGenericSuperClass() throws Exception {
|
||||
Type type = SerializableTypeWrapper.forGenericSuperclass(ArrayList.class);
|
||||
assertThat(type.toString(), equalTo("java.util.AbstractList<E>"));
|
||||
assertSerialzable(type);
|
||||
assertSerializable(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forGenericInterfaces() throws Exception {
|
||||
Type type = SerializableTypeWrapper.forGenericInterfaces(List.class)[0];
|
||||
assertThat(type.toString(), equalTo("java.util.Collection<E>"));
|
||||
assertSerialzable(type);
|
||||
assertSerializable(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forTypeParamters() throws Exception {
|
||||
Type type = SerializableTypeWrapper.forTypeParameters(List.class)[0];
|
||||
assertThat(type.toString(), equalTo("E"));
|
||||
assertSerialzable(type);
|
||||
assertSerializable(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void classType() throws Exception {
|
||||
Type type = SerializableTypeWrapper.forField(Fields.class.getField("classType"));
|
||||
assertThat(type.toString(), equalTo("class java.lang.String"));
|
||||
assertSerialzable(type);
|
||||
assertSerializable(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void genericArrayType() throws Exception {
|
||||
GenericArrayType type = (GenericArrayType) SerializableTypeWrapper.forField(Fields.class.getField("genericArrayType"));
|
||||
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>[]"));
|
||||
assertSerialzable(type);
|
||||
assertSerialzable(type.getGenericComponentType());
|
||||
assertSerializable(type);
|
||||
assertSerializable(type.getGenericComponentType());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parameterizedType() throws Exception {
|
||||
ParameterizedType type = (ParameterizedType) SerializableTypeWrapper.forField(Fields.class.getField("parameterizedType"));
|
||||
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>"));
|
||||
assertSerialzable(type);
|
||||
assertSerialzable(type.getOwnerType());
|
||||
assertSerialzable(type.getRawType());
|
||||
assertSerialzable(type.getActualTypeArguments());
|
||||
assertSerialzable(type.getActualTypeArguments()[0]);
|
||||
assertSerializable(type);
|
||||
assertSerializable(type.getOwnerType());
|
||||
assertSerializable(type.getRawType());
|
||||
assertSerializable(type.getActualTypeArguments());
|
||||
assertSerializable(type.getActualTypeArguments()[0]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void typeVariableType() throws Exception {
|
||||
TypeVariable<?> type = (TypeVariable<?>) SerializableTypeWrapper.forField(Fields.class.getField("typeVariableType"));
|
||||
assertThat(type.toString(), equalTo("T"));
|
||||
assertSerialzable(type);
|
||||
assertSerialzable(type.getBounds());
|
||||
assertSerializable(type);
|
||||
assertSerializable(type.getBounds());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -125,13 +125,13 @@ public class SerializableTypeWrapperTests {
|
|||
ParameterizedType typeSource = (ParameterizedType) SerializableTypeWrapper.forField(Fields.class.getField("wildcardType"));
|
||||
WildcardType type = (WildcardType) typeSource.getActualTypeArguments()[0];
|
||||
assertThat(type.toString(), equalTo("? extends java.lang.CharSequence"));
|
||||
assertSerialzable(type);
|
||||
assertSerialzable(type.getLowerBounds());
|
||||
assertSerialzable(type.getUpperBounds());
|
||||
assertSerializable(type);
|
||||
assertSerializable(type.getLowerBounds());
|
||||
assertSerializable(type.getUpperBounds());
|
||||
}
|
||||
|
||||
|
||||
private void assertSerialzable(Object source) throws Exception {
|
||||
private void assertSerializable(Object source) throws Exception {
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
ObjectOutputStream oos = new ObjectOutputStream(bos);
|
||||
oos.writeObject(source);
|
||||
|
|
@ -152,19 +152,19 @@ public class SerializableTypeWrapperTests {
|
|||
public T typeVariableType;
|
||||
|
||||
public List<? extends CharSequence> wildcardType;
|
||||
|
||||
}
|
||||
|
||||
static interface Methods {
|
||||
|
||||
interface Methods {
|
||||
|
||||
<T> List<T> method(Class<T> p1, T p2);
|
||||
|
||||
}
|
||||
|
||||
|
||||
static class Constructors {
|
||||
|
||||
public Constructors(List<String> p) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.web.servlet.mvc.method.annotation;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
|
@ -40,14 +41,8 @@ import org.springframework.web.context.request.ServletWebRequest;
|
|||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||
import org.springframework.web.method.support.ModelAndViewContainer;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.BDDMockito.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
/**
|
||||
|
|
@ -87,7 +82,7 @@ public abstract class AbstractRequestAttributesArgumentResolverTests {
|
|||
@Test
|
||||
public void supportsParameter() throws Exception {
|
||||
assertTrue(this.resolver.supportsParameter(new MethodParameter(this.handleMethod, 0)));
|
||||
assertFalse(this.resolver.supportsParameter(new MethodParameter(this.handleMethod, 4)));
|
||||
assertFalse(this.resolver.supportsParameter(new MethodParameter(this.handleMethod, -1)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -180,6 +175,8 @@ public abstract class AbstractRequestAttributesArgumentResolverTests {
|
|||
@SessionAttribute(name="foo") Optional<Foo> optionalFoo) {
|
||||
}
|
||||
|
||||
|
||||
private static class Foo {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,19 +13,19 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.web.servlet.mvc.method.annotation;
|
||||
|
||||
import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||
|
||||
|
||||
/**
|
||||
* Unit tests for {@link RequestAttributeMethodArgumentResolver}.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
* @since 4.3
|
||||
*/
|
||||
public class RequestAttributeMethodArgumentResolverTests
|
||||
extends AbstractRequestAttributesArgumentResolverTests {
|
||||
|
||||
public class RequestAttributeMethodArgumentResolverTests extends AbstractRequestAttributesArgumentResolverTests {
|
||||
|
||||
@Override
|
||||
protected HandlerMethodArgumentResolver createResolver() {
|
||||
|
|
|
|||
|
|
@ -13,19 +13,19 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.web.servlet.mvc.method.annotation;
|
||||
|
||||
import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||
|
||||
|
||||
/**
|
||||
* Unit tests for {@link SessionAttributeMethodArgumentResolver}.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
* @since 4.3
|
||||
*/
|
||||
public class SessionAttributeMethodArgumentResolverTests
|
||||
extends AbstractRequestAttributesArgumentResolverTests {
|
||||
|
||||
public class SessionAttributeMethodArgumentResolverTests extends AbstractRequestAttributesArgumentResolverTests {
|
||||
|
||||
@Override
|
||||
protected HandlerMethodArgumentResolver createResolver() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue