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->B->C->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->B->C->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))
},
});
}