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

commit 75014861a1fe95d76611ea6639a19e4f48d5da18
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Sat Sep 25 13:57:39 2021 -0400

    Context API refactoring.
---
 .../main/java/org/apache/juneau/BeanContext.java   | 179 ++-------------------
 .../java/org/apache/juneau/BeanContextBuilder.java |  44 +++--
 .../org/apache/juneau/BeanContextableBuilder.java  |   4 -
 .../main/java/org/apache/juneau/BeanSession.java   |   8 +-
 .../main/java/org/apache/juneau/Visibility.java    |   8 +-
 .../org/apache/juneau/annotation/BeanConfig.java   |   4 -
 .../juneau/annotation/BeanConfigAnnotation.java    |   8 +-
 .../java/org/apache/juneau/annotation/Beanp.java   |   2 +-
 8 files changed, 64 insertions(+), 193 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index a9a9ba6..2ec0d9c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -12,10 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau;
 
-import static org.apache.juneau.Visibility.*;
 import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
-import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.internal.ExceptionUtils.*;
 
 import java.io.*;
@@ -84,7 +82,7 @@ import org.apache.juneau.transform.*;
  * plain strings using the {@link Object#toString()} method.
  *
  * <p class='w800'>
- * Some settings (e.g. {@link #BEAN_beanFieldVisibility}) are used to 
determine what kinds of properties are
+ * Some settings (e.g. {@link 
BeanContextBuilder#beanFieldVisibility(Visibility)}) are used to determine what 
kinds of properties are
  * detected on beans.
  *
  * <p class='w800'>
@@ -157,60 +155,6 @@ public class BeanContext extends Context {
        static final String PREFIX = "BeanContext";
 
        /**
-        * Configuration property:  Minimum bean class visibility.
-        *
-        * <p>
-        * Classes are not considered beans unless they meet the minimum 
visibility requirements.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanContext#BEAN_beanClassVisibility BEAN_beanClassVisibility}
-        *      <li><b>Name:</b>  <js>"BeanContext.beanClassVisibility.s"</js>
-        *      <li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
-        *      <li><b>System property:</b>  
<c>BeanContext.beanClassVisibility</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANCONTEXT_BEANCLASSVISIBILITY</c>
-        *      <li><b>Default:</b>  {@link org.apache.juneau.Visibility#PUBLIC}
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanClassVisibility()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanClassVisibility(Visibility)}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEAN_beanClassVisibility = PREFIX + 
".beanClassVisibility.s";
-
-       /**
-        * Configuration property:  Minimum bean constructor visibility.
-        *
-        * <p>
-        * Only look for constructors with the specified minimum visibility.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanContext#BEAN_beanConstructorVisibility 
BEAN_beanConstructorVisibility}
-        *      <li><b>Name:</b>  
<js>"BeanContext.beanConstructorVisibility.s"</js>
-        *      <li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
-        *      <li><b>System property:</b>  
<c>BeanContext.beanConstructorVisibility</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANCONTEXT_BEANCONSTRUCTORVISIBILITY</c>
-        *      <li><b>Default:</b>  {@link org.apache.juneau.Visibility#PUBLIC}
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanConstructorVisibility()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanConstructorVisibility(Visibility)}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEAN_beanConstructorVisibility = PREFIX + 
".beanConstructorVisibility.s";
-
-       /**
         * Configuration property:  Bean dictionary.
         *
         * <p>
@@ -268,33 +212,6 @@ public class BeanContext extends Context {
        public static final String BEAN_disableBeansRequireSomeProperties = 
PREFIX + ".disableBeansRequireSomeProperties.b";
 
        /**
-        * Configuration property:  Minimum bean field visibility.
-        *
-        * <p>
-        * Only look for bean fields with the specified minimum visibility.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanContext#BEAN_beanFieldVisibility BEAN_beanFieldVisibility}
-        *      <li><b>Name:</b>  <js>"BeanContext.beanFieldVisibility.s"</js>
-        *      <li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
-        *      <li><b>System property:</b>  
<c>BeanContext.beanFieldVisibility</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANCONTEXT_BEANFIELDVISIBILITY</c>
-        *      <li><b>Default:</b>  {@link org.apache.juneau.Visibility#PUBLIC}
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanFieldVisibility()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanFieldVisibility(Visibility)}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEAN_beanFieldVisibility = PREFIX + 
".beanFieldVisibility.s";
-
-       /**
         * Configuration property:  BeanMap.put() returns old property value.
         *
         * <p>
@@ -323,33 +240,6 @@ public class BeanContext extends Context {
        public static final String BEAN_beanMapPutReturnsOldValue = PREFIX + 
".beanMapPutReturnsOldValue.b";
 
        /**
-        * Configuration property:  Minimum bean method visibility.
-        *
-        * <p>
-        * Only look for bean methods with the specified minimum visibility.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanContext#BEAN_beanMethodVisibility 
BEAN_beanMethodVisibility}
-        *      <li><b>Name:</b>  <js>"BeanContext.beanMethodVisibility.s"</js>
-        *      <li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
-        *      <li><b>System property:</b>  
<c>BeanContext.beanMethodVisibility</c>
-        *      <li><b>Environment variable:</b>  
<c>BEANCONTEXT_BEANMETHODVISIBILITY</c>
-        *      <li><b>Default:</b>  {@link org.apache.juneau.Visibility#PUBLIC}
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanMethodVisibility()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanMethodVisibility(Visibility)}
-        *              </ul>
-        * </ul>
-        */
-       public static final String BEAN_beanMethodVisibility = PREFIX + 
".beanMethodVisibility.s";
-
-       /**
         * Configuration property:  Beans require no-arg constructors.
         *
         * <p>
@@ -1013,14 +903,6 @@ public class BeanContext extends Context {
        };
 
 
-       // This map is important!
-       // We may have many Context objects that have identical BeanContext 
properties.
-       // This map ensures that if the BeanContext properties in the Context 
are the same,
-       // then we reuse the same Class->ClassMeta cache map.
-       // This significantly reduces the number of times we need to construct 
ClassMeta objects which can be expensive.
-       private static final 
ConcurrentHashMap<ContextProperties,Map<Class,ClassMeta>> cmCacheCache
-               = new ConcurrentHashMap<>();
-
        /** Default config.  All default settings. */
        public static final BeanContext DEFAULT = BeanContext.create().build();
 
@@ -1048,7 +930,7 @@ public class BeanContext extends Context {
                sortProperties,
                findFluentSetters;
 
-       private final Visibility
+       final Visibility
                beanConstructorVisibility,
                beanClassVisibility,
                beanMethodVisibility,
@@ -1075,24 +957,13 @@ public class BeanContext extends Context {
 
        /**
         * Constructor.
-        * 
+        *
         * @param builder The builder for this object.
         */
        public BeanContext(BeanContextBuilder builder) {
-               this(builder.getContextProperties());
-       }
-
-       /**
-        * Constructor.
-        *
-        * <p>
-        * Typically only called from {@link ContextBuilder#build(Class)} 
method.
-        *
-        * @param cp The property store containing the unmodifiable 
configuration for this bean context.
-        */
-       public BeanContext(ContextProperties cp) {
-               super(cp, true);
+               super(builder.getContextProperties(), true);
 
+               ContextProperties cp = builder.getContextProperties();
                if (cp == null)
                        cp = ContextProperties.DEFAULT;
 
@@ -1116,10 +987,10 @@ public class BeanContext extends Context {
                findFluentSetters = 
cp.getBoolean(BEAN_findFluentSetters).orElse(false);
                typePropertyName = 
cp.getString(BEAN_typePropertyName).orElse("_type");
 
-               beanConstructorVisibility = 
cp.get(BEAN_beanConstructorVisibility, Visibility.class).orElse(PUBLIC);
-               beanClassVisibility = cp.get(BEAN_beanClassVisibility, 
Visibility.class).orElse(PUBLIC);
-               beanMethodVisibility = cp.get(BEAN_beanMethodVisibility, 
Visibility.class).orElse(PUBLIC);
-               beanFieldVisibility = cp.get(BEAN_beanFieldVisibility, 
Visibility.class).orElse(PUBLIC);
+               beanConstructorVisibility = builder.beanConstructorVisibility;
+               beanClassVisibility = builder.beanClassVisibility;
+               beanMethodVisibility = builder.beanMethodVisibility;
+               beanFieldVisibility = builder.beanFieldVisibility;
 
                notBeanClasses = 
cp.getClassArray(BEAN_notBeanClasses).orElse(DEFAULT_NOTBEAN_CLASSES);
 
@@ -1156,13 +1027,9 @@ public class BeanContext extends Context {
                }
                swaps = lpf.toArray(new PojoSwap[lpf.size()]);
 
-               if (! cmCacheCache.containsKey(cp)) {
-                       ConcurrentHashMap<Class,ClassMeta> cm = new 
ConcurrentHashMap<>();
-                       cm.putIfAbsent(String.class, new 
ClassMeta(String.class, this, findPojoSwaps(String.class), 
findChildPojoSwaps(String.class)));
-                       cm.putIfAbsent(Object.class, new 
ClassMeta(Object.class, this, findPojoSwaps(Object.class), 
findChildPojoSwaps(Object.class)));
-                       cmCacheCache.putIfAbsent(cp, cm);
-               }
-               cmCache = cmCacheCache.get(cp);
+               cmCache = new ConcurrentHashMap<>();
+               cmCache.put(String.class, new ClassMeta(String.class, this, 
findPojoSwaps(String.class), findChildPojoSwaps(String.class)));
+               cmCache.put(Object.class, new ClassMeta(Object.class, this, 
findPojoSwaps(Object.class), findChildPojoSwaps(Object.class)));
                cmString = cmCache.get(String.class);
                cmObject = cmCache.get(Object.class);
                cmClass = cmCache.get(Class.class);
@@ -1311,20 +1178,6 @@ public class BeanContext extends Context {
        }
 
        /**
-        * Prints meta cache statistics to <c>System.out</c>.
-        */
-       protected static void dumpCacheStats() {
-               try {
-                       int ctCount = 0;
-                       for (Map<Class,ClassMeta> cm : cmCacheCache.values())
-                               ctCount += cm.size();
-                       System.out.println(format("ClassMeta cache: {0} 
instances in {1} caches", ctCount, cmCacheCache.size())); // NOT DEBUG
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-       }
-
-       /**
         * Returns the {@link BeanMeta} class for the specified class.
         *
         * @param <T> The class type to get the meta-data on.
@@ -1784,7 +1637,7 @@ public class BeanContext extends Context {
        /**
         * Minimum bean class visibility.
         *
-        * @see #BEAN_beanClassVisibility
+        * @see BeanContextBuilder#beanClassVisibility(Visibility)
         * @return
         *      Classes are not considered beans unless they meet the minimum 
visibility requirements.
         */
@@ -1795,7 +1648,7 @@ public class BeanContext extends Context {
        /**
         * Minimum bean constructor visibility.
         *
-        * @see #BEAN_beanConstructorVisibility
+        * @see BeanContextBuilder#beanConstructorVisibility(Visibility)
         * @return
         *      Only look for constructors with this specified minimum 
visibility.
         */
@@ -1818,7 +1671,7 @@ public class BeanContext extends Context {
         * Minimum bean field visibility.
         *
         *
-        * @see #BEAN_beanFieldVisibility
+        * @see BeanContextBuilder#beanFieldVisibility(Visibility)
         * @return
         *      Only look for bean fields with this specified minimum 
visibility.
         */
@@ -1841,7 +1694,7 @@ public class BeanContext extends Context {
        /**
         * Minimum bean method visibility.
         *
-        * @see #BEAN_beanMethodVisibility
+        * @see BeanContextBuilder#beanMethodVisibility(Visibility)
         * @return
         *      Only look for bean methods with this specified minimum 
visibility.
         */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
index d2ed05f..f541fbc 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
@@ -14,6 +14,7 @@ package org.apache.juneau;
 
 import static org.apache.juneau.BeanContext.*;
 import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.Visibility.*;
 
 import java.beans.*;
 import java.io.*;
@@ -54,8 +55,18 @@ import org.apache.juneau.utils.*;
 @FluentSetters
 public class BeanContextBuilder extends ContextBuilder {
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Static
+       
//-----------------------------------------------------------------------------------------------------------------
+
        private static final ConcurrentHashMap<HashKey,BeanContext> CACHE = new 
ConcurrentHashMap<>();
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Instance
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       Visibility beanClassVisibility, beanConstructorVisibility, 
beanMethodVisibility, beanFieldVisibility;
+
        /**
         * Constructor.
         *
@@ -63,6 +74,10 @@ public class BeanContextBuilder extends ContextBuilder {
         */
        protected BeanContextBuilder() {
                super();
+               beanClassVisibility = env("RestContext.beanClassVisibility", 
PUBLIC);
+               beanConstructorVisibility = 
env("RestContext.beanConstructorVisibility", PUBLIC);
+               beanMethodVisibility = env("RestContext.beanMethodVisibility", 
PUBLIC);
+               beanFieldVisibility = env("RestContext.beanFieldVisibility", 
PUBLIC);
        }
 
        /**
@@ -72,6 +87,10 @@ public class BeanContextBuilder extends ContextBuilder {
         */
        protected BeanContextBuilder(BeanContext copyFrom) {
                super(copyFrom);
+               beanClassVisibility = copyFrom.beanClassVisibility;
+               beanConstructorVisibility = copyFrom.beanConstructorVisibility;
+               beanMethodVisibility = copyFrom.beanMethodVisibility;
+               beanFieldVisibility = copyFrom.beanFieldVisibility;
        }
 
        /**
@@ -81,6 +100,10 @@ public class BeanContextBuilder extends ContextBuilder {
         */
        protected BeanContextBuilder(BeanContextBuilder copyFrom) {
                super(copyFrom);
+               beanClassVisibility = copyFrom.beanClassVisibility;
+               beanConstructorVisibility = copyFrom.beanConstructorVisibility;
+               beanMethodVisibility = copyFrom.beanMethodVisibility;
+               beanFieldVisibility = copyFrom.beanFieldVisibility;
        }
 
        @Override /* ContextBuilder */
@@ -92,7 +115,10 @@ public class BeanContextBuilder extends ContextBuilder {
        public BeanContext build() {
                ContextProperties cp = getContextProperties();
                cp = cp.subset(new String[]{"Context","BeanContext"});
-               HashKey key = HashKey.create().add(cp).build();
+               HashKey key = HashKey
+                       .create()
+                       .add(cp, beanClassVisibility, 
beanConstructorVisibility, beanMethodVisibility, beanFieldVisibility)
+                       .build();
                BeanContext bc = CACHE.get(key);
                if (bc == null) {
                        bc = new BeanContext(this);
@@ -138,7 +164,6 @@ public class BeanContextBuilder extends ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanClassVisibility()}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanClassVisibility}
         * </ul>
         *
         * @param value
@@ -148,7 +173,8 @@ public class BeanContextBuilder extends ContextBuilder {
         */
        @FluentSetter
        public BeanContextBuilder beanClassVisibility(Visibility value) {
-               return set(BEAN_beanClassVisibility, value);
+               beanClassVisibility = value;
+               return this;
        }
 
        /**
@@ -187,7 +213,6 @@ public class BeanContextBuilder extends ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanConstructorVisibility()}
-        *      <li class='jf'>{@link 
BeanContext#BEAN_beanConstructorVisibility}
         * </ul>
         *
         * @param value
@@ -197,7 +222,8 @@ public class BeanContextBuilder extends ContextBuilder {
         */
        @FluentSetter
        public BeanContextBuilder beanConstructorVisibility(Visibility value) {
-               return set(BEAN_beanConstructorVisibility, value);
+               beanConstructorVisibility = value;
+               return this;
        }
 
        /**
@@ -245,7 +271,6 @@ public class BeanContextBuilder extends ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanFieldVisibility()}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFieldVisibility}
         * </ul>
         *
         * @param value
@@ -255,7 +280,8 @@ public class BeanContextBuilder extends ContextBuilder {
         */
        @FluentSetter
        public BeanContextBuilder beanFieldVisibility(Visibility value) {
-               return set(BEAN_beanFieldVisibility, value);
+               beanFieldVisibility = value;
+               return this;
        }
 
        /**
@@ -383,7 +409,6 @@ public class BeanContextBuilder extends ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanMethodVisibility()}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanMethodVisibility}
         * </ul>
         *
         * @param value
@@ -393,7 +418,8 @@ public class BeanContextBuilder extends ContextBuilder {
         */
        @FluentSetter
        public BeanContextBuilder beanMethodVisibility(Visibility value) {
-               return set(BEAN_beanMethodVisibility, value);
+               beanMethodVisibility = value;
+               return this;
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java
index e0c1d66..d3f0b5b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java
@@ -168,7 +168,6 @@ public abstract class BeanContextableBuilder extends 
ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanClassVisibility()}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanClassVisibility}
         * </ul>
         *
         * @param value
@@ -218,7 +217,6 @@ public abstract class BeanContextableBuilder extends 
ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanConstructorVisibility()}
-        *      <li class='jf'>{@link 
BeanContext#BEAN_beanConstructorVisibility}
         * </ul>
         *
         * @param value
@@ -277,7 +275,6 @@ public abstract class BeanContextableBuilder extends 
ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanFieldVisibility()}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFieldVisibility}
         * </ul>
         *
         * @param value
@@ -418,7 +415,6 @@ public abstract class BeanContextableBuilder extends 
ContextBuilder {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanMethodVisibility()}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanMethodVisibility}
         * </ul>
         *
         * @param value
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 a453f6a..b03a0af 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
@@ -1249,7 +1249,7 @@ public class BeanSession extends Session {
        /**
         * Configuration property:  Minimum bean class visibility.
         *
-        * @see BeanContext#BEAN_beanClassVisibility
+        * @see BeanContextBuilder#beanClassVisibility(Visibility)
         * @return
         *      Classes are not considered beans unless they meet the minimum 
visibility requirements.
         */
@@ -1260,7 +1260,7 @@ public class BeanSession extends Session {
        /**
         * Configuration property:  Minimum bean constructor visibility.
         *
-        * @see BeanContext#BEAN_beanConstructorVisibility
+        * @see BeanContextBuilder#beanConstructorVisibility(Visibility)
         * @return
         *      Only look for constructors with this specified minimum 
visibility.
         */
@@ -1284,7 +1284,7 @@ public class BeanSession extends Session {
         * Configuration property:  Minimum bean field visibility.
         *
         *
-        * @see BeanContext#BEAN_beanFieldVisibility
+        * @see BeanContextBuilder#beanFieldVisibility(Visibility)
         * @return
         *      Only look for bean fields with this specified minimum 
visibility.
         */
@@ -1307,7 +1307,7 @@ public class BeanSession extends Session {
        /**
         * Configuration property:  Minimum bean method visibility.
         *
-        * @see BeanContext#BEAN_beanMethodVisibility
+        * @see BeanContextBuilder#beanMethodVisibility(Visibility)
         * @return
         *      Only look for bean methods with this specified minimum 
visibility.
         */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java
index 859d9a1..d91e82d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Visibility.java
@@ -25,10 +25,10 @@ import java.lang.reflect.*;
  * <p>
  * Used in conjunction with the following bean context properties:
  * <ul class='javatree'>
- *     <li class='jf'>{@link BeanContext#BEAN_beanConstructorVisibility}
- *     <li class='jf'>{@link BeanContext#BEAN_beanClassVisibility}
- *     <li class='jf'>{@link BeanContext#BEAN_beanFieldVisibility}
- *     <li class='jf'>{@link BeanContext#BEAN_beanMethodVisibility}
+ *     <li class='jm'>{@link 
BeanContextBuilder#beanConstructorVisibility(Visibility)}
+ *     <li class='jm'>{@link 
BeanContextBuilder#beanClassVisibility(Visibility)}
+ *     <li class='jm'>{@link 
BeanContextBuilder#beanFieldVisibility(Visibility)}
+ *     <li class='jm'>{@link 
BeanContextBuilder#beanMethodVisibility(Visibility)}
  * </ul>
  */
 public enum Visibility {
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 f1fcae9..37eef19 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
@@ -77,7 +77,6 @@ public @interface BeanConfig {
         *
         * <ul class='seealso'>
         *      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanClassVisibility(Visibility)}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanClassVisibility}
         * </ul>
         */
        String beanClassVisibility() default "";
@@ -108,7 +107,6 @@ public @interface BeanConfig {
         *
         * <ul class='seealso'>
         *      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanConstructorVisibility(Visibility)}
-        *      <li class='jf'>{@link 
BeanContext#BEAN_beanConstructorVisibility}
         * </ul>
         */
        String beanConstructorVisibility() default "";
@@ -139,7 +137,6 @@ public @interface BeanConfig {
         *
         * <ul class='seealso'>
         *      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanFieldVisibility(Visibility)}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFieldVisibility}
         * </ul>
         */
        String beanFieldVisibility() default "";
@@ -196,7 +193,6 @@ public @interface BeanConfig {
         *
         * <ul class='seealso'>
         *      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanMethodVisibility(Visibility)}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanMethodVisibility}
         * </ul>
         */
        String beanMethodVisibility() default "";
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
index e599d7b..3d54a8f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
@@ -45,13 +45,13 @@ public class BeanConfigAnnotation {
                public void apply(AnnotationInfo<BeanConfig> ai, 
BeanContextBuilder b) {
                        BeanConfig a = ai.getAnnotation();
 
-                       visibility(a.beanClassVisibility(), 
"beanClassVisibility").ifPresent(x -> b.set(BEAN_beanClassVisibility, x));
-                       visibility(a.beanConstructorVisibility(), 
"beanConstructorVisibility").ifPresent(x -> 
b.set(BEAN_beanConstructorVisibility, x));
+                       visibility(a.beanClassVisibility(), 
"beanClassVisibility").ifPresent(x -> b.beanClassVisibility(x));
+                       visibility(a.beanConstructorVisibility(), 
"beanConstructorVisibility").ifPresent(x -> b.beanConstructorVisibility(x));
+                       visibility(a.beanFieldVisibility(), 
"beanFieldVisibility").ifPresent(x -> b.beanFieldVisibility(x));
+                       visibility(a.beanMethodVisibility(), 
"beanMethodVisibility").ifPresent(x -> b.beanMethodVisibility(x));
                        b.prependTo(BEAN_beanDictionary, a.dictionary());
                        b.setIfNotEmpty(BEAN_beanDictionary, 
a.dictionary_replace());
-                       visibility(a.beanFieldVisibility(), 
"beanFieldVisibility").ifPresent(x -> b.set(BEAN_beanFieldVisibility, x));
                        bool(a.beanMapPutReturnsOldValue()).ifPresent(x -> 
b.set(BEAN_beanMapPutReturnsOldValue, x));
-                       visibility(a.beanMethodVisibility(), 
"beanMethodVisibility").ifPresent(x -> b.set(BEAN_beanMethodVisibility, x));
                        bool(a.beansRequireDefaultConstructor()).ifPresent(x -> 
b.set(BEAN_beansRequireDefaultConstructor, x));
                        bool(a.beansRequireSerializable()).ifPresent(x -> 
b.set(BEAN_beansRequireSerializable, x));
                        bool(a.beansRequireSettersForGetters()).ifPresent(x -> 
b.set(BEAN_beansRequireSettersForGetters, x));
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
index f554a9e..62e2c28 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
@@ -107,7 +107,7 @@ public @interface Beanp {
         * However, this property can be used to assign a different property 
name from the automatically inferred value.
         *
         * <p>
-        * If the {@link BeanContext#BEAN_beanFieldVisibility} setting on the 
bean context excludes this field (e.g. the
+        * If the {@link BeanContextBuilder#beanFieldVisibility(Visibility)} 
setting on the bean context excludes this field (e.g. the
         * visibility is set to PUBLIC, but the field is PROTECTED), this 
annotation can be used to force the field to be
         * identified as a property.
         *

Reply via email to