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 d6fafeb  Context API refactoring.
d6fafeb is described below

commit d6fafeb56dc0d62021b7a56bea80dab446d5fd9a
Author: JamesBognar <[email protected]>
AuthorDate: Tue Sep 28 14:10:57 2021 -0400

    Context API refactoring.
---
 .../org/apache/juneau/BeanTraverseBuilder.java     |  65 ++++++---
 .../org/apache/juneau/BeanTraverseContext.java     | 146 +++------------------
 .../org/apache/juneau/BeanTraverseSession.java     |  10 +-
 .../src/main/java/org/apache/juneau/Context.java   |   3 +-
 .../java/org/apache/juneau/ContextBuilder.java     |   3 +-
 .../org/apache/juneau/annotation/BeanConfig.java   |   3 +-
 .../jsonschema/annotation/JsonSchemaConfig.java    |  12 +-
 .../annotation/JsonSchemaConfigAnnotation.java     |  18 +--
 .../serializer/annotation/SerializerConfig.java    |  12 +-
 .../annotation/SerializerConfigAnnotation.java     |  10 +-
 .../juneau/rest/client/RestClientBuilder.java      |   8 +-
 .../juneau/BeanTraversePropertiesComboTest.java    |  10 +-
 12 files changed, 102 insertions(+), 198 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
index 5298c39..e36ae04 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau;
 
-import static org.apache.juneau.BeanTraverseContext.*;
-
 import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.util.*;
@@ -28,11 +26,18 @@ import org.apache.juneau.internal.*;
 @FluentSetters
 public abstract class BeanTraverseBuilder extends BeanContextableBuilder {
 
+       boolean detectRecursions, ignoreRecursions;
+       int initialDepth, maxDepth;
+
        /**
         * Constructor, default settings.
         */
        protected BeanTraverseBuilder() {
                super();
+               detectRecursions = env("BeanTraverseBuilder.detectRecursions", 
false);
+               ignoreRecursions = env("BeanTraverseBuilder.ignoreRecursions", 
false);
+               initialDepth = env("BeanTraverseBuilder.initialDepth", 0);
+               maxDepth = env("BeanTraverseBuilder.maxDepth", 100);
        }
 
        /**
@@ -42,6 +47,10 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         */
        protected BeanTraverseBuilder(BeanTraverseContext copyFrom) {
                super(copyFrom);
+               detectRecursions = copyFrom.detectRecursions;
+               ignoreRecursions = copyFrom.ignoreRecursions;
+               initialDepth = copyFrom.initialDepth;
+               maxDepth = copyFrom.maxDepth;
        }
 
        /**
@@ -51,6 +60,10 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         */
        protected BeanTraverseBuilder(BeanTraverseBuilder copyFrom) {
                super(copyFrom);
+               detectRecursions = copyFrom.detectRecursions;
+               ignoreRecursions = copyFrom.ignoreRecursions;
+               initialDepth = copyFrom.initialDepth;
+               maxDepth = copyFrom.maxDepth;
        }
 
        @Override /* ContextBuilder */
@@ -100,15 +113,23 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         *      String <jv>json</jv> = 
<jv>serializer</jv>.serialize(<jv>myBean</jv>);
         * </p>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_detectRecursions}
