#471 -Support composed annotations in AnnotationMappingDiscoverer.

We now support composed annotations using @AliasFor such as @GetMapping that are mixed with @RequestMapping on type and method level.

@RequestMapping("type")
class MyController {

	@GetMapping("method")
	String method() {
	   …
	}
}

Original pull request: #497.
This commit is contained in:
Mark Paluch
2016-09-27 16:27:18 +02:00
committed by Oliver Gierke
parent 642b673676
commit a7f8a2c698
2 changed files with 7 additions and 3 deletions

View File

@@ -15,6 +15,7 @@
*/
package org.springframework.hateoas.core;
import static org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation;
import static org.springframework.core.annotation.AnnotationUtils.*;
import java.lang.annotation.Annotation;
@@ -27,6 +28,7 @@ import org.springframework.util.Assert;
* {@link MappingDiscoverer} implementation that inspects mappings from a particular annotation.
*
* @author Oliver Gierke
* @author Mark Paluch
*/
public class AnnotationMappingDiscoverer implements MappingDiscoverer {
@@ -68,7 +70,7 @@ public class AnnotationMappingDiscoverer implements MappingDiscoverer {
Assert.notNull(type, "Type must not be null!");
String[] mapping = getMappingFrom(findAnnotation(type, annotationType));
String[] mapping = getMappingFrom(findMergedAnnotation(type, annotationType));
return mapping.length == 0 ? null : mapping[0];
}
@@ -94,7 +96,7 @@ public class AnnotationMappingDiscoverer implements MappingDiscoverer {
Assert.notNull(type, "Type must not be null!");
Assert.notNull(method, "Method must not be null!");
String[] mapping = getMappingFrom(findAnnotation(method, annotationType));
String[] mapping = getMappingFrom(findMergedAnnotation(method, annotationType));
String typeMapping = getMapping(type);
if (mapping == null || mapping.length == 0) {