You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2014/06/17 09:54:34 UTC
svn commit: r1603084 - in
/webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap:
AxiomSoapMessageFactory.java SoapEnvelopeImpl.java SoapMessageImpl.java
Author: veithen
Date: Tue Jun 17 07:54:34 2014
New Revision: 1603084
URL: http://svn.apache.org/r1603084
Log:
AXIOM-447: Only create SOAP Header when necessary.
Modified:
webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/AxiomSoapMessageFactory.java
webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapEnvelopeImpl.java
webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapMessageImpl.java
Modified: webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/AxiomSoapMessageFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/AxiomSoapMessageFactory.java?rev=1603084&r1=1603083&r2=1603084&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/AxiomSoapMessageFactory.java (original)
+++ webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/AxiomSoapMessageFactory.java Tue Jun 17 07:54:34 2014
@@ -73,9 +73,7 @@ public final class AxiomSoapMessageFacto
}
public SoapMessage createWebServiceMessage() {
- SOAPMessage axiomMessage = soapFactory.createSOAPMessage();
- axiomMessage.setSOAPEnvelope(soapFactory.getDefaultEnvelope());
- return new SoapMessageImpl(axiomMessage);
+ return new SoapMessageImpl(soapFactory.createDefaultSOAPMessage(), true);
}
public SoapMessage createWebServiceMessage(InputStream inputStream) throws IOException {
@@ -100,6 +98,6 @@ public final class AxiomSoapMessageFacto
SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, inputStream, charset);
// TODO: should SOAPModelBuilder have a getSOAPMessage() method?
// TODO: need to check that the SOAP version matches the content type
- return new SoapMessageImpl((SOAPMessage)builder.getDocument());
+ return new SoapMessageImpl((SOAPMessage)builder.getDocument(), false);
}
}
Modified: webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapEnvelopeImpl.java?rev=1603084&r1=1603083&r2=1603084&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapEnvelopeImpl.java (original)
+++ webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapEnvelopeImpl.java Tue Jun 17 07:54:34 2014
@@ -33,15 +33,17 @@ import org.springframework.ws.soap.SoapH
import org.springframework.ws.soap.SoapHeaderException;
final class SoapEnvelopeImpl extends SoapElementImpl<SOAPEnvelope> implements SoapEnvelope {
+ private final boolean autoCreateHeader;
private SoapHeaderImpl header;
private SoapBodyImpl body;
- SoapEnvelopeImpl(SoapMessageImpl message, SOAPEnvelope axiomNode) {
+ SoapEnvelopeImpl(SoapMessageImpl message, SOAPEnvelope axiomNode, boolean autoCreateHeader) {
super(message, axiomNode);
+ this.autoCreateHeader = autoCreateHeader;
}
public SoapHeader getHeader() throws SoapHeaderException {
- SOAPHeader axiomHeader = axiomNode.getHeader();
+ SOAPHeader axiomHeader = autoCreateHeader ? axiomNode.getOrCreateHeader() : axiomNode.getHeader();
if (header == null || header.axiomNode != axiomHeader) {
if (axiomHeader == null) {
header = null;
Modified: webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapMessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapMessageImpl.java?rev=1603084&r1=1603083&r2=1603084&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapMessageImpl.java (original)
+++ webservices/axiom/trunk/axiom-spring-ws/src/main/java/org/apache/axiom/spring/ws/soap/SoapMessageImpl.java Tue Jun 17 07:54:34 2014
@@ -55,14 +55,17 @@ final class SoapMessageImpl extends Abst
private final SourceExtractionStrategyStack extractionStrategyStack = new SourceExtractionStrategyStack();
private SoapEnvelopeImpl envelope;
- SoapMessageImpl(SOAPMessage axiomMessage) {
+ SoapMessageImpl(SOAPMessage axiomMessage, boolean autoCreateHeader) {
this.axiomMessage = axiomMessage;
+ if (autoCreateHeader) {
+ envelope = new SoapEnvelopeImpl(this, axiomMessage.getSOAPEnvelope(), true);
+ }
}
public SoapEnvelope getEnvelope() throws SoapEnvelopeException {
SOAPEnvelope axiomEnvelope = axiomMessage.getSOAPEnvelope();
if (envelope == null || envelope.axiomNode != axiomEnvelope) {
- envelope = new SoapEnvelopeImpl(this, axiomEnvelope);
+ envelope = new SoapEnvelopeImpl(this, axiomEnvelope, false);
}
return envelope;
}