Polishing
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
@@ -26,7 +26,6 @@ import org.springframework.messaging.MessageHeaders;
|
||||
import org.springframework.messaging.handler.annotation.Headers;
|
||||
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver;
|
||||
import org.springframework.messaging.support.MessageHeaderAccessor;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
/**
|
||||
@@ -46,16 +45,13 @@ public class HeadersMethodArgumentResolver implements HandlerMethodArgumentResol
|
||||
public boolean supportsParameter(MethodParameter parameter) {
|
||||
Class<?> paramType = parameter.getParameterType();
|
||||
return ((parameter.hasParameterAnnotation(Headers.class) && Map.class.isAssignableFrom(paramType)) ||
|
||||
MessageHeaders.class == paramType ||
|
||||
MessageHeaderAccessor.class.isAssignableFrom(paramType));
|
||||
MessageHeaders.class == paramType || MessageHeaderAccessor.class.isAssignableFrom(paramType));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception {
|
||||
|
||||
Class<?> paramType = parameter.getParameterType();
|
||||
|
||||
if (Map.class.isAssignableFrom(paramType)) {
|
||||
return message.getHeaders();
|
||||
}
|
||||
@@ -70,7 +66,10 @@ public class HeadersMethodArgumentResolver implements HandlerMethodArgumentResol
|
||||
}
|
||||
else {
|
||||
Method method = ReflectionUtils.findMethod(paramType, "wrap", Message.class);
|
||||
Assert.notNull(method, () -> "Cannot create accessor of type " + paramType + " for message " + message);
|
||||
if (method == null) {
|
||||
throw new IllegalStateException(
|
||||
"Cannot create accessor of type " + paramType + " for message " + message);
|
||||
}
|
||||
return ReflectionUtils.invokeMethod(method, null, message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import org.springframework.core.MethodParameter;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* Resolves method parameters by delegating to a list of registered
|
||||
@@ -110,9 +109,10 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
|
||||
@Override
|
||||
@Nullable
|
||||
public Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception {
|
||||
|
||||
HandlerMethodArgumentResolver resolver = getArgumentResolver(parameter);
|
||||
Assert.notNull(resolver, () -> "Unknown parameter type [" + parameter.getParameterType().getName() + "]");
|
||||
if (resolver == null) {
|
||||
throw new IllegalStateException("Unknown parameter type [" + parameter.getParameterType().getName() + "]");
|
||||
}
|
||||
return resolver.resolveArgument(parameter, message);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user