-        * </ul>
-        *
         * @return This object (for method chaining).
         */
        @FluentSetter
        public BeanTraverseBuilder detectRecursions() {
-               return set(BEANTRAVERSE_detectRecursions);
+               return detectRecursions(true);
+       }
+
+       /**
+        * Same as {@link #detectRecursions()} but allows you to explicitly 
specify the value.
+        *
+        * @param value The value for this setting.
+        * @return This object.
+        */
+       @FluentSetter
+       public BeanTraverseBuilder detectRecursions(boolean value) {
+               detectRecursions = value;
+               return this;
        }
 
        /**
@@ -149,15 +170,23 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         *      String <jv>json</jv> = 
<jv>serializer</jv>.serialize(<jv>myBean</jv>);
         * </p>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_ignoreRecursions}
-        * </ul>
-        *
         * @return This object (for method chaining).
         */
        @FluentSetter
        public BeanTraverseBuilder ignoreRecursions() {
-               return set(BEANTRAVERSE_ignoreRecursions);
+               return ignoreRecursions(true);
+       }
+
+       /**
+        * Same as {@link #ignoreRecursions()} but allows you to explicitly 
specify the value.
+        *
+        * @param value The value for this setting.
+        * @return This object.
+        */
+       @FluentSetter
+       public BeanTraverseBuilder ignoreRecursions(boolean value) {
+               ignoreRecursions = value;
+               return this;
        }
 
        /**
@@ -182,10 +211,6 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         *      String <jv>json</jv> = 
<jv>serializer</jv>.serialize(<jk>new</jk> MyBean());
         * </p>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_initialDepth}
-        * </ul>
-        *
         * @param value
         *      The new value for this setting.
         *      <br>The default is <c>0</c>.
@@ -193,7 +218,8 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         */
        @FluentSetter
        public BeanTraverseBuilder initialDepth(int value) {
-               return set(BEANTRAVERSE_initialDepth, value);
+               initialDepth = value;
+               return this;
        }
 
        /**
@@ -218,7 +244,7 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         * </p>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_maxDepth}
+        *      <li class='jm'>{@link BeanTraverseBuilder#maxDepth(int)}
         * </ul>
         *
         * @param value
@@ -228,7 +254,8 @@ public abstract class BeanTraverseBuilder extends 
BeanContextableBuilder {
         */
        @FluentSetter
        public BeanTraverseBuilder maxDepth(int value) {
-               return set(BEANTRAVERSE_maxDepth, value);
+               maxDepth = value;
+               return this;
        }
 
        // <FluentSetters>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
