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 a3fc50389c FilteredMap/MapBuilder improvements
a3fc50389c is described below

commit a3fc50389c505a5269b013da245ba849c622bccf
Author: James Bognar <[email protected]>
AuthorDate: Sun Dec 14 21:13:48 2025 -0500

    FilteredMap/MapBuilder improvements
---
 .../main/java/org/apache/juneau/BeanSession.java   |  9 ++++
 .../org/apache/juneau/BeanTraverseSession.java     | 10 ++--
 .../src/main/java/org/apache/juneau/Context.java   | 12 ++---
 .../java/org/apache/juneau/ContextSession.java     | 11 ++--
 .../juneau/html/HtmlDocSerializerSession.java      | 12 ++---
 .../java/org/apache/juneau/internal/Utils2.java    | 61 ----------------------
 .../org/apache/juneau/parser/ParserSession.java    | 11 ++--
 .../apache/juneau/parser/ReaderParserSession.java  | 12 ++---
 .../juneau/serializer/SerializerSession.java       | 10 ++--
 .../juneau/serializer/WriterSerializerSession.java | 12 +++--
 .../org/apache/juneau/uon/UonParserSession.java    |  9 ++--
 .../org/apache/juneau/rest/client/RestRequest.java | 23 ++++----
 .../java/org/apache/juneau/rest/RestOpSession.java |  8 +++
 .../java/org/apache/juneau/rest/RestSession.java   |  8 +++
 .../src/test/java/org/apache/juneau/TestUtils.java |  4 +-
 .../juneau/bean/openapi3/HeaderInfo_Test.java      |  2 +-
 .../juneau/bean/openapi3/SchemaInfo_Test.java      | 14 ++---
 17 files changed, 99 insertions(+), 129 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 436e8d206e..89f14911e6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -36,6 +36,7 @@ import java.util.logging.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.commons.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.commons.reflect.*;
 import org.apache.juneau.commons.time.*;
 import org.apache.juneau.commons.utils.*;
@@ -1680,4 +1681,12 @@ public class BeanSession extends ContextSession {
                });
                return array;
        }
+
+       @Override /* Overridden from ContextSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("locale", locale)
+                       .a("timeZone", timeZone)
+                       .a("mediaType", mediaType);
+       }
 }
\ 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 b7a0952af1..b33926baf9 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
@@ -16,7 +16,6 @@
  */
 package org.apache.juneau;
 
-import static org.apache.juneau.collections.JsonMap.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
@@ -25,6 +24,7 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.commons.utils.*;
 
 /**
@@ -338,9 +338,11 @@ public class BeanTraverseSession extends BeanSession {
                isBottom = false;
        }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               return filteredMap("indent", indent, "depth", depth);
+       @Override /* Overridden from BeanSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("indent", indent)
+                       .a("depth", depth);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index a1979c161d..bbb818f0be 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -654,16 +654,16 @@ public abstract class Context {
                 * <p>
                 * When {@link #apply(AnnotationWorkList)} is called, it gets 
called on all registered builders.
                 *
-                * @param builders The builders to add to the list of builders.
+                * @param values The builders to add to the list of builders.
                 */
