This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new f9afdc0034 org.apache.juneau.common.reflect API improvements
f9afdc0034 is described below

commit f9afdc0034af125c57ce281a671adf1574bb1ddb
Author: James Bognar <[email protected]>
AuthorDate: Thu Nov 20 09:26:28 2025 -0500

    org.apache.juneau.common.reflect API improvements
---
 .../juneau/common/reflect/AnnotationProvider.java       |  2 +-
 .../main/java/org/apache/juneau/BeanPropertyMeta.java   | 17 +++++++++--------
 .../apache/juneau/common/reflect/MethodInfo_Test.java   |  6 ++----
 3 files changed, 12 insertions(+), 13 deletions(-)

diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
index 4789ba1aad..fdde9aebca 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
@@ -669,7 +669,7 @@ public class AnnotationProvider {
                assertArgNotNull("type", type);
                assertArgNotNull("method", method);
                if (traversals.length == 0)
-                       traversals = a(SELF, MATCHING_METHODS, RETURN_TYPE, 
PACKAGE);
+                       traversals = a(SELF, MATCHING_METHODS, DECLARING_CLASS, 
RETURN_TYPE, PACKAGE);
 
                return Arrays.stream(traversals)
                        
.sorted(Comparator.comparingInt(AnnotationTraversal::getOrder))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 6803a1a637..837eb714a9 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -16,6 +16,7 @@
  */
 package org.apache.juneau;
 
+import static org.apache.juneau.common.reflect.AnnotationTraversal.*;
 import static org.apache.juneau.common.utils.ClassUtils.*;
 import static org.apache.juneau.common.utils.CollectionUtils.*;
 import static org.apache.juneau.common.utils.StringUtils.*;
@@ -643,8 +644,8 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
                BeanContext bc = beanContext;
                if (nn(a)) {
                        if (nn(field)) bc.getAnnotationProvider().find(a, 
FieldInfo.of(field)).map(x -> x.inner()).filter(filter).forEach(action);
-                       if (nn(getter)) bc.getAnnotationProvider().find(a, 
MethodInfo.of(getter)).map(x -> x.inner()).filter(filter).forEach(action);
-                       if (nn(setter)) bc.getAnnotationProvider().find(a, 
MethodInfo.of(setter)).map(x -> x.inner()).filter(filter).forEach(action);
+                       if (nn(getter)) bc.getAnnotationProvider().find(a, 
MethodInfo.of(getter), SELF, MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x -> 
x.inner()).filter(filter).forEach(action);
+                       if (nn(setter)) bc.getAnnotationProvider().find(a, 
MethodInfo.of(setter), SELF, MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x -> 
x.inner()).filter(filter).forEach(action);
                }
                return this;
        }
@@ -696,26 +697,26 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
                if (nn(gi)) {
                        // Walk up the inheritance hierarchy for the getter 
method
                        forEachParentMethod(getter, parentGetter -> {
-                               ap.find(a, MethodInfo.of(parentGetter)).map(x 
-> x.inner()).forEach(x -> l.add(x));
+                               ap.find(a, MethodInfo.of(parentGetter), SELF, 
MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x -> x.inner()).forEach(x -> 
l.add(x));
                        });
-                       ap.find(a, gi).map(x -> x.inner()).forEach(x -> 
l.add(x));
+                       ap.find(a, gi, SELF, MATCHING_METHODS, RETURN_TYPE, 
PACKAGE).map(x -> x.inner()).forEach(x -> l.add(x));
                        ap.findTopDown(a, gi.getReturnType()).map(x -> 
x.inner()).forEach(x -> l.add(x));
                }
                if (nn(setter)) {
                        // Walk up the inheritance hierarchy for the setter 
method
                        forEachParentMethod(setter, parentSetter -> {
-                               ap.find(a, MethodInfo.of(parentSetter)).map(x 
-> x.inner()).forEach(x -> l.add(x));
+                               ap.find(a, MethodInfo.of(parentSetter), SELF, 
MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x -> x.inner()).forEach(x -> 
l.add(x));
                        });
-                       ap.find(a, si).map(x -> x.inner()).forEach(x -> 
l.add(x));
+                       ap.find(a, si, SELF, MATCHING_METHODS, RETURN_TYPE, 
PACKAGE).map(x -> x.inner()).forEach(x -> l.add(x));
                        ap.findTopDown(a, 
ClassInfo.of(setter.getReturnType())).map(x -> x.inner()).forEach(x -> 
l.add(x));
                }
                if (nn(extraKeys)) {
                        MethodInfo eki = MethodInfo.of(extraKeys);
                        // Walk up the inheritance hierarchy for the extraKeys 
method
                        forEachParentMethod(extraKeys, parentExtraKeys -> {
-                               ap.find(a, 
MethodInfo.of(parentExtraKeys)).map(x -> x.inner()).forEach(x -> l.add(x));
+                               ap.find(a, MethodInfo.of(parentExtraKeys), 
SELF, MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x -> x.inner()).forEach(x -> 
l.add(x));
                        });
-                       ap.find(a, eki).map(x -> x.inner()).filter(x -> 
true).forEach(x -> l.add(x));
+                       ap.find(a, eki, SELF, MATCHING_METHODS, RETURN_TYPE, 
PACKAGE).map(x -> x.inner()).filter(x -> true).forEach(x -> l.add(x));
                        ap.findTopDown(a, 
ClassInfo.of(extraKeys.getReturnType())).map(x -> x.inner()).forEach(x -> 
l.add(x));
                }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
index f08540c2a8..11fed59691 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
@@ -30,6 +30,7 @@ import java.util.stream.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
+import org.apache.juneau.common.utils.*;
 import org.apache.juneau.svl.*;
 import org.junit.jupiter.api.*;
 
@@ -351,10 +352,7 @@ class MethodInfo_Test extends TestBase {
        }
 
        private static List<A> annotations(MethodInfo mi, Class<? extends 
Annotation> a) {
-               var l = new ArrayList<A>();
-               rstream(mi.getAllAnnotations()).map(x -> 
x.cast(a)).filter(Objects::nonNull).map(AnnotationInfo::inner)
-                       .forEach(x -> l.add((A)x));
-               return l;
+               return AnnotationProvider.INSTANCE.findTopDown(a, 
mi).map(AnnotationInfo::inner).map(PredicateUtils.peek()).map(x -> 
(A)x).collect(Collectors.toList());
        }
 
        @Test void getAnnotationAny() {

Reply via email to