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: </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