PayloadArgumentResolver does not insist on configured Validator anymore

Issue: SPR-12567
This commit is contained in:
Juergen Hoeller 2014-12-29 12:55:37 +01:00
parent 752bbbdd05
commit ed0e2f4445
3 changed files with 19 additions and 33 deletions

View File

@ -31,7 +31,6 @@ import org.springframework.messaging.converter.MessageConverter;
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver;
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite;
import org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
/**
@ -62,7 +61,7 @@ public class DefaultMessageHandlerMethodFactory implements MessageHandlerMethodF
private MessageConverter messageConverter;
private Validator validator = new NoOpValidator();
private Validator validator;
private List<HandlerMethodArgumentResolver> customArgumentResolvers;
@ -169,17 +168,4 @@ public class DefaultMessageHandlerMethodFactory implements MessageHandlerMethodF
return resolvers;
}
private static final class NoOpValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return false;
}
@Override
public void validate(Object target, Errors errors) {
}
}
}

View File

@ -56,9 +56,24 @@ public class PayloadArgumentResolver implements HandlerMethodArgumentResolver {
private final Validator validator;
/**
* Create a new {@code PayloadArgumentResolver} with the given
* {@link MessageConverter}.
* @param messageConverter the MessageConverter to use (required)
* @since 4.0.9
*/
public PayloadArgumentResolver(MessageConverter messageConverter) {
this(messageConverter, null);
}
/**
* Create a new {@code PayloadArgumentResolver} with the given
* {@link MessageConverter} and {@link Validator}.
* @param messageConverter the MessageConverter to use (required)
* @param validator the Validator to use (optional)
*/
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator) {
Assert.notNull(messageConverter, "converter must not be null");
Assert.notNull(validator, "validator must not be null");
Assert.notNull(messageConverter, "MessageConverter must not be null");
this.converter = messageConverter;
this.validator = validator;
}

View File

@ -67,7 +67,6 @@ import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.util.PathMatcher;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
/**
@ -309,8 +308,7 @@ public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHan
resolvers.add(new MessageMethodArgumentResolver());
resolvers.addAll(getCustomArgumentResolvers());
resolvers.add(new PayloadArgumentResolver(this.messageConverter,
(this.validator != null ? this.validator : new NoOpValidator())));
resolvers.add(new PayloadArgumentResolver(this.messageConverter, this.validator));
return resolvers;
}
@ -457,17 +455,4 @@ public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHan
return new AnnotationExceptionHandlerMethodResolver(beanType);
}
private static final class NoOpValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return false;
}
@Override
public void validate(Object target, Errors errors) {
}
}
}