-               protected void registerBuilders(Object...builders) {
-                       for (var b : builders) {
+               protected void registerBuilders(Object...values) {
+                       for (var b : values) {
                                if (b == this)
-                                       this.builders.add(b);
+                                       builders.add(b);
                                else if (b instanceof Builder b2)
-                                       this.builders.addAll(b2.builders);
+                                       builders.addAll(b2.builders);
                                else
-                                       this.builders.add(b);
+                                       builders.add(b);
                        }
                }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
index a61488641a..b494020d7b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
@@ -17,7 +17,7 @@
 package org.apache.juneau;
 
 import static java.util.Collections.*;
-import static org.apache.juneau.collections.JsonMap.*;
+import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.ThrowableUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
@@ -26,9 +26,9 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.*;
 import org.apache.juneau.commons.reflect.*;
 import org.apache.juneau.commons.utils.*;
-import org.apache.juneau.internal.*;
 
 /**
  * A one-time-use non-thread-safe object that's meant to be used once and then 
thrown away.
@@ -231,7 +231,7 @@ public abstract class ContextSession {
 
        @Override /* Overridden from Object */
        public String toString() {
-               return Utils2.toPropertyMap(this).asReadableString();
+               return r(properties());
        }
 
        /**
@@ -239,7 +239,8 @@ public abstract class ContextSession {
         *
         * @return The properties on this bean as a map for debugging.
         */
-       protected JsonMap properties() {
-               return filteredMap("debug", debug);
+       protected FluentMap<String,Object> properties() {
+               return mapb().sorted().filtered().buildFluent()
+                       .a("debug", debug);
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
index 6fecf8abe9..2b92c4f085 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
@@ -16,8 +16,6 @@
  */
 package org.apache.juneau.html;
 
-import static org.apache.juneau.collections.JsonMap.*;
-
 import java.io.*;
 import java.lang.reflect.*;
 import java.nio.charset.*;
@@ -25,7 +23,7 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.svl.*;
@@ -387,8 +385,10 @@ public class HtmlDocSerializerSession extends 
HtmlStrippedDocSerializerSession {
         */
        protected final boolean isResolveBodyVars() { return 
ctx.resolveBodyVars; }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               return filteredMap("ctx", ctx, "varResolver", getVarResolver());
+       @Override /* Overridden from HtmlStrippedDocSerializerSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("ctx", ctx)
+                       .a("varResolver", getVarResolver());
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Utils2.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Utils2.java
deleted file mode 100644
index 398d926be0..0000000000
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Utils2.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.juneau.internal;
-
-import static org.apache.juneau.commons.reflect.ReflectionUtils.*;
-
-import java.util.*;
-import java.util.concurrent.*;
-
-import org.apache.juneau.collections.*;
-import org.apache.juneau.commons.reflect.*;
-import org.apache.juneau.commons.utils.*;
-
-/**
- * Various generic object utility methods.
- *
- */
-public class Utils2 extends Utils {
-
-       private static final ConcurrentHashMap<Class<?>,Map<String,MethodInfo>> 
PROPERTIES_METHODS = new ConcurrentHashMap<>();
-
-       /**
-        * Searches for all <c>properties()</c> methods on the specified object 
and creates a combine map of them.
-        *
-        * @param o The object to return a property map of.
-        * @return A new property map.
-        */
-       public static JsonMap toPropertyMap(Object o) {
-               if (o == null)
-                       return null;
-               var methods = PROPERTIES_METHODS.get(o.getClass());
-               if (methods == null) {
-                       var ci = info(o);
-                       var methods2 = new LinkedHashMap<String,MethodInfo>();
-                       do {
-                               String cname = ci.getNameShort();
-                               ci.getDeclaredMethod(x -> 
x.hasName("properties")).ifPresent(mi -> methods2.put(cname, mi.accessible()));
-                               ci = ci.getSuperclass();
-                       } while (nn(ci));
-                       methods = methods2;
-                       PROPERTIES_METHODS.put(o.getClass(), methods);
-               }
-               var m = JsonMap.create().append("id", identity(o));
-               methods.forEach((k, v) -> m.put(k, v.invoke(o)));
-               return m;
-       }
-}
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index ac516abb8f..0b63d07de6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -16,7 +16,6 @@
  */
 package org.apache.juneau.parser;
 
-import static org.apache.juneau.collections.JsonMap.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
 import static org.apache.juneau.commons.utils.ThrowableUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
@@ -30,6 +29,7 @@ import java.util.function.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.commons.reflect.*;
 import org.apache.juneau.cp.*;
 import org.apache.juneau.httppart.*;
@@ -1079,9 +1079,12 @@ public class ParserSession extends BeanSession {
                        listener.onUnknownBeanProperty(this, propertyName, 
beanMap.getClassMeta().inner(), beanMap.getBean());
        }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               return filteredMap("javaMethod", javaMethod, "listener", 
listener, "outer", outer);
+       @Override /* Overridden from BeanSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("javaMethod", javaMethod)
+                       .a("listener", listener)
+                       .a("outer", outer);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserSession.java
index da8cd06230..8aa74d1d53 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserSession.java
@@ -16,8 +16,6 @@
  */
 package org.apache.juneau.parser;
 
-import static org.apache.juneau.collections.JsonMap.*;
-
 import java.io.*;
 import java.lang.reflect.*;
 import java.nio.charset.*;
@@ -25,7 +23,7 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.httppart.*;
 
 /**
@@ -269,8 +267,10 @@ public class ReaderParserSession extends ParserSession {
        @Override /* Overridden from ParserSession */
        public final boolean isReaderParser() { return true; }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               return filteredMap("fileCharset", fileCharset, "streamCharset", 
streamCharset);
+       @Override /* Overridden from ParserSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("fileCharset", fileCharset)
+                       .a("streamCharset", streamCharset);
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index d5c1cac0f9..ff141ee50f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -16,7 +16,6 @@
  */
 package org.apache.juneau.serializer;
 
-import static org.apache.juneau.collections.JsonMap.*;
 import static org.apache.juneau.commons.reflect.ReflectionUtils.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.ThrowableUtils.*;
@@ -30,7 +29,7 @@ import java.util.function.*;
 import java.util.stream.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.commons.reflect.*;
 import org.apache.juneau.cp.*;
 import org.apache.juneau.httppart.*;
@@ -983,9 +982,10 @@ public class SerializerSession extends BeanTraverseSession 
{
                super.onError(t, msg, args);
        }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               return filteredMap("uriResolver", uriResolver);
+       @Override /* Overridden from BeanTraverseSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("uriResolver", uriResolver);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
index b159408f81..4f3e78432d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
@@ -16,7 +16,6 @@
  */
 package org.apache.juneau.serializer;
 
-import static org.apache.juneau.collections.JsonMap.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.io.*;
@@ -26,7 +25,7 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.svl.*;
 
@@ -337,8 +336,11 @@ public class WriterSerializerSession extends 
SerializerSession {
         */
        protected final boolean isUseWhitespace() { return useWhitespace; }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               return filteredMap("fileCharset", fileCharset, "streamCharset", 
streamCharset, "useWhitespace", useWhitespace);
+       @Override /* Overridden from SerializerSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("fileCharset", fileCharset)
+                       .a("streamCharset", streamCharset)
+                       .a("useWhitespace", useWhitespace);
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
index ad219dcb0d..c6466c0b75 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
@@ -16,7 +16,6 @@
  */
 package org.apache.juneau.uon;
 
-import static org.apache.juneau.collections.JsonMap.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.StateEnum.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
@@ -30,6 +29,7 @@ import java.util.function.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.commons.reflect.*;
 import org.apache.juneau.commons.utils.*;
 import org.apache.juneau.httppart.*;
@@ -965,8 +965,9 @@ public class UonParserSession extends ReaderParserSession 
implements HttpPartPar
                return ("null".equals(s) ? null : trim(s));
        }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               return filteredMap("decoding", decoding);
+       @Override /* Overridden from ReaderParserSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("decoding", decoding);
        }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index 52fa932147..f290986478 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -17,7 +17,6 @@
 package org.apache.juneau.rest.client;
 
 import static java.util.stream.Collectors.toList;
-import static org.apache.juneau.collections.JsonMap.*;
 import static org.apache.juneau.commons.utils.AssertionUtils.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.IoUtils.*;
@@ -48,7 +47,7 @@ import org.apache.http.entity.BasicHttpEntity;
 import org.apache.http.params.*;
 import org.apache.http.protocol.*;
 import org.apache.juneau.*;
-import org.apache.juneau.collections.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.commons.reflect.*;
 import org.apache.juneau.html.*;
 import org.apache.juneau.http.*;
@@ -2428,17 +2427,15 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
                return new SerializedPart(name, value, type, 
getPartSerializerSession(serializer), schema, skipIfEmpty);
        }
 
-       @Override /* Overridden from ContextSession */
-       protected JsonMap properties() {
-               // @formatter:off
-               return filteredMap()
-                       .append("client", client.properties())
-                       .append("ignoreErrors", ignoreErrors)
-                       .append("interceptors", interceptors)
-                       .append("requestBodySchema", contentSchema)
-                       .append("response", response)
-                       .append("serializer", serializer);
-               // @formatter:on
+       @Override /* Overridden from BeanSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("client", client.properties())
+                       .a("ignoreErrors", ignoreErrors)
+                       .a("interceptors", interceptors)
+                       .a("requestBodySchema", contentSchema)
+                       .a("response", response)
+                       .a("serializer", serializer);
        }
 
        RestRequest formDataArg(String name, Object value, HttpPartSchema 
schema, HttpPartSerializer serializer, boolean skipIfEmpty) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
index b2c2afb071..f1df138481 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
@@ -20,6 +20,7 @@ import java.io.*;
 
 import org.apache.http.*;
 import org.apache.juneau.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.cp.*;
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.rest.logger.*;
@@ -211,4 +212,11 @@ public class RestOpSession extends ContextSession {
                session.status(value);
                return this;
        }
+
+       @Override /* Overridden from ContextSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("ctx", ctx)
+                       .a("session", session);
+       }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
index 55a3dcd3da..b56424e645 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
@@ -24,6 +24,7 @@ import java.util.*;
 
 import org.apache.http.*;
 import org.apache.juneau.*;
+import org.apache.juneau.commons.collections.FluentMap;
 import org.apache.juneau.commons.utils.*;
 import org.apache.juneau.cp.*;
 import org.apache.juneau.http.response.*;
@@ -535,4 +536,11 @@ public class RestSession extends ContextSession {
                urlPathMatch = beanStore.add(UrlPathMatch.class, value);
                return this;
        }
+
+       @Override /* Overridden from ContextSession */
+       protected FluentMap<String,Object> properties() {
+               return super.properties()
+                       .a("context", context)
+                       .a("resource", resource);
+       }
 }
\ No newline at end of file
diff --git a/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java 
b/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java
index e4f36b408a..10a6cbe767 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java
@@ -30,7 +30,7 @@ import java.util.stream.*;
 
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.bean.swagger.*;
-import org.apache.juneau.internal.*;
+import org.apache.juneau.commons.utils.*;
 import org.apache.juneau.junit.bct.*;
 import org.apache.juneau.marshaller.*;
 import org.apache.juneau.rest.*;
@@ -139,7 +139,7 @@ import org.junit.jupiter.api.*;
  * @see BeanConverter
  * @see BasicBeanConverter
  */
-public class TestUtils extends Utils2 {
+public class TestUtils extends Utils {
 
        private static final ThreadLocal<TimeZone> SYSTEM_TIME_ZONE = new 
ThreadLocal<>();
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/HeaderInfo_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/HeaderInfo_Test.java
index 41f95d7aa8..9f39d8fe08 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/HeaderInfo_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/HeaderInfo_Test.java
@@ -254,7 +254,7 @@ class HeaderInfo_Test extends TestBase {
                                .setComponents(components().setSchemas(m(
                                        "MyHeader", 
schemaInfo().setType("string").setDescription("My Header")
                                )));
-       
+
                        assertBean(
                                
headerInfo().setRef("#/components/schemas/MyHeader").resolveRefs(openApi, new 
ArrayDeque<>(), 10),
                                "type,description",
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/SchemaInfo_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/SchemaInfo_Test.java
index e5e95c2781..7e99125e2e 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/SchemaInfo_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/bean/openapi3/SchemaInfo_Test.java
@@ -310,49 +310,49 @@ class SchemaInfo_Test extends TestBase {
                                .setComponents(components().setSchemas(m(
                                        "Pet", 
schemaInfo().setType("object").setTitle("Pet")
                                )));
-       
+
                        assertBean(
                                
schemaInfo().setRef("#/components/schemas/Pet").resolveRefs(openApi, new 
ArrayDeque<>(), 10),
                                "type,title",
                                "object,Pet"
                        );
                }
-       
+
                @Test void d02_resolveRefs_nested() {
                        var openApi = openApi()
                                .setComponents(components().setSchemas(m(
                                        "Pet", 
schemaInfo().setType("object").setTitle("Pet"),
                                        "Pets", 
schemaInfo().setType("array").setItems(items().setRef("#/components/schemas/Pet"))
                                )));
-       
+
                        assertBean(
                                
schemaInfo().setRef("#/components/schemas/Pets").resolveRefs(openApi, new 
ArrayDeque<>(), 10),
                                "type,items{type,title}",
                                "array,{object,Pet}"
                        );
                }
-       
+
                @Test void d03_resolveRefs_maxDepth() {
                        var openApi = openApi()
                                .setComponents(components().setSchemas(m(
                                        "Pet", 
schemaInfo().setType("object").setTitle("Pet"),
                                        "Pets", 
schemaInfo().setType("array").setItems(items().setRef("#/components/schemas/Pet"))
                                )));
-       
+
                        assertBean(
                                
schemaInfo().setRef("#/components/schemas/Pets").resolveRefs(openApi, new 
ArrayDeque<>(), 1),
                                "type,items{ref}",
                                "array,{#/components/schemas/Pet}"
                        );
                }
-       
+
                @Test void d04_resolveRefs_circular() {
                        var openApi = openApi()
                                .setComponents(components().setSchemas(m(
                                        "A", 
schemaInfo().setType("object").setTitle("A").setProperties(m("b", 
schemaInfo().setRef("#/components/schemas/B"))),
                                        "B", 
schemaInfo().setType("object").setTitle("B").setProperties(m("a", 
schemaInfo().setRef("#/components/schemas/A")))
                                )));
-       
+
                        assertBean(
                                
schemaInfo().setRef("#/components/schemas/A").resolveRefs(openApi, new 
ArrayDeque<>(), 10),
                                
"type,title,properties{b{type,title,properties{a{ref}}}}",

Reply via email to