index 3b00b56..bbef063 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
@@ -28,133 +28,16 @@ import org.apache.juneau.collections.*;
 public abstract class BeanTraverseContext extends BeanContextable {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Configurable properties
-       
//-------------------------------------------------------------------------------------------------------------------
-
-       static final String PREFIX = "BeanTraverseContext";
-
-       /**
-        * Configuration property:  Automatically detect POJO recursions.
-        *
-        * <p>
-        * When enabled, specifies that recursions should be checked for during 
traversal.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_detectRecursions 
BEANTRAVERSE_detectRecursions}
-        *      <li><b>Name:</b>  
<js>"BeanTraverseContext.detectRecursions.b"</js>
-        *      <li><b>Data type:</b>  <jk>boolean</jk>
-        *      <li><b>System property:</b>  
<c>BeanTraverseContext.detectRecursions</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANTRAVERSECONTEXT_DETECTRECURSIONS</c>
-        *      <li><b>Default:</b>  <jk>false</jk>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.serializer.annotation.SerializerConfig#detectRecursions()}
-        *                      <li class='ja'>{@link 
org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#detectRecursions()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanTraverseBuilder#detectRecursions()}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEANTRAVERSE_detectRecursions = PREFIX + 
".detectRecursions.b";
-
-       /**
-        * Configuration property:  Ignore recursion errors.
-        *
-        * <p>
-        * When enabled, when we encounter the same object when traversing a 
tree, we set the value to <jk>null</jk>.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_ignoreRecursions 
BEANTRAVERSE_ignoreRecursions}
-        *      <li><b>Name:</b>  
<js>"BeanTraverseContext.ignoreRecursions.b"</js>
-        *      <li><b>Data type:</b>  <jk>boolean</jk>
-        *      <li><b>System property:</b>  
<c>BeanTraverseContext.ignoreRecursions</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANTRAVERSECONTEXT_IGNORERECURSIONS</c>
-        *      <li><b>Default:</b>  <jk>false</jk>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.serializer.annotation.SerializerConfig#ignoreRecursions()}
-        *                      <li class='ja'>{@link 
org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#ignoreRecursions()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanTraverseBuilder#ignoreRecursions()}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEANTRAVERSE_ignoreRecursions = PREFIX + 
".ignoreRecursions.b";
-
-       /**
-        * Configuration property:  Initial depth.
-        *
-        * <p>
-        * The initial indentation level at the root.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_initialDepth 
BEANTRAVERSE_initialDepth}
-        *      <li><b>Name:</b>  <js>"BeanTraverseContext.initialDepth.i"</js>
-        *      <li><b>Data type:</b>  <jk>int</jk>
-        *      <li><b>System property:</b>  
<c>BeanTraverseContext.initialDepth</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANTRAVERSECONTEXT_INITIALDEPTH</c>
-        *      <li><b>Default:</b>  <c>0</c>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.serializer.annotation.SerializerConfig#initialDepth()}
-        *                      <li class='ja'>{@link 
org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#initialDepth()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanTraverseBuilder#initialDepth(int)}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEANTRAVERSE_initialDepth = PREFIX + 
".initialDepth.i";
-
-       /**
-        * Configuration property:  Max traversal depth.
-        *
-        * <p>
-        * When enabled, abort traversal if specified depth is reached in the 
POJO tree.
-        * If this depth is exceeded, an exception is thrown.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_maxDepth 
BEANTRAVERSE_maxDepth}
-        *      <li><b>Name:</b>  <js>"BeanTraverseContext.maxDepth.i"</js>
-        *      <li><b>Data type:</b>  <jk>int</jk>
-        *      <li><b>System property:</b>  <c>BeanTraverseContext.maxDepth</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANTRAVERSECONTEXT_MAXDEPTH</c>
-        *      <li><b>Default:</b>  <c>100</c>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.serializer.annotation.SerializerConfig#maxDepth()}
-        *                      <li class='ja'>{@link 
org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#maxDepth()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanTraverseBuilder#maxDepth(int)}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEANTRAVERSE_maxDepth = PREFIX + 
".maxDepth.i";
-
-       
//-------------------------------------------------------------------------------------------------------------------
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
-       private final int initialDepth, maxDepth;
-       private final boolean
+       final int initialDepth, maxDepth;
+       final boolean
                detectRecursions,
                ignoreRecursions;
 
+       private final boolean actualDetectRecursions;
+
        /**
         * Constructor
         *
@@ -163,11 +46,12 @@ public abstract class BeanTraverseContext extends 
BeanContextable {
        protected BeanTraverseContext(BeanTraverseBuilder builder) {
                super(builder);
 
-               ContextProperties cp = getContextProperties();
-               maxDepth = cp.getInteger(BEANTRAVERSE_maxDepth).orElse(100);
-               initialDepth = 
cp.getInteger(BEANTRAVERSE_initialDepth).orElse(0);
-               ignoreRecursions = 
cp.getBoolean(BEANTRAVERSE_ignoreRecursions).orElse(false);
-               detectRecursions = 
cp.getBoolean(BEANTRAVERSE_detectRecursions).orElse(ignoreRecursions);
+               maxDepth = builder.maxDepth;
+               initialDepth = builder.initialDepth;
+               ignoreRecursions = builder.ignoreRecursions;
+               detectRecursions = builder.detectRecursions;
+
+               actualDetectRecursions = detectRecursions || ignoreRecursions;
        }
 
        @Override
@@ -191,18 +75,18 @@ public abstract class BeanTraverseContext extends 
BeanContextable {
        /**
         * Automatically detect POJO recursions.
         *
-        * @see #BEANTRAVERSE_detectRecursions
+        * @see BeanTraverseBuilder#detectRecursions()
         * @return
         *      <jk>true</jk> if recursions should be checked for during 
traversal.
         */
        public final boolean isDetectRecursions() {
-               return detectRecursions;
+               return actualDetectRecursions;
        }
 
        /**
         * Ignore recursion errors.
         *
-        * @see #BEANTRAVERSE_ignoreRecursions
+        * @see BeanTraverseBuilder#ignoreRecursions()
         * @return
         *      <jk>true</jk> if when we encounter the same object when 
traversing a tree, we set the value to <jk>null</jk>.
         *      <br>Otherwise, an exception is thrown with the message 
<js>"Recursion occurred, stack=..."</js>.
@@ -214,7 +98,7 @@ public abstract class BeanTraverseContext extends 
BeanContextable {
        /**
         * Initial depth.
         *
-        * @see #BEANTRAVERSE_initialDepth
+        * @see BeanTraverseBuilder#initialDepth(int)
         * @return
         *      The initial indentation level at the root.
         */
@@ -225,7 +109,7 @@ public abstract class BeanTraverseContext extends 
BeanContextable {
        /**
         * Max traversal depth.
         *
-        * @see #BEANTRAVERSE_maxDepth
+        * @see BeanTraverseBuilder#maxDepth(int)
         * @return
         *      The depth at which traversal is aborted if depth is reached in 
the POJO tree.
         *      <br>If this depth is exceeded, an exception is thrown.
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 f84bf66..dbae1b4 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
@@ -144,7 +144,7 @@ public class BeanTraverseSession extends BeanSession {
        }
 
        /**
-        * Returns <jk>true</jk> if {@link 
BeanTraverseContext#BEANTRAVERSE_detectRecursions} is enabled, and the specified
+        * Returns <jk>true</jk> if {@link 
BeanTraverseBuilder#detectRecursions()} is enabled, and the specified
         * object is already higher up in the traversal chain.
         *
         * @param attrName The bean property attribute name, or some other 
identifier.
@@ -302,7 +302,7 @@ public class BeanTraverseSession extends BeanSession {
        /**
         * Configuration property:  Automatically detect POJO recursions.
         *
-        * @see BeanTraverseContext#BEANTRAVERSE_detectRecursions
+        * @see BeanTraverseBuilder#detectRecursions()
         * @return
         *      <jk>true</jk> if recursions should be checked for during 
traversal.
         */
@@ -313,7 +313,7 @@ public class BeanTraverseSession extends BeanSession {
        /**
         * Configuration property:  Ignore recursion errors.
         *
-        * @see BeanTraverseContext#BEANTRAVERSE_ignoreRecursions
+        * @see BeanTraverseBuilder#ignoreRecursions()
         * @return
         *      <jk>true</jk> if when we encounter the same object when 
traversing a tree, we set the value to <jk>null</jk>.
         *      <br>Otherwise, a {@link BeanRecursionException} is thrown with 
the message <js>"Recursion occurred, stack=..."</js>.
@@ -325,7 +325,7 @@ public class BeanTraverseSession extends BeanSession {
        /**
         * Configuration property:  Initial depth.
         *
-        * @see BeanTraverseContext#BEANTRAVERSE_initialDepth
+        * @see BeanTraverseBuilder#initialDepth(int)
         * @return
         *      The initial indentation level at the root.
         */
@@ -336,7 +336,7 @@ public class BeanTraverseSession extends BeanSession {
        /**
         * Configuration property:  Max traversal depth.
         *
-        * @see BeanTraverseContext#BEANTRAVERSE_maxDepth
+        * @see BeanTraverseBuilder#maxDepth(int)
         * @return
         *      The depth at which traversal is aborted if depth is reached in 
the POJO tree.
         *      <br>If this depth is exceeded, an exception is thrown.
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 223b1ae..cb62141 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
@@ -25,7 +25,6 @@ import org.apache.juneau.collections.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.reflect.*;
-import org.apache.juneau.serializer.*;
 import org.apache.juneau.utils.*;
 
 /**
@@ -115,7 +114,7 @@ public abstract class Context implements MetaProvider {
         *              When bean getters throws exceptions, the exception 
includes the object stack information
         *              in order to determine how that method was invoked.
         *      <li>
-        *              Enables {@link 
Serializer#BEANTRAVERSE_detectRecursions}.
+        *              Enables {@link BeanTraverseBuilder#detectRecursions()}.
         * </ul>
         *
         * <h5 class='section'>Property:</h5>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
index 9074b87..bb5962d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
@@ -39,7 +39,6 @@ import org.apache.juneau.oapi.annotation.*;
 import org.apache.juneau.parser.annotation.*;
 import org.apache.juneau.plaintext.annotation.*;
 import org.apache.juneau.reflect.*;
-import org.apache.juneau.serializer.*;
 import org.apache.juneau.serializer.annotation.*;
 import org.apache.juneau.soap.annotation.*;
 import org.apache.juneau.svl.*;
@@ -634,7 +633,7 @@ public abstract class ContextBuilder {
         *              When bean getters throws exceptions, the exception 
includes the object stack information
         *              in order to determine how that method was invoked.
         *      <li>
-        *              Enables {@link 
Serializer#BEANTRAVERSE_detectRecursions}.
+        *              Enables {@link BeanTraverseBuilder#detectRecursions()}.
         * </ul>
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
index 20840fe..ee9bb74 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
@@ -22,7 +22,6 @@ import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.header.*;
-import org.apache.juneau.serializer.*;
 import org.apache.juneau.transform.*;
 
 /**
@@ -327,7 +326,7 @@ public @interface BeanConfig {
         *              When bean getters throws exceptions, the exception 
includes the object stack information
         *              in order to determine how that method was invoked.
         *      <li>
-        *              Enables {@link 
Serializer#BEANTRAVERSE_detectRecursions}.
+        *              Enables {@link BeanTraverseBuilder#detectRecursions()}.
         * </ul>
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
index f7e98ee..d146145 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
@@ -256,7 +256,7 @@ public @interface JsonSchemaConfig {
         * <br>These show up as {@link ParseException ParseExceptions} with the 
message <js>"Depth too deep.  Stack overflow occurred."</js>.
         *
         * <p>
-        * The behavior when recursions are detected depends on the value for 
{@link BeanTraverseContext#BEANTRAVERSE_ignoreRecursions}.
+        * The behavior when recursions are detected depends on the value for 
{@link BeanTraverseBuilder#ignoreRecursions()}.
         *
         * <p>
         * For example, if a model contains the links A-&gt;B-&gt;C-&gt;A, then 
the JSON generated will look like
@@ -280,7 +280,7 @@ public @interface JsonSchemaConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_detectRecursions}
+        *      <li class='jm'>{@link BeanTraverseBuilder#detectRecursions()}
         * </ul>
         */
        String detectRecursions() default "";
@@ -289,7 +289,7 @@ public @interface JsonSchemaConfig {
         * Configuration property:  Ignore recursion errors.
         *
         * <p>
-        * Used in conjunction with {@link 
BeanTraverseContext#BEANTRAVERSE_detectRecursions}.
+        * Used in conjunction with {@link 
BeanTraverseBuilder#detectRecursions()}.
         * <br>Setting is ignored if <jsf>BEANTRAVERSE_detectRecursions</jsf> 
is <js>"false"</js>.
         *
         * <p>
@@ -308,7 +308,7 @@ public @interface JsonSchemaConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_ignoreRecursions}
+        *      <li class='jm'>{@link BeanTraverseBuilder#ignoreRecursions()}
         * </ul>
         */
        String ignoreRecursions() default "";
@@ -330,7 +330,7 @@ public @interface JsonSchemaConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_initialDepth}
+        *      <li class='jm'>{@link BeanTraverseBuilder#initialDepth(int)}
         * </ul>
         */
        String initialDepth() default "";
@@ -352,7 +352,7 @@ public @interface JsonSchemaConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_maxDepth}
+        *      <li class='jm'>{@link BeanTraverseBuilder#maxDepth(int)}
         * </ul>
         */
        String maxDepth() default "";
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
index 5abf50b..950bb4b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
@@ -12,10 +12,10 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.jsonschema.annotation;
 
-import static org.apache.juneau.BeanTraverseContext.*;
 import static org.apache.juneau.jsonschema.JsonSchemaGenerator.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.jsonschema.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 
@@ -25,9 +25,9 @@ import org.apache.juneau.svl.*;
 public class JsonSchemaConfigAnnotation {
 
        /**
-        * Applies {@link JsonSchemaConfig} annotations to a {@link 
ContextPropertiesBuilder}.
+        * Applies {@link JsonSchemaConfig} annotations to a {@link 
JsonSchemaGeneratorBuilder}.
         */
-       public static class Apply extends 
AnnotationApplier<JsonSchemaConfig,ContextPropertiesBuilder> {
+       public static class Apply extends 
AnnotationApplier<JsonSchemaConfig,JsonSchemaGeneratorBuilder> {
 
                /**
                 * Constructor.
@@ -35,11 +35,11 @@ public class JsonSchemaConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(JsonSchemaConfig.class, 
ContextPropertiesBuilder.class, vr);
+                       super(JsonSchemaConfig.class, 
JsonSchemaGeneratorBuilder.class, vr);
                }
 
                @Override
-               public void apply(AnnotationInfo<JsonSchemaConfig> ai, 
ContextPropertiesBuilder b) {
+               public void apply(AnnotationInfo<JsonSchemaConfig> ai, 
JsonSchemaGeneratorBuilder b) {
                        JsonSchemaConfig a = ai.getAnnotation();
 
                        string(a.addDescriptionsTo()).ifPresent(x -> 
b.set(JSONSCHEMA_addDescriptionsTo, x));
@@ -49,10 +49,10 @@ public class JsonSchemaConfigAnnotation {
                        type(a.beanDefMapper()).ifPresent(x -> 
b.set(JSONSCHEMA_beanDefMapper, x));
                        string(a.ignoreTypes()).ifPresent(x -> 
b.set(JSONSCHEMA_ignoreTypes, x));
                        bool(a.useBeanDefs()).ifPresent(x -> 
b.set(JSONSCHEMA_useBeanDefs, x));
-                       bool(a.detectRecursions()).ifPresent(x -> 
b.set(BEANTRAVERSE_detectRecursions, x));
-                       bool(a.ignoreRecursions()).ifPresent(x -> 
b.set(BEANTRAVERSE_ignoreRecursions, x));
-                       integer(a.initialDepth(), "initialDepth").ifPresent(x 
-> b.set(BEANTRAVERSE_initialDepth, x));
-                       integer(a.maxDepth(), "maxDepth").ifPresent(x -> 
b.set(BEANTRAVERSE_maxDepth, x));
+                       bool(a.detectRecursions()).ifPresent(x -> 
b.detectRecursions(x));
+                       bool(a.ignoreRecursions()).ifPresent(x -> 
b.ignoreRecursions(x));
+                       integer(a.initialDepth(), "initialDepth").ifPresent(x 
-> b.initialDepth(x));
+                       integer(a.maxDepth(), "maxDepth").ifPresent(x -> 
b.maxDepth(x));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java
index 6c4bf08..c9bac37 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java
@@ -547,7 +547,7 @@ public @interface SerializerConfig {
         * <br>These show up as {@link ParseException ParseExceptions} with the 
message <js>"Depth too deep.  Stack overflow occurred."</js>.
         *
         * <p>
-        * The behavior when recursions are detected depends on the value for 
{@link BeanTraverseContext#BEANTRAVERSE_ignoreRecursions}.
+        * The behavior when recursions are detected depends on the value for 
{@link BeanTraverseBuilder#ignoreRecursions()}.
         *
         * <p>
         * For example, if a model contains the links A-&gt;B-&gt;C-&gt;A, then 
the JSON generated will look like
@@ -571,7 +571,7 @@ public @interface SerializerConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_detectRecursions}
+        *      <li class='jm'>{@link BeanTraverseBuilder#detectRecursions()}
         * </ul>
         */
        String detectRecursions() default "";
@@ -580,7 +580,7 @@ public @interface SerializerConfig {
         * Configuration property:  Ignore recursion errors.
         *
         * <p>
-        * Used in conjunction with {@link 
BeanTraverseContext#BEANTRAVERSE_detectRecursions}.
+        * Used in conjunction with {@link 
BeanTraverseBuilder#detectRecursions()}.
         * <br>Setting is ignored if <jsf>BEANTRAVERSE_detectRecursions</jsf> 
is <js>"false"</js>.
         *
         * <p>
@@ -599,7 +599,7 @@ public @interface SerializerConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_ignoreRecursions}
+        *      <li class='jm'>{@link BeanTraverseBuilder#ignoreRecursions()}
         * </ul>
         */
        String ignoreRecursions() default "";
@@ -621,7 +621,7 @@ public @interface SerializerConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_initialDepth}
+        *      <li class='jm'>{@link BeanTraverseBuilder#initialDepth(int)}
         * </ul>
         */
        String initialDepth() default "";
@@ -643,7 +643,7 @@ public @interface SerializerConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_maxDepth}
+        *      <li class='jm'>{@link BeanTraverseBuilder#maxDepth}
         * </ul>
         */
        String maxDepth() default "";
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
index b62ab47..dfd377c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.serializer.annotation;
 
-import static org.apache.juneau.BeanTraverseContext.*;
-
 import org.apache.juneau.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.serializer.*;
@@ -54,10 +52,10 @@ public class SerializerConfigAnnotation {
                        string(a.uriContext()).map(UriContext::of).ifPresent(x 
-> b.uriContext(x));
                        
string(a.uriRelativity()).map(UriRelativity::valueOf).ifPresent(x -> 
b.uriRelativity(x));
                        
string(a.uriResolution()).map(UriResolution::valueOf).ifPresent(x -> 
b.uriResolution(x));
-                       bool(a.detectRecursions()).ifPresent(x -> 
b.set(BEANTRAVERSE_detectRecursions, x));
-                       bool(a.ignoreRecursions()).ifPresent(x -> 
b.set(BEANTRAVERSE_ignoreRecursions, x));
-                       integer(a.initialDepth(), "initialDepth").ifPresent(x 
-> b.set(BEANTRAVERSE_initialDepth, x));
-                       integer(a.maxDepth(), "maxDepth").ifPresent(x -> 
b.set(BEANTRAVERSE_maxDepth, x));
+                       bool(a.detectRecursions()).ifPresent(x -> 
b.detectRecursions(x));
+                       bool(a.ignoreRecursions()).ifPresent(x -> 
b.ignoreRecursions(x));
+                       integer(a.initialDepth(), "initialDepth").ifPresent(x 
-> b.initialDepth(x));
+                       integer(a.maxDepth(), "maxDepth").ifPresent(x -> 
b.maxDepth(x));
                }
        }
 
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 6e460d8..31bca5e 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -3510,7 +3510,7 @@ public class RestClientBuilder extends 
BeanContextableBuilder {
         * </p>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_detectRecursions}
+        *      <li class='jm'>{@link BeanTraverseBuilder#detectRecursions()}
         * </ul>
         *
         * @return This object (for method chaining).
@@ -3563,7 +3563,7 @@ public class RestClientBuilder extends 
BeanContextableBuilder {
         * </p>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_ignoreRecursions}
+        *      <li class='jm'>{@link BeanTraverseBuilder#ignoreRecursions()}
         * </ul>
         *
         * @return This object (for method chaining).
@@ -3605,7 +3605,7 @@ public class RestClientBuilder extends 
BeanContextableBuilder {
         * </p>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
BeanTraverseContext#BEANTRAVERSE_initialDepth}
+        *      <li class='jm'>{@link BeanTraverseBuilder#initialDepth(int)}
         * </ul>
         *
         * @param value
@@ -3642,7 +3642,7 @@ public class RestClientBuilder extends 
BeanContextableBuilder {
         * </p>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_maxDepth}
+        *      <li class='jm'>{@link BeanTraverseBuilder#maxDepth}
         * </ul>
         *
         * @param value
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
index ec63357..692ccc8 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
@@ -12,10 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau;
 
-import static org.apache.juneau.BeanTraverseContext.*;
 import java.util.*;
 
-import org.apache.juneau.collections.*;
 import org.junit.runner.*;
 import org.junit.runners.*;
 
@@ -79,7 +77,7 @@ public class BeanTraversePropertiesComboTest extends 
ComboRoundTripTest {
                                
.rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:f>1</jp:f>\n</rdf:Description>\n</rdf:RDF>\n")
                                
.rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:f>1</jp:f>\n</rdf:Description>\n</rdf:RDF>\n")
                                .rdfXmlR("<rdf:RDF>\n  <rdf:Description>\n    
<jp:f>1</jp:f>\n  </rdf:Description>\n</rdf:RDF>\n")
-                               .properties(OMap.of(BEANTRAVERSE_initialDepth, 
2))
+                               .apply(BeanTraverseBuilder.class, x -> 
x.initialDepth(2))
                        },
                        {       /* 1 */
                                new ComboInput<>(
@@ -108,7 +106,7 @@ public class BeanTraversePropertiesComboTest extends 
ComboRoundTripTest {
                                .rdfXml("x")
                                .rdfXmlT("x")
                                .rdfXmlR("x")
-                               
.properties(OMap.of(BEANTRAVERSE_detectRecursions, true))
+                               .apply(BeanTraverseBuilder.class, x -> 
x.detectRecursions())
                                .exceptionMsg("Recursion occurred")
                        },
                        {       /* 2 */
@@ -138,7 +136,7 @@ public class BeanTraversePropertiesComboTest extends 
ComboRoundTripTest {
                                .rdfXml("<rdf:RDF>\n</rdf:RDF>\n")
                                .rdfXmlT("<rdf:RDF>\n</rdf:RDF>\n")
                                .rdfXmlR("<rdf:RDF>\n</rdf:RDF>\n")
-                               
.properties(OMap.of(BEANTRAVERSE_ignoreRecursions, true))
+                               .apply(BeanTraverseBuilder.class, x -> 
x.ignoreRecursions())
                        },
                        {       /* 3 */
                                new ComboInput<>(
@@ -167,7 +165,7 @@ public class BeanTraversePropertiesComboTest extends 
ComboRoundTripTest {
                                .rdfXml("<rdf:RDF>\n</rdf:RDF>\n")
                                .rdfXmlT("<rdf:RDF>\n</rdf:RDF>\n")
                                .rdfXmlR("<rdf:RDF>\n</rdf:RDF>\n")
-                               .properties(OMap.of(BEANTRAVERSE_maxDepth, 1))
+                               .apply(BeanTraverseBuilder.class, x -> 
x.maxDepth(1))
                        },
                });
        }

Reply via email to