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 0ea7b4f Context API refactoring.
0ea7b4f is described below
commit 0ea7b4f807967b99b92c85da8fb28ddcfecd8b11
Author: JamesBognar <[email protected]>
AuthorDate: Sat Sep 25 18:57:05 2021 -0400
Context API refactoring.
---
.../main/java/org/apache/juneau/BeanContext.java | 147 ++-------------------
.../java/org/apache/juneau/BeanContextBuilder.java | 39 ++++--
.../org/apache/juneau/BeanContextableBuilder.java | 76 +++++------
.../main/java/org/apache/juneau/BeanSession.java | 30 ++---
.../java/org/apache/juneau/BeanSessionArgs.java | 33 +++--
.../juneau/annotation/BeanConfigAnnotation.java | 8 +-
6 files changed, 112 insertions(+), 221 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 5fb65f2..25ac462 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
@@ -156,98 +156,6 @@ public class BeanContext extends Context {
static final String PREFIX = "BeanContext";
/**
- * Configuration property: Bean type property name.
- *
- * <p>
- * This specifies the name of the bean property used to store the
dictionary name of a bean type so that the
- * parser knows the data type to reconstruct.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.BeanContext#BEAN_typePropertyName BEAN_typePropertyName}
- * <li><b>Name:</b> <js>"BeanContext.typePropertyName.s"</js>
- * <li><b>Data type:</b> <c>String</c>
- * <li><b>System property:</b> <c>BeanContext.typePropertyName</c>
- * <li><b>Environment variable:</b>
<c>BEANCONTEXT_TYPEPROPERTYNAME</c>
- * <li><b>Default:</b> <js>"_type"</js>
- * <li><b>Session property:</b> <jk>false</jk>
- * <li><b>Annotations:</b>
- * <ul>
- * <li class='ja'>{@link
org.apache.juneau.annotation.Bean#typePropertyName()}
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#typePropertyName()}
- * </ul>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.BeanContextBuilder#typePropertyName(String)}
- * </ul>
- * </ul>
- */
- public static final String BEAN_typePropertyName = PREFIX +
".typePropertyName.s";
-
- /**
- * Configuration property: Locale.
- *
- * <p>
- * Specifies the default locale for serializer and parser sessions when
not specified via {@link BeanSessionArgs#locale(Locale)}.
- * Typically used for POJO swaps that need to deal with locales such as
swaps that convert <l>Date</l> and <l>Calendar</l>
- * objects to strings by accessing it via the session passed into the
{@link PojoSwap#swap(BeanSession, Object)} and
- * {@link PojoSwap#unswap(BeanSession, Object, ClassMeta, String)}
methods.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.BeanContext#BEAN_locale CONTEXT_locale}
- * <li><b>Name:</b> <js>"Context.locale.s"</js>
- * <li><b>Data type:</b> {@link java.util.Locale}
- * <li><b>System property:</b> <c>Context.locale</c>
- * <li><b>Environment variable:</b> <c>CONTEXT_LOCALE</c>
- * <li><b>Default:</b> <jk>null</jk> (defaults to {@link
java.util.Locale#getDefault()})
- * <li><b>Session property:</b> <jk>true</jk>
- * <li><b>Annotations:</b>
- * <ul>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#locale()}
- * </ul>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.BeanContextBuilder#locale(Locale)}
- * <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#locale(Locale)}
- * </ul>
- * </ul>
- */
- public static final String BEAN_locale = PREFIX + ".locale.s";
-
- /**
- * Configuration property: Media type.
- *
- * <p>
- * Specifies the default media type for serializer and parser sessions
when not specified via {@link BeanSessionArgs#mediaType(MediaType)}.
- * Typically used for POJO swaps that need to serialize the same POJO
classes differently depending on
- * the specific requested media type. For example, a swap could
handle a request for media types <js>"application/json"</js>
- * and <js>"application/json+foo"</js> slightly differently even though
they're both being handled by the same JSON
- * serializer or parser.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.BeanContext#BEAN_mediaType CONTEXT_mediaType}
- * <li><b>Name:</b> <js>"Context.mediaType.s"</js>
- * <li><b>Data type:</b> {@link
org.apache.juneau.http.header.MediaType}
- * <li><b>System property:</b> <c>Context.mediaType</c>
- * <li><b>Environment variable:</b> <c>CONTEXT_MEDIATYPE</c>
- * <li><b>Default:</b> <jk>null</jk>
- * <li><b>Session property:</b> <jk>true</jk>
- * <li><b>Annotations:</b>
- * <ul>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#mediaType()}
- * </ul>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.BeanContextBuilder#mediaType(MediaType)}
- * <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#mediaType(MediaType)}
- * </ul>
- * </ul>
- */
- public static final String BEAN_mediaType = PREFIX + ".mediaType.s";
-
- /**
* Configuration property: Bean class exclusions.
*
* <p>
@@ -367,37 +275,6 @@ public class BeanContext extends Context {
*/
public static final String BEAN_swaps = PREFIX + ".swaps.lo";
- /**
- * Configuration property: Time zone.
- *
- * <p>
- * Specifies the default time zone for serializer and parser sessions
when not specified via {@link BeanSessionArgs#timeZone(TimeZone)}.
- * Typically used for POJO swaps that need to deal with timezones such
as swaps that convert <l>Date</l> and <l>Calendar</l>
- * objects to strings by accessing it via the session passed into the
{@link PojoSwap#swap(BeanSession, Object)} and
- * {@link PojoSwap#unswap(BeanSession, Object, ClassMeta, String)}
methods.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.BeanContext#BEAN_timeZone CONTEXT_timeZone}
- * <li><b>Name:</b> <js>"Context.timeZone.s"</js>
- * <li><b>Data type:</b> {@link java.util.TimeZone}
- * <li><b>System property:</b> <c>Context.timeZone</c>
- * <li><b>Environment variable:</b> <c>CONTEXT_TIMEZONE</c>
- * <li><b>Default:</b> <jk>null</jk>
- * <li><b>Session property:</b> <jk>true</jk>
- * <li><b>Annotations:</b>
- * <ul>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#timeZone()}
- * </ul>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.BeanContextBuilder#timeZone(TimeZone)}
- * <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#timeZone(TimeZone)}
- * </ul>
- * </ul>
- */
- public static final String BEAN_timeZone = PREFIX + ".timeZone.s";
-
/*
* The default package pattern exclusion list.
* Any beans in packages in this list will not be considered beans.
@@ -467,11 +344,11 @@ public class BeanContext extends Context {
private final PojoSwap<?,?>[] swaps;
private final BeanRegistry beanRegistry;
private final PropertyNamer propertyNamer;
- private final String typePropertyName;
+ final String typePropertyName;
- private final Locale locale;
- private final TimeZone timeZone;
- private final MediaType mediaType;
+ final Locale locale;
+ final TimeZone timeZone;
+ final MediaType mediaType;
final Map<Class,ClassMeta> cmCache;
private final ClassMeta<Object> cmObject; // Reusable ClassMeta that
represents general Objects.
@@ -510,7 +387,10 @@ public class BeanContext extends Context {
useJavaBeanIntrospector = builder.useJavaBeanIntrospector;
sortProperties = builder.sortProperties;
findFluentSetters = builder.findFluentSetters;
- typePropertyName =
cp.getString(BEAN_typePropertyName).orElse("_type");
+ typePropertyName =
ofNullable(builder.typePropertyName).orElse("_type");
+ locale =
ofNullable(builder.locale).orElseGet(()->Locale.getDefault());
+ timeZone = builder.timeZone;
+ mediaType = builder.mediaType;
beanConstructorVisibility = builder.beanConstructorVisibility;
beanClassVisibility = builder.beanClassVisibility;
@@ -521,9 +401,6 @@ public class BeanContext extends Context {
propertyNamer = cp.getInstance(BEAN_propertyNamer,
PropertyNamer.class).orElseGet(BasicPropertyNamer::new);
- locale = cp.getInstance(BEAN_locale,
Locale.class).orElseGet(()->Locale.getDefault());
- timeZone = cp.getInstance(BEAN_timeZone,
TimeZone.class).orElse(null);
- mediaType = cp.getInstance(BEAN_mediaType,
MediaType.class).orElse(null);
List<String> l1 = new LinkedList<>();
List<String> l2 = new LinkedList<>();
@@ -1279,7 +1156,7 @@ public class BeanContext extends Context {
/**
* Bean type property name.
*
- * @see #BEAN_typePropertyName
+ * @see BeanContextBuilder#typePropertyName(String)
* @return
* The name of the bean property used to store the dictionary name of a
bean type so that the parser knows the data type to reconstruct.
*/
@@ -1471,7 +1348,7 @@ public class BeanContext extends Context {
/**
* Locale.
*
- * @see #BEAN_locale
+ * @see BeanContextBuilder#locale(Locale)
* @return
* The default locale for serializer and parser sessions.
*/
@@ -1482,7 +1359,7 @@ public class BeanContext extends Context {
/**
* Media type.
*
- * @see #BEAN_mediaType
+ * @see BeanContextBuilder#mediaType(MediaType)
* @return
* The default media type value for serializer and parser sessions.
*/
@@ -1493,7 +1370,7 @@ public class BeanContext extends Context {
/**
* Time zone.
*
- * @see #BEAN_timeZone
+ * @see BeanContextBuilder#timeZone(TimeZone)
* @return
* The default timezone for serializer and parser sessions.
*/
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 a673681..9a40705 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
@@ -71,6 +71,10 @@ public class BeanContextBuilder extends ContextBuilder {
beansRequireSettersForGetters, disableIgnoreTransientFields,
disableIgnoreUnknownNullBeanProperties, disableIgnoreMissingSetters,
disableInterfaceProxies, findFluentSetters,
ignoreInvocationExceptionsOnGetters, ignoreInvocationExceptionsOnSetters,
ignoreUnknownBeanProperties, sortProperties, useEnumNames,
useJavaBeanIntrospector;
+ String typePropertyName;
+ MediaType mediaType;
+ Locale locale;
+ TimeZone timeZone;
/**
* Constructor.
@@ -100,6 +104,10 @@ public class BeanContextBuilder extends ContextBuilder {
sortProperties = env("BeanContext.sortProperties", false);
useEnumNames = env("BeanContext.useEnumNames", false);
useJavaBeanIntrospector =
env("BeanContext.useJavaBeanIntrospector", false);
+ typePropertyName = env("BeanContext.typePropertyName", "_type");
+ mediaType = env("BeanContext.mediaType", (MediaType)null);
+ timeZone = env("BeanContext.timeZone", (TimeZone)null);
+ locale = env("BeanContext.locale", Locale.getDefault());
}
/**
@@ -130,6 +138,10 @@ public class BeanContextBuilder extends ContextBuilder {
sortProperties = copyFrom.sortProperties;
useEnumNames = copyFrom.useEnumNames;
useJavaBeanIntrospector = copyFrom.useJavaBeanIntrospector;
+ typePropertyName = copyFrom.typePropertyName;
+ mediaType = copyFrom.mediaType;
+ timeZone = copyFrom.timeZone;
+ locale = copyFrom.locale;
}
/**
@@ -160,6 +172,10 @@ public class BeanContextBuilder extends ContextBuilder {
sortProperties = copyFrom.sortProperties;
useEnumNames = copyFrom.useEnumNames;
useJavaBeanIntrospector = copyFrom.useJavaBeanIntrospector;
+ typePropertyName = copyFrom.typePropertyName;
+ mediaType = copyFrom.mediaType;
+ timeZone = copyFrom.timeZone;
+ locale = copyFrom.locale;
}
@Override /* ContextBuilder */
@@ -195,7 +211,11 @@ public class BeanContextBuilder extends ContextBuilder {
sortProperties,
useEnumNames,
useJavaBeanIntrospector
- )
+ ),
+ typePropertyName,
+ mediaType,
+ timeZone,
+ locale
);
BeanContext bc = CACHE.get(key);
if (bc == null) {
@@ -2308,7 +2328,6 @@ public class BeanContextBuilder extends ContextBuilder {
* <ul class='seealso'>
* <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#locale()}
* <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#locale(Locale)}
- * <li class='jf'>{@link BeanContext#BEAN_locale}
* </ul>
*
* @param value The new value for this property.
@@ -2316,7 +2335,8 @@ public class BeanContextBuilder extends ContextBuilder {
*/
@FluentSetter
public BeanContextBuilder locale(Locale value) {
- return set(BEAN_locale, value);
+ locale = value;
+ return this;
}
/**
@@ -2359,7 +2379,6 @@ public class BeanContextBuilder extends ContextBuilder {
* <ul class='seealso'>
* <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#mediaType()}
* <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#mediaType(MediaType)}
- * <li class='jf'>{@link BeanContext#BEAN_mediaType}
* </ul>
*
* @param value The new value for this property.
@@ -2367,7 +2386,8 @@ public class BeanContextBuilder extends ContextBuilder {
*/
@FluentSetter
public BeanContextBuilder mediaType(MediaType value) {
- return set(BEAN_mediaType, value);
+ mediaType = value;
+ return this;
}
/**
@@ -2864,7 +2884,6 @@ public class BeanContextBuilder extends ContextBuilder {
* <ul class='seealso'>
* <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#timeZone()}
* <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#timeZone(TimeZone)}
- * <li class='jf'>{@link BeanContext#BEAN_timeZone}
* </ul>
*
* @param value The new value for this property.
@@ -2872,7 +2891,8 @@ public class BeanContextBuilder extends ContextBuilder {
*/
@FluentSetter
public BeanContextBuilder timeZone(TimeZone value) {
- return set(BEAN_timeZone, value);
+ timeZone = value;
+ return this;
}
/**
@@ -2965,7 +2985,6 @@ public class BeanContextBuilder extends ContextBuilder {
* <ul class='seealso'>
* <li class='ja'>{@link
org.apache.juneau.annotation.Bean#typePropertyName()}
* <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#typePropertyName()}
- * <li class='jf'>{@link BeanContext#BEAN_typePropertyName}
* </ul>
*
* @param value
@@ -2975,7 +2994,8 @@ public class BeanContextBuilder extends ContextBuilder {
*/
@FluentSetter
public BeanContextBuilder typePropertyName(String value) {
- return set(BEAN_typePropertyName, value);
+ typePropertyName = value;
+ return this;
}
/**
@@ -3010,7 +3030,6 @@ public class BeanContextBuilder extends ContextBuilder {
*
* <ul class='seealso'>
* <li class='ja'>{@link Bean#typePropertyName()
Bean(typePropertyName)}
- * <li class='jf'>{@link BeanContext#BEAN_typePropertyName}
* </ul>
*
* @param on The class the type property name applies to.
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 e6c2842..5af5fb4 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
@@ -167,7 +167,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beanClassVisibility()}
+ * <li class='ja'>{@link BeanConfig#beanClassVisibility()}
* </ul>
*
* @param value
@@ -216,7 +216,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beanConstructorVisibility()}
+ * <li class='ja'>{@link BeanConfig#beanConstructorVisibility()}
* </ul>
*
* @param value
@@ -274,7 +274,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beanFieldVisibility()}
+ * <li class='ja'>{@link BeanConfig#beanFieldVisibility()}
* </ul>
*
* @param value
@@ -368,7 +368,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beanMapPutReturnsOldValue()}
+ * <li class='ja'>{@link BeanConfig#beanMapPutReturnsOldValue()}
* <li class='jm'>{@link
BeanContextBuilder#beanMapPutReturnsOldValue()}
* </ul>
*
@@ -414,7 +414,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beanMethodVisibility()}
+ * <li class='ja'>{@link BeanConfig#beanMethodVisibility()}
* </ul>
*
* @param value
@@ -470,7 +470,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beansRequireDefaultConstructor()}
+ * <li class='ja'>{@link
BeanConfig#beansRequireDefaultConstructor()}
* <li class='jm'>{@link
BeanContextBuilder#beansRequireDefaultConstructor()}
* </ul>
*
@@ -519,7 +519,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beansRequireSerializable()}
+ * <li class='ja'>{@link BeanConfig#beansRequireSerializable()}
* <li class='jm'>{@link
BeanContextBuilder#beansRequireSerializable()}
* </ul>
*
@@ -566,7 +566,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#beansRequireSettersForGetters()}
+ * <li class='ja'>{@link
BeanConfig#beansRequireSettersForGetters()}
* <li class='jm'>{@link
BeanContextBuilder#beansRequireSettersForGetters()}
* </ul>
*
@@ -610,7 +610,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#disableBeansRequireSomeProperties()}
+ * <li class='ja'>{@link
BeanConfig#disableBeansRequireSomeProperties()}
* <li class='jm'>{@link
BeanContextBuilder#disableBeansRequireSomeProperties()}
* </ul>
*
@@ -1392,11 +1392,11 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.Bean#dictionary()}
- * <li class='ja'>{@link
org.apache.juneau.annotation.Beanp#dictionary()}
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#dictionary()}
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#dictionary_replace()}
- * <li class='jm'>{@link
org.apache.juneau.BeanContextableBuilder#beanDictionary(Class...)}
+ * <li class='ja'>{@link Bean#dictionary()}
+ * <li class='ja'>{@link Beanp#dictionary()}
+ * <li class='ja'>{@link BeanConfig#dictionary()}
+ * <li class='ja'>{@link BeanConfig#dictionary_replace()}
+ * <li class='jm'>{@link
BeanContextableBuilder#beanDictionary(Class...)}
* </ul>
*
* @param values
@@ -1595,8 +1595,8 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.Bean#findFluentSetters()}
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#findFluentSetters()}
+ * <li class='ja'>{@link Bean#findFluentSetters()}
+ * <li class='ja'>{@link BeanConfig#findFluentSetters()}
* <li class='jm'>{@link BeanContextBuilder#findFluentSetters()}
* </ul>
*
@@ -1676,7 +1676,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnGetters()}
+ * <li class='ja'>{@link
BeanConfig#ignoreInvocationExceptionsOnGetters()}
* <li class='jm'>{@link
BeanContextBuilder#ignoreInvocationExceptionsOnGetters()}
* </ul>
*
@@ -1715,7 +1715,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnSetters()}
+ * <li class='ja'>{@link
BeanConfig#ignoreInvocationExceptionsOnSetters()}
* <li class='jm'>{@link
BeanContextBuilder#ignoreInvocationExceptionsOnSetters()}
* </ul>
*
@@ -1758,7 +1758,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#disableIgnoreMissingSetters()}
+ * <li class='ja'>{@link BeanConfig#disableIgnoreMissingSetters()}
* <li class='jm'>{@link
BeanContextBuilder#disableIgnoreMissingSetters()}
* </ul>
*
@@ -1798,7 +1798,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#disableIgnoreTransientFields()}
+ * <li class='ja'>{@link BeanConfig#disableIgnoreTransientFields()}
* <li class='jm'>{@link
BeanContextBuilder#disableIgnoreTransientFields()}
* </ul>
*
@@ -1835,7 +1835,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#ignoreUnknownBeanProperties()}
+ * <li class='ja'>{@link BeanConfig#ignoreUnknownBeanProperties()}
* <li class='jm'>{@link
BeanContextBuilder#ignoreUnknownBeanProperties()}
* </ul>
*
@@ -1872,7 +1872,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#disableIgnoreUnknownNullBeanProperties()}
+ * <li class='ja'>{@link
BeanConfig#disableIgnoreUnknownNullBeanProperties()}
* <li class='jm'>{@link
BeanContextBuilder#disableIgnoreUnknownNullBeanProperties()}
* </ul>
*
@@ -2095,9 +2095,9 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#locale()}
- * <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#locale(Locale)}
- * <li class='jf'>{@link BeanContext#BEAN_locale}
+ * <li class='ja'>{@link BeanConfig#locale()}
+ * <li class='jm'>{@link BeanSessionArgs#locale(Locale)}
+ * <li class='jm'>{@link BeanContextBuilder#locale(Locale)}
* </ul>
*
* @param value The new value for this property.
@@ -2147,9 +2147,9 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#mediaType()}
- * <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#mediaType(MediaType)}
- * <li class='jf'>{@link BeanContext#BEAN_mediaType}
+ * <li class='ja'>{@link BeanConfig#mediaType()}
+ * <li class='jm'>{@link BeanSessionArgs#mediaType(MediaType)}
+ * <li class='jm'>{@link BeanContextBuilder#mediaType(MediaType)}
* </ul>
*
* @param value The new value for this property.
@@ -2201,8 +2201,8 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </ul>
*
* <ul class='seealso'>
- * <li class='ja'>{@link org.apache.juneau.annotation.BeanIgnore}
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#notBeanClasses()}
+ * <li class='ja'>{@link BeanIgnore}
+ * <li class='ja'>{@link BeanConfig#notBeanClasses()}
* <li class='jf'>{@link BeanContext#BEAN_notBeanClasses}
* </ul>
*
@@ -2638,9 +2638,9 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#timeZone()}
- * <li class='jm'>{@link
org.apache.juneau.BeanSessionArgs#timeZone(TimeZone)}
- * <li class='jf'>{@link BeanContext#BEAN_timeZone}
+ * <li class='ja'>{@link BeanConfig#timeZone()}
+ * <li class='jm'>{@link BeanSessionArgs#timeZone(TimeZone)}
+ * <li class='jm'>{@link BeanContextBuilder#timeZone(TimeZone)}
* </ul>
*
* @param value The new value for this property.
@@ -2741,9 +2741,9 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* </p>
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.Bean#typePropertyName()}
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#typePropertyName()}
- * <li class='jf'>{@link BeanContext#BEAN_typePropertyName}
+ * <li class='ja'>{@link Bean#typePropertyName()}
+ * <li class='ja'>{@link BeanConfig#typePropertyName()}
+ * <li class='jm'>{@link
BeanContextBuilder#typePropertyName(String)}
* </ul>
*
* @param value
@@ -2789,7 +2789,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
*
* <ul class='seealso'>
* <li class='ja'>{@link Bean#typePropertyName()
Bean(typePropertyName)}
- * <li class='jf'>{@link BeanContext#BEAN_typePropertyName}
+ * <li class='jm'>{@link
BeanContextBuilder#typePropertyName(String)}
* </ul>
*
* @param on The class the type property name applies to.
@@ -2859,7 +2859,7 @@ public abstract class BeanContextableBuilder extends
ContextBuilder {
* Otherwise, throws a {@link BeanRuntimeException}.
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#disableInterfaceProxies()}
+ * <li class='ja'>{@link BeanConfig#disableInterfaceProxies()}
* <li class='jm'>{@link
BeanContextBuilder#disableInterfaceProxies()}
* </ul>
*
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 a25f948..7ff36ee 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
@@ -12,11 +12,11 @@
//
***************************************************************************************************************************
package org.apache.juneau;
-import static org.apache.juneau.BeanContext.*;
import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.assertions.Assertions.*;
import static org.apache.juneau.internal.ClassUtils.*;
import static org.apache.juneau.internal.IOUtils.*;
+import static java.util.Optional.*;
import java.io.*;
import java.lang.reflect.*;
@@ -71,10 +71,9 @@ public class BeanSession extends Session {
this.ctx = ctx;
schema = args.schema;
sbStack = args.unmodifiable ? null : new Stack<>();
- SessionProperties sp = args.properties;
- locale = sp.get(BEAN_locale,
Locale.class).orElse(ctx.getDefaultLocale());
- timeZone = sp.get(BEAN_timeZone,
TimeZone.class).orElse(ctx.getDefaultTimeZone());
- mediaType = sp.get(BEAN_mediaType,
MediaType.class).orElse(ctx.getDefaultMediaType());
+ locale = ofNullable(args.locale).orElse(ctx.getDefaultLocale());
+ timeZone =
ofNullable(args.timeZone).orElse(ctx.getDefaultTimeZone());
+ mediaType =
ofNullable(args.mediaType).orElse(ctx.getDefaultMediaType());
}
/**
@@ -1083,12 +1082,11 @@ public class BeanSession extends Session {
* The locale is determined in the following order:
* <ol>
* <li><c>locale</c> parameter passed in through constructor.
- * <li>{@link BeanContext#BEAN_locale} entry in parameter passed
in through constructor.
- * <li>{@link BeanContext#BEAN_locale} setting on bean context.
+ * <li>{@link BeanContextBuilder#locale(Locale)} setting on bean
context.
* <li>Locale returned by {@link Locale#getDefault()}.
* </ol>
*
- * @see BeanContext#BEAN_locale
+ * @see BeanContextBuilder#locale(Locale)
* @return The session locale.
*/
public Locale getLocale() {
@@ -1101,7 +1099,7 @@ public class BeanSession extends Session {
* <p>
* For example, <js>"application/json"</js>.
*
- * @see BeanContext#BEAN_mediaType
+ * @see BeanContextBuilder#mediaType(MediaType)
* @return The media type for this session, or <jk>null</jk> if not
specified.
*/
public final MediaType getMediaType() {
@@ -1109,7 +1107,7 @@ public class BeanSession extends Session {
}
/**
- * Returns the type property name as defined by {@link
BeanContext#BEAN_typePropertyName}.
+ * Returns the type property name as defined by {@link
BeanContextBuilder#typePropertyName(String)}.
*
* @param cm
* The class meta of the type we're trying to resolve the type
name for.
@@ -1365,7 +1363,7 @@ public class BeanSession extends Session {
/**
* Configuration property: Bean type property name.
*
- * @see BeanContext#BEAN_typePropertyName
+ * @see BeanContextBuilder#typePropertyName(String)
* @return
* The name of the bean property used to store the dictionary name
of a bean type so that the parser knows the data type to reconstruct.
*/
@@ -1516,11 +1514,10 @@ public class BeanSession extends Session {
* The timezone is determined in the following order:
* <ol>
* <li><c>timeZone</c> parameter passed in through constructor.
- * <li>{@link BeanContext#BEAN_timeZone} entry in parameter passed
in through constructor.
- * <li>{@link BeanContext#BEAN_timeZone} setting on bean context.
+ * <li>{@link BeanContextBuilder#timeZone(TimeZone)} setting on
bean context.
* </ol>
*
- * @see BeanContext#BEAN_timeZone
+ * @see BeanContextBuilder#timeZone(TimeZone)
* @return The session timezone, or <jk>null</jk> if timezone not
specified.
*/
public final TimeZone getTimeZone() {
@@ -1534,11 +1531,10 @@ public class BeanSession extends Session {
* The timezone is determined in the following order:
* <ol>
* <li><c>timeZone</c> parameter passed in through constructor.
- * <li>{@link BeanContext#BEAN_timeZone} entry in parameter passed
in through constructor.
- * <li>{@link BeanContext#BEAN_timeZone} setting on bean context.
+ * <li>{@link BeanContextBuilder#timeZone(TimeZone)} setting on
bean context.
* </ol>
*
- * @see BeanContext#BEAN_timeZone
+ * @see BeanContextBuilder#timeZone(TimeZone)
* @return The session timezone, or the system timezone if not
specified. Never <jk>null</jk>.
*/
public final ZoneId getTimeZoneId() {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
index 8754c08..993d675 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSessionArgs.java
@@ -12,10 +12,9 @@
//
***************************************************************************************************************************
package org.apache.juneau;
-import static org.apache.juneau.BeanContext.*;
-
import java.util.*;
+import org.apache.juneau.annotation.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.http.header.*;
import org.apache.juneau.httppart.*;
@@ -33,6 +32,9 @@ public class BeanSessionArgs extends SessionArgs {
public static final BeanSessionArgs DEFAULT = new BeanSessionArgs();
HttpPartSchema schema;
+ TimeZone timeZone;
+ Locale locale;
+ MediaType mediaType;
/**
* Constructor
@@ -59,12 +61,11 @@ public class BeanSessionArgs extends SessionArgs {
* Specifies the default locale for serializer and parser sessions.
*
* <p>
- * If not specified, defaults to {@link BeanContext#BEAN_locale}.
+ * If not specified, defaults to {@link
BeanContextBuilder#locale(Locale)}.
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#locale()}
- * <li class='jm'>{@link
org.apache.juneau.BeanContextBuilder#locale(Locale)}
- * <li class='jf'>{@link BeanContext#BEAN_locale}
+ * <li class='ja'>{@link BeanConfig#locale()}
+ * <li class='jm'>{@link BeanContextBuilder#locale(Locale)}
* </ul>
*
* @param value
@@ -74,7 +75,7 @@ public class BeanSessionArgs extends SessionArgs {
*/
@FluentSetter
public BeanSessionArgs locale(Locale value) {
- property(BEAN_locale, value);
+ locale = value;
return this;
}
@@ -85,12 +86,11 @@ public class BeanSessionArgs extends SessionArgs {
* Specifies the default media type value for serializer and parser
sessions.
*
* <p>
- * If not specified, defaults to {@link BeanContext#BEAN_mediaType}.
+ * If not specified, defaults to {@link
BeanContextBuilder#mediaType(MediaType)}.
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#mediaType()}
- * <li class='jm'>{@link
org.apache.juneau.BeanContextBuilder#mediaType(MediaType)}
- * <li class='jf'>{@link BeanContext#BEAN_mediaType}
+ * <li class='ja'>{@link BeanConfig#mediaType()}
+ * <li class='jm'>{@link BeanContextBuilder#mediaType(MediaType)}
* </ul>
*
* @param value
@@ -100,7 +100,7 @@ public class BeanSessionArgs extends SessionArgs {
*/
@FluentSetter
public BeanSessionArgs mediaType(MediaType value) {
- property(BEAN_mediaType, value);
+ mediaType = value;
return this;
}
@@ -128,12 +128,11 @@ public class BeanSessionArgs extends SessionArgs {
* Specifies the default timezone for serializer and parser sessions.
*
* <p>
- * If not specified, defaults to {@link BeanContext#BEAN_timeZone}.
+ * If not specified, defaults to {@link
BeanContextBuilder#timeZone(TimeZone)}.
*
* <ul class='seealso'>
- * <li class='ja'>{@link
org.apache.juneau.annotation.BeanConfig#timeZone()}
- * <li class='jm'>{@link
org.apache.juneau.BeanContextBuilder#timeZone(TimeZone)}
- * <li class='jf'>{@link BeanContext#BEAN_timeZone}
+ * <li class='ja'>{@link BeanConfig#timeZone()}
+ * <li class='jm'>{@link BeanContextBuilder#timeZone(TimeZone)}
* </ul>
*
* @param value
@@ -143,7 +142,7 @@ public class BeanSessionArgs extends SessionArgs {
*/
@FluentSetter
public BeanSessionArgs timeZone(TimeZone value) {
- property(BEAN_timeZone, value);
+ timeZone = value;
return this;
}
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 b88c358..cdec2b1 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
@@ -56,7 +56,7 @@ public class BeanConfigAnnotation {
bool(a.beansRequireSerializable()).ifPresent(x ->
b.beansRequireSerializable(x));
bool(a.beansRequireSettersForGetters()).ifPresent(x ->
b.beansRequireSettersForGetters(x));
bool(a.disableBeansRequireSomeProperties()).ifPresent(x
-> b.disableBeansRequireSomeProperties(x));
- string(a.typePropertyName()).ifPresent(x ->
b.set(BEAN_typePropertyName, x));
+ string(a.typePropertyName()).ifPresent(x ->
b.typePropertyName(x));
bool(a.debug()).ifPresent(x -> b.set(CONTEXT_debug, x));
bool(a.findFluentSetters()).ifPresent(x ->
b.findFluentSetters(x));
bool(a.ignoreInvocationExceptionsOnGetters()).ifPresent(x ->
b.ignoreInvocationExceptionsOnGetters(x));
@@ -66,8 +66,8 @@ public class BeanConfigAnnotation {
bool(a.ignoreUnknownBeanProperties()).ifPresent(x ->
b.ignoreUnknownBeanProperties(x));
bool(a.disableIgnoreUnknownNullBeanProperties()).ifPresent(x ->
b.disableIgnoreUnknownNullBeanProperties(x));
asList(a.interfaces()).stream().map(x ->
BeanAnnotation.create(x).interfaceClass(x).build()).forEach(x ->
b.annotations(x));
-
string(a.locale()).map(Locale::forLanguageTag).ifPresent(x ->
b.set(BEAN_locale, x));
- string(a.mediaType()).map(MediaType::of).ifPresent(x ->
b.set(BEAN_mediaType, x));
+
string(a.locale()).map(Locale::forLanguageTag).ifPresent(x -> b.locale(x));
+ string(a.mediaType()).map(MediaType::of).ifPresent(x ->
b.mediaType(x));
b.setIfNotEmpty(BEAN_notBeanClasses,
a.notBeanClasses());
b.setIfNotEmpty(BEAN_notBeanClasses,
a.notBeanClasses_replace());
b.addTo(BEAN_notBeanPackages,
stringList(a.notBeanPackages()));
@@ -76,7 +76,7 @@ public class BeanConfigAnnotation {
bool(a.sortProperties()).ifPresent(x ->
b.sortProperties(x));
b.prependTo(BEAN_swaps, a.swaps());
b.setIfNotEmpty(BEAN_swaps, a.swaps_replace());
-
string(a.timeZone()).map(TimeZone::getTimeZone).ifPresent(x ->
b.set(BEAN_timeZone, x));
+
string(a.timeZone()).map(TimeZone::getTimeZone).ifPresent(x -> b.timeZone(x));
bool(a.useEnumNames()).ifPresent(x ->
b.useEnumNames(x));
bool(a.disableInterfaceProxies()).ifPresent(x ->
b.disableInterfaceProxies(x));
bool(a.useJavaBeanIntrospector()).ifPresent(x ->
b.useJavaBeanIntrospector(x));