PayloadArgumentResolver does not insist on configured Validator anymore
Issue: SPR-12567
This commit is contained in:
@@ -31,7 +31,6 @@ import org.springframework.messaging.converter.MessageConverter;
|
|||||||
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver;
|
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver;
|
||||||
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite;
|
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite;
|
||||||
import org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
|
import org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
|
||||||
import org.springframework.validation.Errors;
|
|
||||||
import org.springframework.validation.Validator;
|
import org.springframework.validation.Validator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,7 +61,7 @@ public class DefaultMessageHandlerMethodFactory implements MessageHandlerMethodF
|
|||||||
|
|
||||||
private MessageConverter messageConverter;
|
private MessageConverter messageConverter;
|
||||||
|
|
||||||
private Validator validator = new NoOpValidator();
|
private Validator validator;
|
||||||
|
|
||||||
private List<HandlerMethodArgumentResolver> customArgumentResolvers;
|
private List<HandlerMethodArgumentResolver> customArgumentResolvers;
|
||||||
|
|
||||||
@@ -169,17 +168,4 @@ public class DefaultMessageHandlerMethodFactory implements MessageHandlerMethodF
|
|||||||
return resolvers;
|
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) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,9 +56,24 @@ public class PayloadArgumentResolver implements HandlerMethodArgumentResolver {
|
|||||||
private final Validator validator;
|
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) {
|
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator) {
|
||||||
Assert.notNull(messageConverter, "converter must not be null");
|
Assert.notNull(messageConverter, "MessageConverter must not be null");
|
||||||
Assert.notNull(validator, "validator must not be null");
|
|
||||||
this.converter = messageConverter;
|
this.converter = messageConverter;
|
||||||
this.validator = validator;
|
this.validator = validator;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ import org.springframework.util.Assert;
|
|||||||
import org.springframework.util.ClassUtils;
|
import org.springframework.util.ClassUtils;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.PathMatcher;
|
import org.springframework.util.PathMatcher;
|
||||||
import org.springframework.validation.Errors;
|
|
||||||
import org.springframework.validation.Validator;
|
import org.springframework.validation.Validator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -309,8 +308,7 @@ public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHan
|
|||||||
resolvers.add(new MessageMethodArgumentResolver());
|
resolvers.add(new MessageMethodArgumentResolver());
|
||||||
|
|
||||||
resolvers.addAll(getCustomArgumentResolvers());
|
resolvers.addAll(getCustomArgumentResolvers());
|
||||||
resolvers.add(new PayloadArgumentResolver(this.messageConverter,
|
resolvers.add(new PayloadArgumentResolver(this.messageConverter, this.validator));
|
||||||
(this.validator != null ? this.validator : new NoOpValidator())));
|
|
||||||
|
|
||||||
return resolvers;
|
return resolvers;
|
||||||
}
|
}
|
||||||
@@ -457,17 +455,4 @@ public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHan
|
|||||||
return new AnnotationExceptionHandlerMethodResolver(beanType);
|
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) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user