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

commit 56045bf54a52db84e0da129cbd4d192ff5aa657a
Author: James Bognar <[email protected]>
AuthorDate: Tue Dec 9 11:28:29 2025 -0500

    Marshall module improvements
---
 .../java/org/apache/juneau/jena/RdfBeanMeta.java   |  2 +-
 .../src/main/java/org/apache/juneau/BeanMeta.java  | 31 +---------------------
 .../apache/juneau/csv/CsvSerializerSession.java    | 10 +++++--
 .../jsonschema/JsonSchemaGeneratorSession.java     |  2 +-
 .../java/org/apache/juneau/xml/XmlBeanMeta.java    |  2 +-
 .../apache/juneau/xml/XmlSerializerSession.java    |  2 +-
 .../apache/juneau/rest/beans/BeanDescription.java  |  4 +--
 7 files changed, 15 insertions(+), 38 deletions(-)

diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
index 8860cebc5c..1bf75fac6a 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
@@ -43,7 +43,7 @@ public class RdfBeanMeta extends ExtendedBeanMeta {
         */
        public RdfBeanMeta(BeanMeta<?> beanMeta, RdfMetaProvider mp) {
                super(beanMeta);
-               this.beanUriProperty = beanMeta.firstProperty(x -> 
mp.getRdfBeanPropertyMeta(x).isBeanUri(), x -> x).orElse(null);
+               this.beanUriProperty = 
beanMeta.getProperties().values().stream().filter(x -> 
mp.getRdfBeanPropertyMeta(x).isBeanUri()).findFirst().orElse(null);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index 962c61a61c..b6df786ada 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -889,7 +889,7 @@ public class BeanMeta<T> {
                beanProxyInvocationHandler = 
memoize(()->ctx.isUseInterfaceProxies() && c.isInterface() ? new 
BeanProxyInvocationHandler<>(this) : null);
        }
 
-       protected Map<String,BeanPropertyMeta> getProperties() {
+       public Map<String,BeanPropertyMeta> getProperties() {
                return properties;
        }
 
@@ -914,28 +914,6 @@ public class BeanMeta<T> {
                return (o instanceof BeanMeta<?> o2) && eq(this, o2, (x, y) -> 
eq(x.classMeta, y.classMeta));
        }
 
-       /**
-        * Performs a function on the first property that matches the specified 
filter.
-        *
-        * @param <T2> The type to convert the property to.
-        * @param filter The filter to apply.
-        * @param function The function to apply to the matching property.
-        * @return The result of the function.  Never <jk>null</jk>.
-        */
-       public <T2> Optional<T2> firstProperty(Predicate<BeanPropertyMeta> 
filter, Function<BeanPropertyMeta,T2> function) {
-               return 
properties.values().stream().filter(filter).map(function).findFirst();
-       }
-
-       /**
-        * Performs an action on all matching properties.
-        *
-        * @param filter The filter to apply.
-        * @param action The action to apply.
-        */
-       public void forEachProperty(Predicate<BeanPropertyMeta> filter, 
Consumer<BeanPropertyMeta> action) {
-               properties.values().stream().filter(x -> filter == null ? true 
: filter.test(x)).forEach(action);
-       }
-
        /**
         * Returns the {@link ClassMeta} of this bean.
         *
@@ -999,13 +977,6 @@ public class BeanMeta<T> {
                return bpm;
        }
 
-       /**
-        * Returns the metadata on all properties associated with this bean.
-        *
-        * @return Metadata on all properties associated with this bean.
-        */
-       public Collection<BeanPropertyMeta> getPropertyMetas() { return 
properties.values(); }
-
        /**
         * Returns a mock bean property that resolves to the name 
<js>"_type"</js> and whose value always resolves to the
         * dictionary name of the bean.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
index 9fa353381b..22a07ec907 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
@@ -246,15 +246,21 @@ public class CsvSerializerSession extends 
WriterSerializerSession {
                                if (entryType.isBean()) {
                                        var bm = entryType.getBeanMeta();
                                        var addComma = Flag.create();
-                                       
bm.forEachProperty(BeanPropertyMeta::canRead, x -> {
+
+                                       
bm.getProperties().values().stream().filter(BeanPropertyMeta::canRead).forEach(x
 -> {
                                                addComma.ifSet(() -> 
w.w(',')).set();
                                                w.writeEntry(x.getName());
                                        });
+
+//                                     
bm.forEachProperty(BeanPropertyMeta::canRead, x -> {
+//                                             addComma.ifSet(() -> 
w.w(',')).set();
+//                                             w.writeEntry(x.getName());
+//                                     });
                                        w.append('\n');
                                        l.forEach(x -> {
                                                var addComma2 = Flag.create();
                                                BeanMap<?> bean = toBeanMap(x);
-                                               
bm.forEachProperty(BeanPropertyMeta::canRead, y -> {
+                                               
bm.getProperties().values().stream().filter(BeanPropertyMeta::canRead).forEach(y
 -> {
                                                        addComma2.ifSet(() -> 
w.w(',')).set();
                                                        // Bean property values 
are already swapped by BeanPropertyMeta.get() via toSerializedForm()
                                                        var value = y.get(bean, 
y.getName());
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index 0b28eb59f2..6a9ec4c6ac 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -420,7 +420,7 @@ public class JsonSchemaGeneratorSession extends 
BeanTraverseSession {
                                BeanMeta bm = getBeanMeta(sType.inner());
                                if (nn(pNames))
                                        bm = new BeanMetaFiltered(bm, pNames);
-                               for (Iterator<BeanPropertyMeta> i = 
bm.getPropertyMetas().iterator(); i.hasNext();) {
+                               for (Iterator<BeanPropertyMeta> i = 
bm.getProperties().values().iterator(); i.hasNext();) {
                                        BeanPropertyMeta p = i.next();
                                        if (p.canRead())
                                                properties.put(p.getName(), 
getSchema(p.getClassMeta(), p.getName(), p.getProperties(), exampleAdded, 
descriptionAdded, getJsonSchemaBeanPropertyMeta(p)));
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
index d654e42fbc..49ea30bcf6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
@@ -61,7 +61,7 @@ public class XmlBeanMeta extends ExtendedBeanMeta {
                                        throw bex(c, "Invalid format specified 
in @Xml annotation on bean: {0}.  Must be one of the following: 
DEFAULT,ATTRS,ELEMENTS,VOID", x.format());
                        });
 
-                       beanMeta.forEachProperty(null, p -> {
+                       beanMeta.getProperties().values().forEach(p -> {
                                var xf = 
mp.getXmlBeanPropertyMeta(p).getXmlFormat();
                                var pcm = p.getClassMeta();
                                if (xf == ATTR) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index 03d0de033b..f55f9c3319 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -615,7 +615,7 @@ public class XmlSerializerSession extends 
WriterSerializerSession {
                                }
 
                                if (innerType.isBean()) {
-                                       
innerType.getBeanMeta().forEachProperty(BeanPropertyMeta::canRead, x -> {
+                                       
innerType.getBeanMeta().getProperties().values().stream().filter(BeanPropertyMeta::canRead).forEach(x
 -> {
                                                
ns.set(getXmlBeanPropertyMeta(x).getNamespace());
                                                if (ns.isPresent() && 
nn(ns.get().uri))
                                                        addNamespace(ns.get());
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
index fd094cf9ad..e6cb65d32b 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
@@ -88,9 +88,9 @@ public class BeanDescription {
                BeanMeta<?> bm = BeanContext.DEFAULT.getBeanMeta(c);
                if (bm == null)
                        throw rex("Class ''{0}'' is not a valid bean.", cn(c));
-               properties = new 
BeanPropertyDescription[bm.getPropertyMetas().size()];
+               properties = new 
BeanPropertyDescription[bm.getProperties().size()];
                int i = 0;
-               for (var pm : bm.getPropertyMetas())
+               for (var pm : bm.getProperties().values())
                        properties[i++] = new 
BeanPropertyDescription(pm.getName(), pm.getClassMeta());
        }
 }
\ No newline at end of file

Reply via email to