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));
}