Camel CDI: fix compatibility with CDI 2.0
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c1a3820d Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c1a3820d Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c1a3820d Branch: refs/heads/master Commit: c1a3820d9a8561f831309fc76ecdd3786f791a54 Parents: 7b4feda Author: Antonin Stefanutti <anto...@stefanutti.fr> Authored: Tue Dec 27 21:55:34 2016 +0100 Committer: Antonin Stefanutti <anto...@stefanutti.fr> Committed: Tue Dec 27 22:04:35 2016 +0100 ---------------------------------------------------------------------- .../org/apache/camel/cdi/AnnotatedDelegate.java | 19 ++++++++++--------- .../org/apache/camel/cdi/SyntheticAnnotated.java | 15 +++++++++------ 2 files changed, 19 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/c1a3820d/components/camel-cdi/src/main/java/org/apache/camel/cdi/AnnotatedDelegate.java ---------------------------------------------------------------------- diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/AnnotatedDelegate.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/AnnotatedDelegate.java index 53f3d0e..25f83ed 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/AnnotatedDelegate.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/AnnotatedDelegate.java @@ -20,6 +20,8 @@ import java.lang.annotation.Annotation; import java.lang.reflect.Type; import java.util.HashSet; import java.util.Set; +import static java.util.stream.Collectors.toSet; + import javax.enterprise.inject.spi.Annotated; import static org.apache.camel.cdi.CdiSpiHelper.isAnnotationType; @@ -40,46 +42,45 @@ class AnnotatedDelegate implements Annotated { this.annotations = delegate.getAnnotations(); } - @Override public <T extends Annotation> T getAnnotation(Class<T> type) { return annotations.stream() .filter(isAnnotationType(type)) - .findAny() + .findFirst() .map(type::cast) .orElse(null); } - @Override + public <T extends Annotation> Set<T> getAnnotations(Class<T> type) { + return annotations.stream() + .filter(isAnnotationType(type)) + .map(type::cast) + .collect(toSet()); + } + public Set<Annotation> getAnnotations() { return annotations; } - @Override public Type getBaseType() { return delegate.getBaseType(); } - @Override public Set<Type> getTypeClosure() { return delegate.getTypeClosure(); } - @Override public boolean isAnnotationPresent(Class<? extends Annotation> type) { return annotations.stream().anyMatch(isAnnotationType(type)); } - @Override public String toString() { return delegate.toString(); } - @Override public int hashCode() { return delegate.hashCode(); } - @Override public boolean equals(Object object) { return delegate.equals(object); } http://git-wip-us.apache.org/repos/asf/camel/blob/c1a3820d/components/camel-cdi/src/main/java/org/apache/camel/cdi/SyntheticAnnotated.java ---------------------------------------------------------------------- diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/SyntheticAnnotated.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/SyntheticAnnotated.java index 0faafde..9afa412 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/SyntheticAnnotated.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/SyntheticAnnotated.java @@ -24,6 +24,7 @@ import java.util.Set; import static java.util.Arrays.asList; import static java.util.Collections.unmodifiableSet; +import static java.util.stream.Collectors.toSet; import javax.enterprise.inject.spi.Annotated; @@ -52,31 +53,33 @@ final class SyntheticAnnotated implements Annotated { annotations.add(annotation); } - @Override public Type getBaseType() { return type; } - @Override public Set<Type> getTypeClosure() { return unmodifiableSet(types); } - @Override public Set<Annotation> getAnnotations() { return unmodifiableSet(annotations); } - @Override public <T extends Annotation> T getAnnotation(Class<T> type) { return annotations.stream() .filter(isAnnotationType(type)) - .findAny() + .findFirst() .map(type::cast) .orElse(null); } - @Override + public <T extends Annotation> Set<T> getAnnotations(Class<T> type) { + return annotations.stream() + .filter(isAnnotationType(type)) + .map(type::cast) + .collect(toSet()); + } + public boolean isAnnotationPresent(Class<? extends Annotation> type) { return annotations.stream().anyMatch(isAnnotationType(type)); }