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

commit 5594708fdd4e5d168d2dc2ee51f051846f462231
Author: JamesBognar <[email protected]>
AuthorDate: Sun Sep 26 20:01:28 2021 -0400

    Context API refactoring.
---
 .../org/apache/juneau/json/SimpleJsonParser.java   |  6 ++-
 .../apache/juneau/json/SimpleJsonSerializer.java   |  8 +++-
 .../org/apache/juneau/msgpack/MsgPackParser.java   | 10 +---
 .../apache/juneau/msgpack/MsgPackSerializer.java   | 54 ++++------------------
 .../juneau/msgpack/MsgPackSerializerBuilder.java   | 33 +++++++++++++
 .../juneau/msgpack/annotation/MsgPackConfig.java   |  4 +-
 .../annotation/MsgPackConfigAnnotation.java        | 15 +++---
 7 files changed, 63 insertions(+), 67 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParser.java
index 82219b4..70f396d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParser.java
@@ -28,12 +28,16 @@ import org.apache.juneau.collections.*;
 public class SimpleJsonParser extends JsonParser {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined instances
+       // Static
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Default parser, Accept=application/json+simple. */
        public static final SimpleJsonParser DEFAULT = new 
SimpleJsonParser(create());
 
+       
//-------------------------------------------------------------------------------------------------------------------
+       // Instance
+       
//-------------------------------------------------------------------------------------------------------------------
+
        /**
         * Constructor.
         *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializer.java
index 8df84cf..afda1ad 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializer.java
@@ -36,7 +36,7 @@ package org.apache.juneau.json;
 public class SimpleJsonSerializer extends JsonSerializer {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined instances
+       // Static
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Default serializer, single quotes, {@link 
JsonSerializerBuilder#simpleMode() simple mode}. */
@@ -46,7 +46,7 @@ public class SimpleJsonSerializer extends JsonSerializer {
        public static final SimpleJsonSerializer DEFAULT_READABLE = new 
Readable(create());
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined subclasses
+       // Static subclasses
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Default serializer, single quotes, simple mode, with whitespace. */
@@ -62,6 +62,10 @@ public class SimpleJsonSerializer extends JsonSerializer {
                }
        }
 
+       
//-------------------------------------------------------------------------------------------------------------------
+       // Instance
+       
//-------------------------------------------------------------------------------------------------------------------
+
        /**
         * Constructor.
         *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
index bc76282..8c2c6c5 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
@@ -31,13 +31,7 @@ import org.apache.juneau.parser.*;
 public class MsgPackParser extends InputStreamParser implements 
MsgPackMetaProvider {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Configurable properties
-       
//-------------------------------------------------------------------------------------------------------------------
-
-       static final String PREFIX = "MsgPackParser";
-
-       
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined instances
+       // Static
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Default parser, all default settings.*/
@@ -50,7 +44,7 @@ public class MsgPackParser extends InputStreamParser 
implements MsgPackMetaProvi
        public static final MsgPackParser DEFAULT_BASE64 = new Base64(create());
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined subclasses
+       // Static subclasses
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Default parser, string input encoded as spaced-hex. */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 36c4006..7ef8f8a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -34,45 +34,7 @@ import org.apache.juneau.serializer.*;
 public class MsgPackSerializer extends OutputStreamSerializer implements 
MsgPackMetaProvider {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Configurable properties
-       
//-------------------------------------------------------------------------------------------------------------------
-
-       static final String PREFIX = "MsgPackSerializer";
-
-       /**
-        * Configuration property:  Add <js>"_type"</js> properties when needed.
-        *
-        * <p>
-        * If <jk>true</jk>, then <js>"_type"</js> properties will be added to 
beans if their type cannot be inferred
-        * through reflection.
-        * <p>
-        * When present, this value overrides the {@link 
#SERIALIZER_addBeanTypes} setting and is
-        * provided to customize the behavior of specific serializers in a 
{@link SerializerGroup}.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.msgpack.MsgPackSerializer#MSGPACK_addBeanTypes 
MSGPACK_addBeanTypes}
-        *      <li><b>Name:</b>  <js>"MsgPackSerializer.addBeanTypes.b"</js>
-        *      <li><b>Data type:</b>  <jk>boolean</jk>
-        *      <li><b>System property:</b>  
<c>MsgPackSerializer.addBeanTypes</c>
-        *      <li><b>Environment variable:</b>  
<c>MSGPACKSERIALIZER_ADDBEANTYPES</c>
-        *      <li><b>Default:</b>  <jk>false</jk>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.msgpack.annotation.MsgPackConfig#addBeanTypes()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.msgpack.MsgPackSerializerBuilder#addBeanTypes()}
-        *              </ul>
-        * </ul>
-        */
-       public static final String MSGPACK_addBeanTypes = PREFIX + 
".addBeanTypes.b";
-
-
-       
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined instances
+       // Static
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Default serializer, all default settings.*/
@@ -85,7 +47,7 @@ public class MsgPackSerializer extends OutputStreamSerializer 
implements MsgPack
        public static final MsgPackSerializer DEFAULT_BASE64 = new 
Base64(create());
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined subclasses
+       // Static subclasses
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Default serializer, spaced-hex string output. */
@@ -118,8 +80,9 @@ public class MsgPackSerializer extends 
OutputStreamSerializer implements MsgPack
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
-       private final boolean
-               addBeanTypes;
+       final boolean
+               addBeanTypesMsgPack;
+
        private final Map<ClassMeta<?>,MsgPackClassMeta> msgPackClassMetas = 
new ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,MsgPackBeanPropertyMeta> 
msgPackBeanPropertyMetas = new ConcurrentHashMap<>();
 
@@ -130,8 +93,7 @@ public class MsgPackSerializer extends 
OutputStreamSerializer implements MsgPack
         */
        protected MsgPackSerializer(MsgPackSerializerBuilder builder) {
                super(builder);
-               ContextProperties cp = getContextProperties();
-               this.addBeanTypes = cp.getFirstBoolean(MSGPACK_addBeanTypes, 
SERIALIZER_addBeanTypes).orElse(false);
+               this.addBeanTypesMsgPack = builder.addBeanTypesMsgPack;
        }
 
        @Override /* Context */
@@ -197,7 +159,7 @@ public class MsgPackSerializer extends 
OutputStreamSerializer implements MsgPack
 
        @Override
        protected final boolean isAddBeanTypes() {
-               return addBeanTypes;
+               return addBeanTypesMsgPack || super.isAddBeanTypes();
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -212,7 +174,7 @@ public class MsgPackSerializer extends 
OutputStreamSerializer implements MsgPack
                                OMap
                                        .create()
                                        .filtered()
-                                       .a("addBeanTypes", addBeanTypes)
+                                       .a("addBeanTypesMsgPack", 
addBeanTypesMsgPack)
                        );
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
index 0afed03..5c95e54 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
@@ -27,6 +27,8 @@ import org.apache.juneau.serializer.*;
 @FluentSetters
 public class MsgPackSerializerBuilder extends OutputStreamSerializerBuilder {
 
+       boolean addBeanTypesMsgPack;
+
        /**
         * Constructor, default settings.
         */
@@ -34,6 +36,7 @@ public class MsgPackSerializerBuilder extends 
OutputStreamSerializerBuilder {
                super();
                produces("octal/msgpack");
                type(MsgPackSerializer.class);
+               addBeanTypesMsgPack = 
env("MsgPackSerializer.addBeanTypesMsgPack", false);
        }
 
        /**
@@ -68,6 +71,36 @@ public class MsgPackSerializerBuilder extends 
OutputStreamSerializerBuilder {
        // Properties
        
//-----------------------------------------------------------------------------------------------------------------
 
+       /**
+        * Add <js>"_type"</js> properties when needed.
+        *
+        * <p>
+        * If <jk>true</jk>, then <js>"_type"</js> properties will be added to 
beans if their type cannot be inferred
+        * through reflection.
+        *
+        * <p>
+        * When present, this value overrides the {@link 
SerializerBuilder#addBeanTypes()} setting and is
+        * provided to customize the behavior of specific serializers in a 
{@link SerializerGroup}.
+        *
+        * @return This object.
+        */
+       @FluentSetter
+       public MsgPackSerializerBuilder addBeanTypesMsgPack() {
+               return addBeanTypesMsgPack(true);
+       }
+
+       /**
+        * Same as {@link #addBeanTypesMsgPack()} but allows you to explicitly 
specify the value.
+        *
+        * @param value The value for this setting.
+        * @return This object.
+        */
+       @FluentSetter
+       public MsgPackSerializerBuilder addBeanTypesMsgPack(boolean value) {
+               addBeanTypesMsgPack = value;
+               return this;
+       }
+
        // <FluentSetters>
 
        @Override
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java
index a92f3ff..30be756 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java
@@ -31,7 +31,7 @@ import org.apache.juneau.serializer.*;
 @Target({TYPE,METHOD})
 @Retention(RUNTIME)
 @Inherited
-@ContextApply(MsgPackConfigAnnotation.Apply.class)
+@ContextApply(MsgPackConfigAnnotation.ApplySerializer.class)
 public @interface MsgPackConfig {
 
        /**
@@ -73,7 +73,7 @@ public @interface MsgPackConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link MsgPackSerializer#MSGPACK_addBeanTypes}
+        *      <li class='jf'>{@link 
MsgPackSerializerBuilder#addBeanTypesMsgPack()}
         * </ul>
         */
        String addBeanTypes() default "";
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
index db1de73..5b60158 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
@@ -12,9 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.msgpack.annotation;
 
-import static org.apache.juneau.msgpack.MsgPackSerializer.*;
-
 import org.apache.juneau.*;
+import org.apache.juneau.msgpack.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 
@@ -24,24 +23,24 @@ import org.apache.juneau.svl.*;
 public class MsgPackConfigAnnotation {
 
        /**
-        * Applies {@link MsgPackConfig} annotations to a {@link 
ContextPropertiesBuilder}.
+        * Applies {@link MsgPackConfig} annotations to a {@link 
MsgPackSerializerBuilder}.
         */
-       public static class Apply extends 
AnnotationApplier<MsgPackConfig,ContextPropertiesBuilder> {
+       public static class ApplySerializer extends 
AnnotationApplier<MsgPackConfig,MsgPackSerializerBuilder> {
 
                /**
                 * Constructor.
                 *
                 * @param vr The resolver for resolving values in annotations.
                 */
-               public Apply(VarResolverSession vr) {
-                       super(MsgPackConfig.class, 
ContextPropertiesBuilder.class, vr);
+               public ApplySerializer(VarResolverSession vr) {
+                       super(MsgPackConfig.class, 
MsgPackSerializerBuilder.class, vr);
                }
 
                @Override
-               public void apply(AnnotationInfo<MsgPackConfig> ai, 
ContextPropertiesBuilder b) {
+               public void apply(AnnotationInfo<MsgPackConfig> ai, 
MsgPackSerializerBuilder b) {
                        MsgPackConfig a = ai.getAnnotation();
 
-                       bool(a.addBeanTypes()).ifPresent(x -> 
b.set(MSGPACK_addBeanTypes, x));
+                       bool(a.addBeanTypes()).ifPresent(x -> 
b.addBeanTypesMsgPack(x));
                }
        }
 }
\ No newline at end of file

Reply via email to