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 baea4f2ca2 Utility class modernization
baea4f2ca2 is described below

commit baea4f2ca211286a9f2d5c1d82884ddab16b170f
Author: James Bognar <[email protected]>
AuthorDate: Thu Nov 6 15:09:11 2025 -0500

    Utility class modernization
---
 .../apache/juneau/common/reflect/ClassInfo.java    | 13 -----------
 .../org/apache/juneau/httppart/HttpPartSchema.java |  2 +-
 .../juneau/http/remote/RrpcInterfaceMeta.java      |  2 +-
 .../juneau/rest/debug/BasicDebugEnablement.java    | 27 ++++++++--------------
 .../apache/juneau/rest/servlet/RestServlet.java    |  4 +++-
 .../rest/swagger/BasicSwaggerProviderSession.java  |  4 ++--
 6 files changed, 17 insertions(+), 35 deletions(-)

diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
index 27428067c7..9aa5d4acd2 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
@@ -436,19 +436,6 @@ public class ClassInfo extends ElementInfo implements 
Annotatable {
                return this;
        }
 
-       /**
-        * Performs an action on all matching annotations on this class and 
superclasses/interfaces.
-        *
-        * @param <A> The annotation type to look for.
-        * @param type The annotation to look for.
-        * @param filter A predicate to apply to the entries to determine if 
action should be performed.  Can be <jk>null</jk>.
-        * @param action An action to perform on the entry.
-        * @return This object.
-        */
-       public <A extends Annotation> ClassInfo forEachAnnotation(Class<A> 
type, Predicate<A> filter, Consumer<A> action) {
-               return forEachAnnotation(null, type, filter, action);
-       }
-
        /**
         * Returns all fields on this class and all parent classes.
         *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index f10406a68e..d1e47c9c31 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -2547,7 +2547,7 @@ public class HttpPartSchema {
 
                Builder apply(Class<? extends Annotation> c, 
java.lang.reflect.Type t) {
                        if (t instanceof Class<?>) {
-                               ClassInfo.of((Class<?>)t).forEachAnnotation(c, 
x -> true, this::apply);
+                               
rstream(ClassInfo.of((Class<?>)t).getAnnotationInfos()).map(x -> 
x.cast(c)).filter(Objects::nonNull).map(AnnotationInfo::inner).forEach(this::apply);
                        } else if (Value.isType(t)) {
                                apply(c, getValueParameterType(t));
                        }
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
index 28ced4863c..13a364c584 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
@@ -58,7 +58,7 @@ public class RrpcInterfaceMeta {
                Value<String> path = Value.of("");
                var ci = ClassInfo.of(c);
 
-               ci.forEachAnnotation(Remote.class, x -> isNotEmpty(x.path()), x 
-> path.set(trimSlashes(x.path())));
+               rstream(ci.getAnnotationInfos()).map(x -> 
x.cast(Remote.class)).filter(Objects::nonNull).map(AnnotationInfo::inner).filter(x
 -> isNotEmpty(x.path())).forEach(x -> path.set(trimSlashes(x.path())));
 
                Map<Method,RrpcInterfaceMethodMeta> methods = map();
                ci.getPublicMethods().stream().forEach(x -> 
methods.put(x.inner(), new RrpcInterfaceMethodMeta(uri, x.inner())));
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java
index d4bca5b4ae..de1c359533 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java
@@ -20,6 +20,7 @@ import static 
org.apache.juneau.common.utils.CollectionUtils.*;
 import static org.apache.juneau.common.utils.StringUtils.*;
 import static org.apache.juneau.rest.annotation.RestOpAnnotation.*;
 
+import java.util.*;
 import java.util.stream.*;
 
 import org.apache.juneau.*;
@@ -74,15 +75,11 @@ public class BasicDebugEnablement extends DebugEnablement {
 
                // Gather @Rest(debug) settings.
                // @formatter:off
-               ci.forEachAnnotation(
-                       Rest.class,
-                       x -> true,
-                       x -> {
-                               String x2 = varResolver.resolve(x.debug());
-                               if (! x2.isEmpty())
-                                       b.enable(Enablement.fromString(x2), 
ci.getNameFull());
-                       }
-               );
+               rstream(ci.getAnnotationInfos()).map(x -> 
x.cast(Rest.class)).filter(Objects::nonNull).map(AnnotationInfo::inner).forEach(x
 -> {
+                       String x2 = varResolver.resolve(x.debug());
+                       if (! x2.isEmpty())
+                               b.enable(Enablement.fromString(x2), 
ci.getNameFull());
+               });
                // @formatter:on
 
                // Gather @RestOp(debug) settings.
@@ -105,21 +102,17 @@ public class BasicDebugEnablement extends DebugEnablement 
{
 
                // Gather @Rest(debugOn) settings.
                // @formatter:off
-               ci.forEachAnnotation(
-                       Rest.class,
-                       x -> true,
-                       x -> {
+               rstream(ci.getAnnotationInfos()).map(x -> 
x.cast(Rest.class)).filter(Objects::nonNull).map(AnnotationInfo::inner).forEach(x
 -> {
                        String x2 = varResolver.resolve(x.debugOn());
                        for (var e : splitMap(x2, true).entrySet()) {
                                var k = e.getKey();
                                var v = e.getValue();
                                if (v.isEmpty())
                                        v = "ALWAYS";
-                                       if (! k.isEmpty())
-                                               
b.enable(Enablement.fromString(v), k);
-                               }
+                               if (! k.isEmpty())
+                                       b.enable(Enablement.fromString(v), k);
                        }
-               );
+               });
                // @formatter:on
 
                return b;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
index 3e037844fb..172482fd1c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
@@ -18,12 +18,14 @@ package org.apache.juneau.rest.servlet;
 
 import static jakarta.servlet.http.HttpServletResponse.*;
 import static java.util.logging.Level.*;
+import static org.apache.juneau.common.utils.CollectionUtils.*;
 import static org.apache.juneau.common.utils.StringUtils.*;
 import static org.apache.juneau.common.utils.ThrowableUtils.*;
 import static org.apache.juneau.common.utils.Utils.*;
 
 import java.io.*;
 import java.text.*;
+import java.util.*;
 import java.util.concurrent.atomic.*;
 import java.util.function.*;
 import java.util.logging.*;
@@ -113,7 +115,7 @@ public abstract class RestServlet extends HttpServlet {
                        return context.getFullPath();
                var ci = ClassInfo.of(getClass());
                Value<String> path = Value.empty();
-               ci.forEachAnnotation(Rest.class, x -> isNotEmpty(x.path()), x 
-> path.set(trimSlashes(x.path())));
+               rstream(ci.getAnnotationInfos()).map(x -> 
x.cast(Rest.class)).filter(Objects::nonNull).map(AnnotationInfo::inner).filter(x
 -> isNotEmpty(x.path())).forEach(x -> path.set(trimSlashes(x.path())));
                return path.orElse("");
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
index 1e1fb50b0e..d327cf9f62 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
@@ -456,7 +456,7 @@ public class BasicSwaggerProviderSession {
                                                        for (var code : codes) {
                                                                JsonMap header 
= responses.getMap(String.valueOf(code), true).getMap("headers", 
true).getMap(ha, true);
                                                                
ecmi.forEachAnnotation(context, Schema.class, x -> true, x -> merge(header, x));
-                                                               
ecmi.getReturnType().unwrap(Value.class, 
Optional.class).forEachAnnotation(Schema.class, x -> true, x -> merge(header, 
x));
+                                                               
rstream(ecmi.getReturnType().unwrap(Value.class, 
Optional.class).getAnnotationInfos()).map(x -> 
x.cast(Schema.class)).filter(Objects::nonNull).map(AnnotationInfo::inner).forEach(x
 -> merge(header, x));
                                                                
pushupSchemaFields(RESPONSE_HEADER, header, getSchema(header.getMap("schema"), 
ecmi.getReturnType().unwrap(Value.class, Optional.class).innerType(), bs));
                                                        }
                                                }
@@ -492,7 +492,7 @@ public class BasicSwaggerProviderSession {
                                                                for (var code : 
codes) {
                                                                        JsonMap 
header = responses.getMap(String.valueOf(code), true).getMap("headers", 
true).getMap(ha, true);
                                                                        
ecmi.forEachAnnotation(context, Schema.class, x -> true, x -> merge(header, x));
-                                                                       
ecmi.getReturnType().unwrap(Value.class, 
Optional.class).forEachAnnotation(Schema.class, x -> true, x -> merge(header, 
x));
+                                                                       
rstream(ecmi.getReturnType().unwrap(Value.class, 
Optional.class).getAnnotationInfos()).map(x -> 
x.cast(Schema.class)).filter(Objects::nonNull).map(AnnotationInfo::inner).forEach(x
 -> merge(header, x));
                                                                        
merge(header, a.schema());
                                                                        
pushupSchemaFields(RESPONSE_HEADER, header, getSchema(header, 
ecmi.getReturnType().innerType(), bs));
                                                                }

Reply via email to