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 c23b3b3898 Marshall module improvements
c23b3b3898 is described below

commit c23b3b3898552dfa25aa2cf1ff36bb40ad4f47d2
Author: James Bognar <[email protected]>
AuthorDate: Fri Dec 12 18:20:28 2025 -0500

    Marshall module improvements
---
 .../org/apache/juneau/jena/RdfBeanPropertyMeta.java | 13 +++++++++++--
 .../java/org/apache/juneau/BeanPropertyMeta.java    |  1 -
 .../org/apache/juneau/xml/XmlBeanPropertyMeta.java  | 12 ++++++++++--
 .../apache/juneau/AnnotationInheritance_Test.java   | 21 +++++++++++++++++----
 4 files changed, 38 insertions(+), 9 deletions(-)

diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
index 976a0c2555..961e3701ab 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
@@ -16,6 +16,10 @@
  */
 package org.apache.juneau.jena;
 
+import static org.apache.juneau.commons.utils.CollectionUtils.*;
+
+import java.util.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.jena.annotation.*;
 import org.apache.juneau.xml.*;
@@ -49,8 +53,13 @@ public class RdfBeanPropertyMeta extends 
ExtendedBeanPropertyMeta {
        public RdfBeanPropertyMeta(BeanPropertyMeta bpm, RdfMetaProvider mp) {
                super(bpm);
 
-               var rdfs = bpm.getAllAnnotationsParentFirst(Rdf.class);
-               var schemas = bpm.getAllAnnotationsParentFirst(RdfSchema.class);
+               var ap = 
bpm.getClassMeta().getBeanContext().getAnnotationProvider();
+               var rdfs = new ArrayList<Rdf>();
+               rstream(ap.find(Rdf.class, 
bpm.getBeanMeta().getClassMeta())).forEach(x -> rdfs.add(x.inner()));
+               rdfs.addAll(bpm.getAllAnnotationsParentFirst(Rdf.class));
+               var schemas = new ArrayList<RdfSchema>();
+               rstream(ap.find(RdfSchema.class, 
bpm.getBeanMeta().getClassMeta())).forEach(x -> schemas.add(x.inner()));
+               
schemas.addAll(bpm.getAllAnnotationsParentFirst(RdfSchema.class));
 
                rdfs.forEach(x -> {
                        if (x.collectionFormat() != RdfCollectionFormat.DEFAULT)
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 05abc396fc..8bb1ce7349 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
@@ -781,7 +781,6 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
                var ap = bc.getAnnotationProvider();
                if (a == null)
                        return l;
-               rstream(ap.find(a, getBeanMeta().getClassMeta())).forEach(x -> 
l.add(x.inner()));
                if (nn(field)) {
                        ap.find(a, field).forEach(x -> l.add(x.inner()));
                        rstream(ap.find(a, field.getFieldType())).forEach(x -> 
l.add(x.inner()));
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
index 1f11b82a11..98c81ca479 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
@@ -16,9 +16,12 @@
  */
 package org.apache.juneau.xml;
 
+import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.ThrowableUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
+import java.util.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.commons.reflect.*;
 import org.apache.juneau.xml.annotation.*;
@@ -107,8 +110,13 @@ public class XmlBeanPropertyMeta extends 
ExtendedBeanPropertyMeta {
                var cmBean = bpm.getBeanMeta().getClassMeta();
                var name = bpm.getName();
 
-               var xmls = bpm.getAllAnnotationsParentFirst(Xml.class);
-               var schemas = bpm.getAllAnnotationsParentFirst(XmlSchema.class);
+               var ap = 
bpm.getClassMeta().getBeanContext().getAnnotationProvider();
+               var xmls = new ArrayList<Xml>();
+               rstream(ap.find(Xml.class, 
bpm.getBeanMeta().getClassMeta())).forEach(x -> xmls.add(x.inner()));
+               xmls.addAll(bpm.getAllAnnotationsParentFirst(Xml.class));
+               var schemas = new ArrayList<XmlSchema>();
+               rstream(ap.find(XmlSchema.class, 
bpm.getBeanMeta().getClassMeta())).forEach(x -> schemas.add(x.inner()));
+               
schemas.addAll(bpm.getAllAnnotationsParentFirst(XmlSchema.class));
                namespace = XmlUtils.findNamespace(xmls, schemas);
 
                if (xmlFormat == XmlFormat.DEFAULT)
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/AnnotationInheritance_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/AnnotationInheritance_Test.java
index f4430fc959..a7dd07d205 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/AnnotationInheritance_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/AnnotationInheritance_Test.java
@@ -16,6 +16,7 @@
  */
 package org.apache.juneau;
 
+import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.TestUtils.*;
 import static org.apache.juneau.junit.bct.BctAssertions.*;
 import static org.junit.jupiter.api.Assertions.*;
@@ -74,7 +75,10 @@ class AnnotationInheritance_Test extends TestBase {
                assertNotNull(prop, "Property 'v' should exist (inherited from 
@Beanp in parent)");
 
                // Verify the annotation is inherited
-               List<Beanp> beanpList = 
prop.getAllAnnotationsParentFirst(Beanp.class);
+               var ap = 
prop.getClassMeta().getBeanContext().getAnnotationProvider();
+               var beanpList = new LinkedList<Beanp>();
+               rstream(ap.find(Beanp.class, 
prop.getBeanMeta().getClassMeta())).forEach(x -> beanpList.add(x.inner()));
+               
beanpList.addAll(prop.getAllAnnotationsParentFirst(Beanp.class));
                assertNotEmpty(beanpList);
        }
 
@@ -122,7 +126,10 @@ class AnnotationInheritance_Test extends TestBase {
                assertNotNull(prop, "Property 'i' should exist (inherited from 
@Beanp)");
 
                // Check that @Xml annotations are inherited
-               List<Xml> xmlAnnotations = 
prop.getAllAnnotationsParentFirst(Xml.class);
+               var ap = 
prop.getClassMeta().getBeanContext().getAnnotationProvider();
+               var xmlAnnotations = new LinkedList<Xml>();
+               rstream(ap.find(Xml.class, 
prop.getBeanMeta().getClassMeta())).forEach(x -> xmlAnnotations.add(x.inner()));
+               
xmlAnnotations.addAll(prop.getAllAnnotationsParentFirst(Xml.class));
                assertNotEmpty(xmlAnnotations);
 
                var xml = xmlAnnotations.get(0);
@@ -177,7 +184,10 @@ class AnnotationInheritance_Test extends TestBase {
                assertNotNull(prop, "Property 'n' should exist");
 
                // Verify all @Beanp attributes are inherited
-               List<Beanp> beanpAnnotations = 
prop.getAllAnnotationsParentFirst(Beanp.class);
+               var ap = 
prop.getClassMeta().getBeanContext().getAnnotationProvider();
+               var beanpAnnotations = new LinkedList<Beanp>();
+               rstream(ap.find(Beanp.class, 
prop.getBeanMeta().getClassMeta())).forEach(x -> 
beanpAnnotations.add(x.inner()));
+               
beanpAnnotations.addAll(prop.getAllAnnotationsParentFirst(Beanp.class));
                assertNotEmpty(beanpAnnotations);
 
                var beanp = beanpAnnotations.get(0);
@@ -229,7 +239,10 @@ class AnnotationInheritance_Test extends TestBase {
                assertNotNull(prop, "Property 'c' should exist through 
multi-level inheritance");
 
                // Verify annotation is inherited through multiple levels
-               List<Beanp> beanpAnnotations = 
prop.getAllAnnotationsParentFirst(Beanp.class);
+               var ap = 
prop.getClassMeta().getBeanContext().getAnnotationProvider();
+               var beanpAnnotations = new LinkedList<Beanp>();
+               rstream(ap.find(Beanp.class, 
prop.getBeanMeta().getClassMeta())).forEach(x -> 
beanpAnnotations.add(x.inner()));
+               
beanpAnnotations.addAll(prop.getAllAnnotationsParentFirst(Beanp.class));
                assertNotEmpty(beanpAnnotations);
 
                // Note: Both "c" and "count" properties exist due to 
getter/setter property resolution

Reply via email to