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 424c5d048 Test modernization, clean up utility classes.
424c5d048 is described below

commit 424c5d0483f45e3eac9d8c47de582b66799d533b
Author: James Bognar <[email protected]>
AuthorDate: Mon Aug 25 11:15:52 2025 -0400

    Test modernization, clean up utility classes.
---
 .../org/apache/juneau/common/internal/Utils.java   | 122 +++++++++++++++++++++
 .../org/apache/juneau/BeanTraverseSession.java     |   3 +-
 .../apache/juneau/annotation/SchemaAnnotation.java |   8 +-
 .../juneau/annotation/SubItemsAnnotation.java      |   4 +-
 .../main/java/org/apache/juneau/cp/BeanStore.java  |   3 +-
 .../main/java/org/apache/juneau/cp/Messages.java   |   2 +-
 .../apache/juneau/html/BasicHtmlDocTemplate.java   |   5 +-
 .../apache/juneau/html/HtmlSerializerSession.java  |   3 +-
 .../org/apache/juneau/httppart/HttpPartSchema.java |   6 +-
 .../org/apache/juneau/internal/ObjectUtils.java    | 122 ---------------------
 .../jsonschema/JsonSchemaGeneratorSession.java     |   2 +-
 .../apache/juneau/oapi/OpenApiParserSession.java   |   3 +-
 .../juneau/oapi/OpenApiSerializerSession.java      |   2 +-
 .../apache/juneau/microservice/Microservice.java   |  21 ++--
 .../microservice/jetty/JettyMicroservice.java      |   7 +-
 .../apache/juneau/rest/client/ResponseContent.java |   2 +-
 .../org/apache/juneau/http/BasicStatusLine.java    |   3 +-
 .../org/apache/juneau/http/header/BasicHeader.java |   2 +-
 .../apache/juneau/rest/debug/DebugEnablement.java  |   9 +-
 .../org/apache/juneau/rest/logger/CallLogger.java  |  20 ++--
 .../org/apache/juneau/rest/stats/ThrownStore.java  |   3 +-
 .../rest/swagger/BasicSwaggerProviderSession.java  |  18 +--
 22 files changed, 190 insertions(+), 180 deletions(-)

diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/internal/Utils.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/internal/Utils.java
index 5ca161f13..eb6be6ae5 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/internal/Utils.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/internal/Utils.java
@@ -418,4 +418,126 @@ public class Utils {
        public static <T> Optional<T> empty() {
                return Optional.empty();
        }
+
+       /**
+        * Returns the first non-null value in the specified array
+        *
+        * @param <T> The value types.
+        * @param t The values to check.
+        * @return The first non-null value, or <jk>null</jk> if the array is 
null or empty or contains only <jk>null</jk> values.
+        */
+       @SafeVarargs
+       public static <T> T firstNonNull(T... t) {
+               if (t != null)
+                       for (T tt : t)
+                               if (tt != null)
+                                       return tt;
+               return null;
+       }
+
+       /**
+        * Casts an object to a specific type if it's an instance of that type.
+        *
+        * @param <T> The type to cast to.
+        * @param c The type to cast to.
+        * @param o The object to cast to.
+        * @return The cast object, or <jk>null</jk> if the object wasn't the 
specified type.
+        */
+       public static <T> T cast(Class<T> c, Object o) {
+               return o != null && c.isInstance(o) ? c.cast(o) : null;
+       }
+
+       /**
+        * Returns <jk>true</jk> if the specified object is empty.
+        *
+        * <p>
+        * Return <jk>true</jk> if the value is any of the following:
+        * <ul>
+        *      <li><jk>null</jk>
+        *      <li>An empty Collection
+        *      <li>An empty Map
+        *      <li>An empty array
+        *      <li>An empty CharSequence
+        *      <li>An empty String when serialized to a string using {@link 
Object#toString()}.
+        * </ul>
+        *
+        * @param o The object to test.
+        * @return <jk>true</jk> if the specified object is empty.
+        */
+       @SuppressWarnings("rawtypes")
+       public static boolean isEmpty(Object o) {
+               if (o == null)
+                       return true;
+               if (o instanceof Collection)
+                       return ((Collection)o).isEmpty();
+               if (o instanceof Map)
+                       return ((Map)o).isEmpty();
+               if (o.getClass().isArray())
+                       return (Array.getLength(o) == 0);
+               return o.toString().isEmpty();
+       }
+
+       /**
+        * Returns <jk>true</jk> if the specified object is not <jk>null</jk>.
+        *
+        * @param <T> The value type.
+        * @param value The value being checked.
+        * @return <jk>true</jk> if the specified object is not <jk>null</jk>.
+        */
+       public static <T> boolean isNotNull(T value) {
+               return value != null;
+       }
+
+       /**
+        * If the specified object is an instance of the specified class, casts 
it to that type.
+        *
+        * @param <T> The class to cast to.
+        * @param o The object to cast.
+        * @param c The class to cast to.
+        * @return The cast object, or <jk>null</jk> if the object wasn't an 
instance of the specified class.
+        */
+       public static <T> T castOrNull(Object o, Class<T> c) {
+               if (c.isInstance(o))
+                       return c.cast(o);
+               return null;
+       }
+
+       /**
+        * Returns <jk>true</jk> if the specified boolean is not <jk>null</jk> 
and is <jk>true</jk>.
+        *
+        * @param value The value being checked.
+        * @return <jk>true</jk> if the specified boolean is not <jk>null</jk> 
and is <jk>true</jk>.
+        */
+       public static boolean isTrue(Boolean value) {
+               return value != null && value;
+       }
+
+       /**
+        * Returns <jk>true</jk> if the specified number is not <jk>null</jk> 
and not <c>-1</c>.
+        *
+        * @param <T> The value types.
+        * @param value The value being checked.
+        * @return <jk>true</jk> if the specified number is not <jk>null</jk> 
and not <c>-1</c>.
+        */
+       public static <T extends Number> boolean isNotMinusOne(T value) {
+               return value != null && value.intValue() != -1;
+       }
+
+       /**
+        * Returns <jk>true</jk> if the specified object is not <jk>null</jk> 
and not empty.
+        *
+        * Works on any of the following data types:  String, CharSequence, 
Collection, Map, array.
+        * All other types are stringified and then checked as a String.
+        *
+        * @param value The value being checked.
+        * @return <jk>true</jk> if the specified object is not <jk>null</jk> 
and not empty.
+        */
+       public static boolean isNotEmpty(Object value) {
+               if (value == null) return false;
+               if (value instanceof CharSequence x) return ! x.isEmpty();
+               if (value instanceof Collection<?> x) return ! x.isEmpty();
+               if (value instanceof Map<?,?> x) return ! x.isEmpty();
+               if (value.getClass().isArray()) return Array.getLength(value) > 
0;
+               return StringUtils.isNotEmpty(s(value));
+       }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
index 73b43d6fb..e0920a3de 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
@@ -21,6 +21,7 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.juneau.collections.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.internal.*;
 
 /**
@@ -382,7 +383,7 @@ public class BeanTraverseSession extends BeanSession {
         * @return A map, typically containing something like 
<c>{line:123,column:456,currentProperty:"foobar"}</c>
         */
        public final JsonMap getLastLocation() {
-               Predicate<Object> nn = ObjectUtils::isNotNull;
+               Predicate<Object> nn = Utils::isNotNull;
                Predicate<Collection<?>> nec = CollectionUtils::isNotEmpty;
                return JsonMap.create()
                        .appendIf(nn, "currentClass", currentClass)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
index f36d32fb7..dc8bf80a8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
@@ -99,8 +99,8 @@ public class SchemaAnnotation {
                Predicate<String> ne = StringUtils::isNotEmpty;
                Predicate<Collection<?>> nec = CollectionUtils::isNotEmpty;
                Predicate<Map<?,?>> nem = CollectionUtils::isNotEmpty;
-               Predicate<Boolean> nf = ObjectUtils::isTrue;
-               Predicate<Long> nm1 = ObjectUtils::isNotMinusOne;
+               Predicate<Boolean> nf = Utils::isTrue;
+               Predicate<Long> nm1 = Utils::isNotMinusOne;
                return m
                        .appendIf(nem, "additionalProperties", 
parseMap(a.additionalProperties()))
                        .appendIf(ne, "allOf", joinnl(a.allOf()))
@@ -142,8 +142,8 @@ public class SchemaAnnotation {
                Predicate<String> ne = StringUtils::isNotEmpty;
                Predicate<Collection<?>> nec = CollectionUtils::isNotEmpty;
                Predicate<Map<?,?>> nem = CollectionUtils::isNotEmpty;
-               Predicate<Boolean> nf = ObjectUtils::isTrue;
-               Predicate<Long> nm1 = ObjectUtils::isNotMinusOne;
+               Predicate<Boolean> nf = Utils::isTrue;
+               Predicate<Long> nm1 = Utils::isNotMinusOne;
                return m
                        .appendFirst(ne, "collectionFormat", 
a.collectionFormat(), a.cf())
                        .appendIf(ne, "default", joinnl(a._default(), a.df()))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
index bad8e345f..395c5c907 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
@@ -72,8 +72,8 @@ public class SubItemsAnnotation {
                Predicate<String> ne = StringUtils::isNotEmpty;
                Predicate<Collection<?>> nec = CollectionUtils::isNotEmpty;
                Predicate<Map<?,?>> nem = CollectionUtils::isNotEmpty;
-               Predicate<Boolean> nf = ObjectUtils::isTrue;
-               Predicate<Long> nm1 = ObjectUtils::isNotMinusOne;
+               Predicate<Boolean> nf = Utils::isTrue;
+               Predicate<Long> nm1 = Utils::isNotMinusOne;
                return om
                        .appendFirst(ne, "collectionFormat", 
a.collectionFormat(), a.cf())
                        .appendIf(ne, "default", joinnl(a._default(), a.df()))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
index 43e2bd7c0..687771936 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
@@ -25,6 +25,7 @@ import java.util.stream.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.collections.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.marshaller.*;
 import org.apache.juneau.reflect.*;
@@ -698,7 +699,7 @@ public class BeanStore {
        }
 
        private JsonMap properties() {
-               Predicate<Boolean> nf = ObjectUtils::isTrue;
+               Predicate<Boolean> nf = Utils::isTrue;
                return filteredMap()
                        .append("identity", ObjectUtils.identity(this))
                        .append("entries", 
entries.stream().map(BeanStoreEntry::properties).collect(toList()))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
index d1e1c7135..e737bca9c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
@@ -191,7 +191,7 @@ public class Messages extends ResourceBundle {
                                Builder x = null;
 
                                for (int i = mbl.length-1; i >= 0; i--) {
-                                       Class<?> c = 
firstNonNull(mbl[i].getA(), forClass);
+                                       Class<?> c = 
Utils.firstNonNull(mbl[i].getA(), forClass);
                                        String value = mbl[i].getB();
                                        if (isJsonObject(value, true)) {
                                                MessagesString ms;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/BasicHtmlDocTemplate.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/BasicHtmlDocTemplate.java
index 356ff610c..4de9c89d0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/BasicHtmlDocTemplate.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/BasicHtmlDocTemplate.java
@@ -13,6 +13,9 @@
 package org.apache.juneau.html;
 
 import static org.apache.juneau.html.AsideFloat.*;
+
+import org.apache.juneau.common.internal.*;
+
 import static org.apache.juneau.common.internal.StringUtils.*;
 
 import org.apache.juneau.internal.*;
@@ -256,7 +259,7 @@ public class BasicHtmlDocTemplate implements 
HtmlDocTemplate {
 
                if (o == null) {
                        w.append(6, "<null/>").nl(6);
-               } else if (ObjectUtils.isEmpty(o)){
+               } else if (Utils.isEmpty(o)){
                        String m = session.getNoResultsMessage();
                        if (exists(m))
                                w.append(6, session.resolve(m)).nl(6);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index 869dc3827..49c497ae5 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -25,6 +25,7 @@ import java.util.function.*;
 import java.util.regex.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.internal.*;
@@ -460,7 +461,7 @@ public class HtmlSerializerSession extends 
XmlSerializerSession {
                        HtmlClassMeta cHtml = getHtmlClassMeta(sType);
                        HtmlBeanPropertyMeta bpHtml = 
getHtmlBeanPropertyMeta(pMeta);
 
-                       HtmlRender render = firstNonNull(bpHtml.getRender(), 
cHtml.getRender());
+                       HtmlRender render = 
Utils.firstNonNull(bpHtml.getRender(), cHtml.getRender());
 
                        if (render != null) {
                                Object o2 = render.getContent(this, o);
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 8d7c2b63e..1e08b08a1 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
@@ -4088,9 +4088,9 @@ public class HttpPartSchema {
        public String toString() {
                try {
                        Predicate<Object> ne = x -> isNotEmpty(stringify(x));
-                       Predicate<Boolean> nf = ObjectUtils::isTrue;
-                       Predicate<Number> nm1 = ObjectUtils::isNotMinusOne;
-                       Predicate<Object> nn = ObjectUtils::isNotNull;
+                       Predicate<Boolean> nf = Utils::isTrue;
+                       Predicate<Number> nm1 = Utils::isNotMinusOne;
+                       Predicate<Object> nn = Utils::isNotNull;
                        JsonMap m = new JsonMap()
                                .appendIf(ne, "name", name)
                                .appendIf(ne, "type", type)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java
index d120a77cb..68baa6349 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java
@@ -30,20 +30,6 @@ import org.apache.juneau.reflect.*;
  */
 public class ObjectUtils {
 
-       /**
-        * If the specified object is an instance of the specified class, casts 
it to that type.
-        *
-        * @param <T> The class to cast to.
-        * @param o The object to cast.
-        * @param c The class to cast to.
-        * @return The cast object, or <jk>null</jk> if the object wasn't an 
instance of the specified class.
-        */
-       public static <T> T castOrNull(Object o, Class<T> c) {
-               if (c.isInstance(o))
-                       return c.cast(o);
-               return null;
-       }
-
        /**
         * Compares two objects for equality.
         *
@@ -199,64 +185,6 @@ public class ObjectUtils {
                return o;
        }
 
-       /**
-        * Returns <jk>true</jk> if the specified object is empty.
-        *
-        * <p>
-        * Return <jk>true</jk> if the value is any of the following:
-        * <ul>
-        *      <li><jk>null</jk>
-        *      <li>An empty Collection
-        *      <li>An empty Map
-        *      <li>An empty array
-        *      <li>An empty CharSequence
-        *      <li>An empty String when serialized to a string using {@link 
Object#toString()}.
-        * </ul>
-        *
-        * @param o The object to test.
-        * @return <jk>true</jk> if the specified object is empty.
-        */
-       @SuppressWarnings("rawtypes")
-       public static boolean isEmpty(Object o) {
-               if (o == null)
-                       return true;
-               if (o instanceof Collection)
-                       return ((Collection)o).isEmpty();
-               if (o instanceof Map)
-                       return ((Map)o).isEmpty();
-               if (o.getClass().isArray())
-                       return (Array.getLength(o) == 0);
-               return o.toString().isEmpty();
-       }
-
-       /**
-        * Returns the first non-null value in the specified array
-        *
-        * @param <T> The value types.
-        * @param t The values to check.
-        * @return The first non-null value, or <jk>null</jk> if the array is 
null or empty or contains only <jk>null</jk> values.
-        */
-       @SafeVarargs
-       public static <T> T firstNonNull(T... t) {
-               if (t != null)
-                       for (T tt : t)
-                               if (tt != null)
-                                       return tt;
-               return null;
-       }
-
-       /**
-        * Casts an object to a specific type if it's an instance of that type.
-        *
-        * @param <T> The type to cast to.
-        * @param c The type to cast to.
-        * @param o The object to cast to.
-        * @return The cast object, or <jk>null</jk> if the object wasn't the 
specified type.
-        */
-       public static <T> T cast(Class<T> c, Object o) {
-               return o != null && c.isInstance(o) ? c.cast(o) : null;
-       }
-
        /**
         * Converts the specified object into an identifiable string of the 
form "Class[identityHashCode]"
         * @param o The object to convert to a string.
@@ -299,54 +227,4 @@ public class ObjectUtils {
                methods.forEach((k,v) -> m.put(k, v.invoke(o)));
                return m;
        }
-
-       /**
-        * Returns <jk>true</jk> if the specified object is not <jk>null</jk>.
-        *
-        * @param <T> The value type.
-        * @param value The value being checked.
-        * @return <jk>true</jk> if the specified object is not <jk>null</jk>.
-        */
-       public static <T> boolean isNotNull(T value) {
-               return value != null;
-       }
-
-       /**
-        * Returns <jk>true</jk> if the specified boolean is not <jk>null</jk> 
and is <jk>true</jk>.
-        *
-        * @param value The value being checked.
-        * @return <jk>true</jk> if the specified boolean is not <jk>null</jk> 
and is <jk>true</jk>.
-        */
-       public static boolean isTrue(Boolean value) {
-               return value != null && value;
-       }
-
-       /**
-        * Returns <jk>true</jk> if the specified number is not <jk>null</jk> 
and not <c>-1</c>.
-        *
-        * @param <T> The value types.
-        * @param value The value being checked.
-        * @return <jk>true</jk> if the specified number is not <jk>null</jk> 
and not <c>-1</c>.
-        */
-       public static <T extends Number> boolean isNotMinusOne(T value) {
-               return value != null && value.intValue() != -1;
-       }
-
-       /**
-        * Returns <jk>true</jk> if the specified object is not <jk>null</jk> 
and not empty.
-        *
-        * Works on any of the following data types:  String, CharSequence, 
Collection, Map, array.
-        * All other types are stringified and then checked as a String.
-        *
-        * @param value The value being checked.
-        * @return <jk>true</jk> if the specified object is not <jk>null</jk> 
and not empty.
-        */
-       public static boolean isNotEmpty(Object value) {
-               if (value == null) return false;
-               if (value instanceof CharSequence) return 
CharSequence.class.cast(value).length() > 0;
-               if (value instanceof Collection) return ! 
Collection.class.cast(value).isEmpty();
-               if (value instanceof Map) return ! 
Map.class.cast(value).isEmpty();
-               if (value.getClass().isArray()) return Array.getLength(value) > 
0;
-               return StringUtils.isNotEmpty(StringUtils.stringify(value));
-       }
 }
\ No newline at end of file
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 e14ca75a5..7775aa354 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
@@ -360,7 +360,7 @@ public class JsonSchemaGeneratorSession extends 
BeanTraverseSession {
 
                out.append(jscm.getSchema());
 
-               Predicate<Object> neo = ObjectUtils::isNotEmpty;
+               Predicate<Object> neo = Utils::isNotEmpty;
                out.appendIfAbsentIf(neo, "description", description);
                out.appendIfAbsentIf(neo, "example", example);
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
index 9704a03f6..4b13be62b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
@@ -26,6 +26,7 @@ import java.util.function.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.collections.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
@@ -243,7 +244,7 @@ public class OpenApiParserSession extends UonParserSession {
                if (type == null)
                        type = (ClassMeta<T>)object();
 
-               schema = ObjectUtils.firstNonNull(schema, getSchema(), 
DEFAULT_SCHEMA);
+               schema = Utils.firstNonNull(schema, getSchema(), 
DEFAULT_SCHEMA);
 
                T t = parseInner(partType, schema, in, type);
                if (t == null && type.isPrimitive())
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
index 9f90ea4cd..5cbdc29b4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
@@ -273,7 +273,7 @@ public class OpenApiSerializerSession extends 
UonSerializerSession {
                                type = getClassMetaForObject(value);
                }
 
-               schema = ObjectUtils.firstNonNull(schema, DEFAULT_SCHEMA);
+               schema = Utils.firstNonNull(schema, DEFAULT_SCHEMA);
 
                HttpPartDataType t = schema.getType(type);
 
diff --git 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
index 0b8026a25..5afe2dc71 100755
--- 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
+++ 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
@@ -32,6 +32,7 @@ import java.util.logging.Formatter;
 
 import org.apache.juneau.*;
 import org.apache.juneau.collections.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.config.*;
 import org.apache.juneau.config.event.*;
 import org.apache.juneau.config.store.*;
@@ -652,11 +653,11 @@ public class Microservice implements ConfigEventListener {
                // 
--------------------------------------------------------------------------------
                // Initialize console commands.
                // 
--------------------------------------------------------------------------------
-               this.consoleEnabled = 
ObjectUtils.firstNonNull(builder.consoleEnabled, 
config.get("Console/enabled").asBoolean().orElse(false));
+               this.consoleEnabled = 
Utils.firstNonNull(builder.consoleEnabled, 
config.get("Console/enabled").asBoolean().orElse(false));
                if (consoleEnabled) {
                        Console c = System.console();
-                       this.consoleReader = 
ObjectUtils.firstNonNull(builder.consoleReader, new Scanner(c == null ? new 
InputStreamReader(System.in) : c.reader()));
-                       this.consoleWriter = 
ObjectUtils.firstNonNull(builder.consoleWriter, c == null ? new 
PrintWriter(System.out, true) : c.writer());
+                       this.consoleReader = 
Utils.firstNonNull(builder.consoleReader, new Scanner(c == null ? new 
InputStreamReader(System.in) : c.reader()));
+                       this.consoleWriter = 
Utils.firstNonNull(builder.consoleWriter, c == null ? new 
PrintWriter(System.out, true) : c.writer());
 
                        for (ConsoleCommand cc : builder.consoleCommands) {
                                consoleCommandMap.put(cc.getName(), cc);
@@ -773,18 +774,18 @@ public class Microservice implements ConfigEventListener {
                if (this.logger == null) {
                        LogManager.getLogManager().reset();
                        this.logger = Logger.getLogger("");
-                       String logFile = firstNonNull(logConfig.logFile, 
config.get("Logging/logFile").orElse(null));
+                       String logFile = Utils.firstNonNull(logConfig.logFile, 
config.get("Logging/logFile").orElse(null));
 
                        if (isNotEmpty(logFile)) {
-                               String logDir = firstNonNull(logConfig.logDir, 
config.get("Logging/logDir").orElse("."));
+                               String logDir = 
Utils.firstNonNull(logConfig.logDir, config.get("Logging/logDir").orElse("."));
                                File logDirFile = resolveFile(logDir);
                                mkdirs(logDirFile, false);
                                logDir = logDirFile.getAbsolutePath();
                                System.setProperty("juneau.logDir", logDir);
 
-                               boolean append = firstNonNull(logConfig.append, 
config.get("Logging/append").asBoolean().orElse(false));
-                               int limit = firstNonNull(logConfig.limit, 
config.get("Logging/limit").asInteger().orElse(1024*1024));
-                               int count = firstNonNull(logConfig.count, 
config.get("Logging/count").asInteger().orElse(1));
+                               boolean append = 
Utils.firstNonNull(logConfig.append, 
config.get("Logging/append").asBoolean().orElse(false));
+                               int limit = Utils.firstNonNull(logConfig.limit, 
config.get("Logging/limit").asInteger().orElse(1024*1024));
+                               int count = Utils.firstNonNull(logConfig.count, 
config.get("Logging/count").asInteger().orElse(1));
 
                                FileHandler fh = new FileHandler(logDir + '/' + 
logFile, limit, count, append);
 
@@ -796,11 +797,11 @@ public class Microservice implements ConfigEventListener {
                                        f = new LogEntryFormatter(format, 
dateFormat, useStackTraceHashes);
                                }
                                fh.setFormatter(f);
-                               fh.setLevel(firstNonNull(logConfig.fileLevel, 
config.get("Logging/fileLevel").as(Level.class).orElse(Level.INFO)));
+                               
fh.setLevel(Utils.firstNonNull(logConfig.fileLevel, 
config.get("Logging/fileLevel").as(Level.class).orElse(Level.INFO)));
                                logger.addHandler(fh);
 
                                ConsoleHandler ch = new ConsoleHandler();
-                               
ch.setLevel(firstNonNull(logConfig.consoleLevel, 
config.get("Logging/consoleLevel").as(Level.class).orElse(Level.WARNING)));
+                               
ch.setLevel(Utils.firstNonNull(logConfig.consoleLevel, 
config.get("Logging/consoleLevel").as(Level.class).orElse(Level.WARNING)));
                                ch.setFormatter(f);
                                logger.addHandler(ch);
                        }
diff --git 
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
 
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
index 0fa47186e..9c7141f56 100644
--- 
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
+++ 
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
@@ -42,11 +42,10 @@ import org.apache.juneau.BasicRuntimeException;
 import org.apache.juneau.ExecutableException;
 import org.apache.juneau.collections.Args;
 import org.apache.juneau.collections.JsonMap;
-import org.apache.juneau.common.internal.IOUtils;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.config.Config;
 import org.apache.juneau.config.store.ConfigStore;
 import org.apache.juneau.cp.Messages;
-import org.apache.juneau.internal.ObjectUtils;
 import org.apache.juneau.microservice.Microservice;
 import org.apache.juneau.microservice.console.ConsoleCommand;
 import org.apache.juneau.parser.ParseException;
@@ -692,7 +691,7 @@ public class JettyMicroservice extends Microservice {
                JsonMap mf = getManifest();
                VarResolver vr = getVarResolver();
 
-               int[] ports = ObjectUtils.firstNonNull(builder.ports, 
cf.get("Jetty/port").as(int[].class).orElseGet(()->mf.getWithDefault("Jetty-Port",
 new int[]{8000}, int[].class)));
+               int[] ports = Utils.firstNonNull(builder.ports, 
cf.get("Jetty/port").as(int[].class).orElseGet(()->mf.getWithDefault("Jetty-Port",
 new int[]{8000}, int[].class)));
                int availablePort = findOpenPort(ports);
 
                if (System.getProperty("availablePort") == null)
@@ -700,7 +699,7 @@ public class JettyMicroservice extends Microservice {
 
                String jettyXml = builder.jettyXml;
                String jettyConfig = 
cf.get("Jetty/config").orElse(mf.getString("Jetty-Config", "jetty.xml"));
-               boolean resolveVars = 
ObjectUtils.firstNonNull(builder.jettyXmlResolveVars, 
cf.get("Jetty/resolveVars").asBoolean().orElse(false));
+               boolean resolveVars = 
Utils.firstNonNull(builder.jettyXmlResolveVars, 
cf.get("Jetty/resolveVars").asBoolean().orElse(false));
 
                if (jettyXml == null)
                        jettyXml = 
IOUtils.loadSystemResourceAsString("jetty.xml", ".", "files");
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
index 247facb29..0f020aae0 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
@@ -120,7 +120,7 @@ public class ResponseContent implements HttpEntity {
                this.request = request;
                this.response = response;
                this.parser = parser;
-               this.entity = 
ObjectUtils.firstNonNull(response.asHttpResponse().getEntity(), NULL_ENTITY);
+               this.entity = 
Utils.firstNonNull(response.asHttpResponse().getEntity(), NULL_ENTITY);
        }
 
        
//------------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
index 8d753825b..d67fea189 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
@@ -19,6 +19,7 @@ import java.util.*;
 import org.apache.http.*;
 import org.apache.http.impl.*;
 import org.apache.http.message.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.http.BasicStatusLine;
 import org.apache.juneau.internal.*;
 
@@ -166,7 +167,7 @@ public class BasicStatusLine implements StatusLine {
        @Override /* StatusLine */
        public String getReasonPhrase() {
                if (reasonPhrase == null) {
-                       ReasonPhraseCatalog rfc = 
firstNonNull(reasonPhraseCatalog, EnglishReasonPhraseCatalog.INSTANCE);
+                       ReasonPhraseCatalog rfc = 
Utils.firstNonNull(reasonPhraseCatalog, EnglishReasonPhraseCatalog.INSTANCE);
                        return rfc.getReason(statusCode, locale);
                }
                return reasonPhrase;
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/BasicHeader.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/BasicHeader.java
index e9364f73d..ec44700fe 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/BasicHeader.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/BasicHeader.java
@@ -115,7 +115,7 @@ public class BasicHeader implements Header, Cloneable, 
Serializable {
                this.name = name;
                this.value = value instanceof Supplier ? null : value;
                this.stringValue = stringify(value);
-               this.supplier = cast(Supplier.class, value);
+               this.supplier = Utils.cast(Supplier.class, value);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
index 7e7588759..77f935611 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
@@ -21,6 +21,7 @@ import java.util.function.*;
 import jakarta.servlet.http.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.cp.*;
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.rest.*;
@@ -231,9 +232,9 @@ public abstract class DebugEnablement {
         */
        public DebugEnablement(BeanStore beanStore) {
                Builder builder = init(beanStore);
-               this.defaultEnablement = 
firstNonNull(builder.defaultEnablement, NEVER);
+               this.defaultEnablement = 
Utils.firstNonNull(builder.defaultEnablement, NEVER);
                this.enablementMap = builder.mapBuilder.build();
-               this.conditionalPredicate = firstNonNull(builder.conditional, x 
-> "true".equalsIgnoreCase(x.getHeader("Debug")));
+               this.conditionalPredicate = 
Utils.firstNonNull(builder.conditional, x -> 
"true".equalsIgnoreCase(x.getHeader("Debug")));
        }
 
        /**
@@ -242,9 +243,9 @@ public abstract class DebugEnablement {
         * @param builder The builder for this enablement.
         */
        public DebugEnablement(Builder builder) {
-               this.defaultEnablement = 
firstNonNull(builder.defaultEnablement, NEVER);
+               this.defaultEnablement = 
Utils.firstNonNull(builder.defaultEnablement, NEVER);
                this.enablementMap = builder.mapBuilder.build();
-               this.conditionalPredicate = firstNonNull(builder.conditional, x 
-> "true".equalsIgnoreCase(x.getHeader("Debug")));
+               this.conditionalPredicate = 
Utils.firstNonNull(builder.conditional, x -> 
"true".equalsIgnoreCase(x.getHeader("Debug")));
 
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
index 7091973cf..9f2d67640 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
@@ -582,16 +582,16 @@ public class CallLogger {
                if (! isEnabled(rule, req))
                        return;
 
-               Level level = firstNonNull(rule.getLevel(), this.level);
+               Level level = Utils.firstNonNull(rule.getLevel(), this.level);
 
                if (level == Level.OFF)
                        return;
 
-               Throwable e = 
ObjectUtils.castOrNull(req.getAttribute("Exception"), Throwable.class);
-               Long execTime = 
ObjectUtils.castOrNull(req.getAttribute("ExecTime"), Long.class);
+               Throwable e = Utils.castOrNull(req.getAttribute("Exception"), 
Throwable.class);
+               Long execTime = Utils.castOrNull(req.getAttribute("ExecTime"), 
Long.class);
 
-               CallLoggingDetail reqd = firstNonNull(rule.getRequestDetail(), 
requestDetail);
-               CallLoggingDetail resd = firstNonNull(rule.getResponseDetail(), 
responseDetail);
+               CallLoggingDetail reqd = 
Utils.firstNonNull(rule.getRequestDetail(), requestDetail);
+               CallLoggingDetail resd = 
Utils.firstNonNull(rule.getResponseDetail(), responseDetail);
 
                String method = req.getMethod();
                int status = res.getStatus();
@@ -721,7 +721,7 @@ public class CallLogger {
         * @see RestOp#debug()
         */
        protected boolean isDebug(HttpServletRequest req) {
-               return 
firstNonNull(ObjectUtils.castOrNull(req.getAttribute("Debug"), Boolean.class), 
false);
+               return 
Utils.firstNonNull(Utils.castOrNull(req.getAttribute("Debug"), Boolean.class), 
false);
        }
 
        /**
@@ -739,8 +739,8 @@ public class CallLogger {
         * @return <jk>true</jk> if logging is enabled for this request.
         */
        protected boolean isEnabled(CallLoggerRule rule, HttpServletRequest 
req) {
-               Enablement enabled = firstNonNull(rule.getEnabled(), 
this.enabled);
-               Predicate<HttpServletRequest> enabledTest = 
firstNonNull(rule.getEnabledTest(), this.enabledTest);
+               Enablement enabled = Utils.firstNonNull(rule.getEnabled(), 
this.enabled);
+               Predicate<HttpServletRequest> enabledTest = 
Utils.firstNonNull(rule.getEnabledTest(), this.enabledTest);
                return enabled.isEnabled(enabledTest.test(req));
        }
 
@@ -780,13 +780,13 @@ public class CallLogger {
        private byte[] getRequestContent(HttpServletRequest req) {
                if (req instanceof CachingHttpServletRequest)
                        return ((CachingHttpServletRequest)req).getContent();
-               return 
ObjectUtils.castOrNull(req.getAttribute("RequestContent"), byte[].class);
+               return Utils.castOrNull(req.getAttribute("RequestContent"), 
byte[].class);
        }
 
        private byte[] getResponseContent(HttpServletRequest req, 
HttpServletResponse res) {
                if (res instanceof CachingHttpServletResponse)
                        return ((CachingHttpServletResponse)res).getContent();
-               return 
ObjectUtils.castOrNull(req.getAttribute("ResponseContent"), byte[].class);
+               return Utils.castOrNull(req.getAttribute("ResponseContent"), 
byte[].class);
        }
 
        private ThrownStats getThrownStats(Throwable e) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
index 4a4c70702..2e1efbcb7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
@@ -21,6 +21,7 @@ import java.util.*;
 import java.util.concurrent.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.cp.*;
 import org.apache.juneau.internal.*;
 
@@ -177,7 +178,7 @@ public class ThrownStore {
                this.parent = optional(builder.parent);
                this.beanStore = builder.beanStore();
 
-               this.statsImplClass = firstNonNull(builder.statsImplClass, 
parent.isPresent() ? parent.get().statsImplClass : null, null);
+               this.statsImplClass = 
Utils.firstNonNull(builder.statsImplClass, parent.isPresent() ? 
parent.get().statsImplClass : null, null);
 
                Set<String> s = null;
                if (builder.ignoreClasses != null)
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 5b7dff7e8..d901c8535 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
@@ -723,7 +723,7 @@ public class BasicSwaggerProviderSession {
        @SafeVarargs
        private final <T> T firstNonEmpty(T...t) {
                for (T oo : t)
-                       if (! ObjectUtils.isEmpty(oo))
+                       if (! Utils.isEmpty(oo))
                                return oo;
                return null;
        }
@@ -803,7 +803,7 @@ public class BasicSwaggerProviderSession {
         * Replaces non-standard JSON-Schema attributes with standard Swagger 
attributes.
         */
        private JsonMap fixSwaggerExtensions(JsonMap om) {
-               Predicate<Object> nn = ObjectUtils::isNotNull;
+               Predicate<Object> nn = Utils::isNotNull;
                om
                        .appendIf(nn, "discriminator", 
om.remove("x-discriminator"))
                        .appendIf(nn, "readOnly", om.remove("x-readOnly"))
@@ -934,8 +934,8 @@ public class BasicSwaggerProviderSession {
                        Predicate<String> ne = StringUtils::isNotEmpty;
                        Predicate<Collection<?>> nec = 
CollectionUtils::isNotEmpty;
                        Predicate<Map<?,?>> nem = CollectionUtils::isNotEmpty;
-                       Predicate<Boolean> nf = ObjectUtils::isTrue;
-                       Predicate<Long> nm1 = ObjectUtils::isNotMinusOne;
+                       Predicate<Boolean> nf = Utils::isTrue;
+                       Predicate<Long> nm1 = Utils::isNotMinusOne;
                        return om
                                .appendIf(nem, "additionalProperties", 
toJsonMap(a.additionalProperties()))
                                .appendIf(ne, "allOf", joinnl(a.allOf()))
@@ -992,8 +992,8 @@ public class BasicSwaggerProviderSession {
                Predicate<String> ne = StringUtils::isNotEmpty;
                Predicate<Collection<?>> nec = CollectionUtils::isNotEmpty;
                Predicate<Map<?,?>> nem = CollectionUtils::isNotEmpty;
-               Predicate<Boolean> nf = ObjectUtils::isTrue;
-               Predicate<Long> nm1 = ObjectUtils::isNotMinusOne;
+               Predicate<Boolean> nf = Utils::isTrue;
+               Predicate<Long> nm1 = Utils::isNotMinusOne;
                return om
                        .appendFirst(ne, "collectionFormat", 
a.collectionFormat(), a.cf())
                        .appendIf(ne, "default", joinnl(a._default(), a.df()))
@@ -1023,8 +1023,8 @@ public class BasicSwaggerProviderSession {
                Predicate<String> ne = StringUtils::isNotEmpty;
                Predicate<Collection<?>> nec = CollectionUtils::isNotEmpty;
                Predicate<Map<?,?>> nem = CollectionUtils::isNotEmpty;
-               Predicate<Boolean> nf = ObjectUtils::isTrue;
-               Predicate<Long> nm1 = ObjectUtils::isNotMinusOne;
+               Predicate<Boolean> nf = Utils::isTrue;
+               Predicate<Long> nm1 = Utils::isNotMinusOne;
                return om
                        .appendFirst(ne, "collectionFormat", 
a.collectionFormat(), a.cf())
                        .appendIf(ne, "default", joinnl(a._default(), a.df()))
@@ -1075,7 +1075,7 @@ public class BasicSwaggerProviderSession {
        }
 
        private JsonMap pushupSchemaFields(RestPartType type, JsonMap param, 
JsonMap schema) {
-               Predicate<Object> ne = ObjectUtils::isNotEmpty;
+               Predicate<Object> ne = Utils::isNotEmpty;
                if (schema != null && ! schema.isEmpty()) {
                        if (type == BODY || type == RESPONSE) {
                                param


Reply via email to