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. *