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