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

commit 3c979beb764c57ae7fe12552cfa49b4233c01f72
Author: JamesBognar <[email protected]>
AuthorDate: Mon Sep 27 10:20:07 2021 -0400

    Context API refactoring.
---
 .../org/apache/juneau/soap/SoapXmlSerializer.java  | 36 ++--------------------
 .../juneau/soap/SoapXmlSerializerBuilder.java      | 16 +++++-----
 .../juneau/soap/SoapXmlSerializerSession.java      | 17 ++++------
 .../juneau/soap/annotation/SoapXmlConfig.java      |  4 +--
 .../soap/annotation/SoapXmlConfigAnnotation.java   | 15 +++++----
 5 files changed, 26 insertions(+), 62 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
index f227e63..35fc566 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
@@ -38,40 +38,11 @@ import org.apache.juneau.xml.*;
 public final class SoapXmlSerializer extends XmlSerializer implements 
SoapXmlMetaProvider {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Configurable properties
-       
//-------------------------------------------------------------------------------------------------------------------
-
-       static final String PREFIX = "SoapXmlSerializer";
-
-       /**
-        * Configuration property:  The <c>SOAPAction</c> HTTP header value to 
set on responses.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.soap.SoapXmlSerializer#SOAPXML_SOAPAction SOAPXML_SOAPAction}
-        *      <li><b>Name:</b>  <js>"SoapXmlSerializer.SOAPAction.s"</js>
-        *      <li><b>Data type:</b>  <c>String</c>
-        *      <li><b>System property:</b>  <c>SoapXmlSerializer.SOAPAction</c>
-        *      <li><b>Environment variable:</b>  
<c>SOAPXMLSERIALIZER_SOAPACTION</c>
-        *      <li><b>Default:</b>  
<js>"http://www.w3.org/2003/05/soap-envelope";</js>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.soap.annotation.SoapXmlConfig#soapAction()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.soap.SoapXmlSerializerBuilder#soapAction(String)}
-        *              </ul>
-        * </ul>
-        */
-       public static final String SOAPXML_SOAPAction = PREFIX + 
".SOAPAction.s";
-
-
-       
//-------------------------------------------------------------------------------------------------------------------
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
        final String soapAction;
+
        private final Map<ClassMeta<?>,SoapXmlClassMeta> soapXmlClassMetas = 
new ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,SoapXmlBeanPropertyMeta> 
soapXmlBeanPropertyMetas = new ConcurrentHashMap<>();
 
@@ -82,8 +53,7 @@ public final class SoapXmlSerializer extends XmlSerializer 
implements SoapXmlMet
         */
        protected SoapXmlSerializer(SoapXmlSerializerBuilder builder) {
                super(builder);
-               ContextProperties cp = getContextProperties();
-               soapAction = 
cp.getString(SOAPXML_SOAPAction).orElse("http://www.w3.org/2003/05/soap-envelope";);
+               soapAction = builder.soapAction;
        }
 
        @Override /* Context */
@@ -150,7 +120,7 @@ public final class SoapXmlSerializer extends XmlSerializer 
implements SoapXmlMet
        /**
         * The SOAPAction HTTP header value to set on responses.
         *
-        * @see #SOAPXML_SOAPAction
+        * @see SoapXmlSerializerBuilder#soapAction(String)
         * @return
         *      The SOAPAction HTTP header value to set on responses.
         */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
index e3b58e7..e3c1c14 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.soap;
 
-import static org.apache.juneau.soap.SoapXmlSerializer.*;
-
 import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.nio.charset.*;
@@ -30,6 +28,8 @@ import org.apache.juneau.xml.*;
 @FluentSetters
 public class SoapXmlSerializerBuilder extends XmlSerializerBuilder {
 
+       String soapAction;
+
        /**
         * Constructor, default settings.
         */
@@ -38,6 +38,7 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
                produces("text/xml");
                accept("text/xml+soap");
                type(SoapXmlSerializer.class);
+               soapAction = "http://www.w3.org/2003/05/soap-envelope";;
        }
 
        /**
@@ -47,6 +48,7 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
         */
        protected SoapXmlSerializerBuilder(SoapXmlSerializer copyFrom) {
                super(copyFrom);
+               soapAction = copyFrom.soapAction;
        }
 
        /**
@@ -56,6 +58,7 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
         */
        protected SoapXmlSerializerBuilder(SoapXmlSerializerBuilder copyFrom) {
                super(copyFrom);
+               soapAction = copyFrom.soapAction;
        }
 
        @Override /* ContextBuilder */
@@ -73,11 +76,7 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
        
//-----------------------------------------------------------------------------------------------------------------
 
        /**
-        * <i><l>SoapXmlSerializer</l> configuration property:&emsp;</i>  The 
<c>SOAPAction</c> HTTP header value to set on responses.
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link SoapXmlSerializer#SOAPXML_SOAPAction}
-        * </ul>
+        * The <c>SOAPAction</c> HTTP header value to set on responses.
         *
         * @param value
         *      The new value for this property.
@@ -86,7 +85,8 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
         */
        @FluentSetter
        public SoapXmlSerializerBuilder soapAction(String value) {
-               return set(SOAPXML_SOAPAction, value);
+               soapAction = value;
+               return this;
        }
 
        // <FluentSetters>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
index aab17cc..b1db57f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerSession.java
@@ -12,12 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.soap;
 
-import static org.apache.juneau.soap.SoapXmlSerializer.*;
-
 import java.io.IOException;
 import java.util.*;
 
-import org.apache.juneau.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.xml.*;
@@ -31,7 +28,7 @@ import org.apache.juneau.xml.*;
  */
 public class SoapXmlSerializerSession extends XmlSerializerSession {
 
-       private final String soapAction;
+       private final SoapXmlSerializer ctx;
 
        /**
         * Create a new session using properties specified in the context.
@@ -48,8 +45,7 @@ public class SoapXmlSerializerSession extends 
XmlSerializerSession {
        public SoapXmlSerializerSession(SoapXmlSerializer ctx, 
SerializerSessionArgs args) {
                super(ctx, args);
 
-               SessionProperties sp = getSessionProperties();
-               soapAction = sp.get(SOAPXML_SOAPAction, 
String.class).orElse(ctx.soapAction);
+               this.ctx = ctx;
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -64,7 +60,7 @@ public class SoapXmlSerializerSession extends 
XmlSerializerSession {
                                .attr("encoding", "UTF-8")
                                .appendln("?>");
                        w.oTag("soap", "Envelope")
-                               .attr("xmlns", "soap", soapAction)
+                               .attr("xmlns", "soap", getSoapAction())
                                .appendln(">");
                        w.sTag(1, "soap", "Body").nl(1);
                        indent += 2;
@@ -77,7 +73,7 @@ public class SoapXmlSerializerSession extends 
XmlSerializerSession {
 
        @Override /* Serializer */
        public Map<String,String> getResponseHeaders() {
-               return AMap.of("SOAPAction",soapAction);
+               return AMap.of("SOAPAction",getSoapAction());
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -87,12 +83,12 @@ public class SoapXmlSerializerSession extends 
XmlSerializerSession {
        /**
         * Configuration property:  The SOAPAction HTTP header value to set on 
responses.
         *
-        * @see SoapXmlSerializer#SOAPXML_SOAPAction
+        * @see SoapXmlSerializerBuilder#soapAction(String)
         * @return
         *      The SOAPAction HTTP header value to set on responses.
         */
        public String getSoapAction() {
-               return soapAction;
+               return ctx.getSoapAction();
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -107,7 +103,6 @@ public class SoapXmlSerializerSession extends 
XmlSerializerSession {
                                OMap
                                        .create()
                                        .filtered()
-                                       .a("soapAction", soapAction)
                        );
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfig.java
index 879bb10..b7dbc7d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfig.java
@@ -30,7 +30,7 @@ import org.apache.juneau.soap.*;
 @Target({TYPE,METHOD})
 @Retention(RUNTIME)
 @Inherited
-@ContextApply(SoapXmlConfigAnnotation.Apply.class)
+@ContextApply(SoapXmlConfigAnnotation.SerializerApply.class)
 public @interface SoapXmlConfig {
 
        /**
@@ -53,7 +53,7 @@ public @interface SoapXmlConfig {
         * Configuration property:  The <c>SOAPAction</c> HTTP header value to 
set on responses.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link SoapXmlSerializer#SOAPXML_SOAPAction}
+        *      <li class='jm'>{@link 
SoapXmlSerializerBuilder#soapAction(String)}
         * </ul>
         */
        String soapAction() default "";
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
index 2dc4e2f..e613d3b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
@@ -12,10 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.soap.annotation;
 
-import static org.apache.juneau.soap.SoapXmlSerializer.*;
-
 import org.apache.juneau.*;
 import org.apache.juneau.reflect.*;
+import org.apache.juneau.soap.*;
 import org.apache.juneau.svl.*;
 
 /**
@@ -24,24 +23,24 @@ import org.apache.juneau.svl.*;
 public class SoapXmlConfigAnnotation {
 
        /**
-        * Applies {@link SoapXmlConfig} annotations to a {@link 
ContextPropertiesBuilder}.
+        * Applies {@link SoapXmlConfig} annotations to a {@link 
SoapXmlSerializerBuilder}.
         */
-       public static class Apply extends 
AnnotationApplier<SoapXmlConfig,ContextPropertiesBuilder> {
+       public static class SerializerApply extends 
AnnotationApplier<SoapXmlConfig,SoapXmlSerializerBuilder> {
 
                /**
                 * Constructor.
                 *
                 * @param vr The resolver for resolving values in annotations.
                 */
-               public Apply(VarResolverSession vr) {
-                       super(SoapXmlConfig.class, 
ContextPropertiesBuilder.class, vr);
+               public SerializerApply(VarResolverSession vr) {
+                       super(SoapXmlConfig.class, 
SoapXmlSerializerBuilder.class, vr);
                }
 
                @Override
-               public void apply(AnnotationInfo<SoapXmlConfig> ai, 
ContextPropertiesBuilder b) {
+               public void apply(AnnotationInfo<SoapXmlConfig> ai, 
SoapXmlSerializerBuilder b) {
                        SoapXmlConfig a = ai.getAnnotation();
 
-                       string(a.soapAction()).ifPresent(x -> 
b.set(SOAPXML_SOAPAction, x));
+                       string(a.soapAction()).ifPresent(x -> b.soapAction(x));
                }
        }
 }
\ No newline at end of file

Reply via email to