Author: gnodet
Date: Thu Mar 8 04:41:26 2007
New Revision: 516027
URL: http://svn.apache.org/viewvc?view=rev&rev=516027
Log:
SM-851: Better soap/wsdl support
Modified:
incubator/servicemix/trunk/common/pom.xml
incubator/servicemix/trunk/common/servicemix-soap2/ (props changed)
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/impl/Wsdl1SoapBindingImpl.java
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/interceptors/SoapFaultOutInterceptor.java
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap11BindingFactory.java
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap12BindingFactory.java
Modified: incubator/servicemix/trunk/common/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/pom.xml?view=diff&rev=516027&r1=516026&r2=516027
==============================================================================
--- incubator/servicemix/trunk/common/pom.xml (original)
+++ incubator/servicemix/trunk/common/pom.xml Thu Mar 8 04:41:26 2007
@@ -37,6 +37,7 @@
<module>servicemix-common</module>
<module>servicemix-components</module>
<module>servicemix-soap</module>
+ <module>servicemix-soap2</module>
<module>servicemix-beanflow</module>
</modules>
Propchange: incubator/servicemix/trunk/common/servicemix-soap2/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Mar 8 04:41:26 2007
@@ -1,3 +1,4 @@
.classpath
.project
target
+.settings
Modified:
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/impl/Wsdl1SoapBindingImpl.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/impl/Wsdl1SoapBindingImpl.java?view=diff&rev=516027&r1=516026&r2=516027
==============================================================================
---
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/impl/Wsdl1SoapBindingImpl.java
(original)
+++
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/impl/Wsdl1SoapBindingImpl.java
Thu Mar 8 04:41:26 2007
@@ -19,6 +19,7 @@
import java.util.List;
import org.apache.servicemix.soap.api.Interceptor;
+import org.apache.servicemix.soap.api.Message;
import org.apache.servicemix.soap.bindings.soap.SoapVersion;
import
org.apache.servicemix.soap.bindings.soap.interceptors.MustUnderstandInterceptor;
import
org.apache.servicemix.soap.bindings.soap.interceptors.SoapFaultInInterceptor;
@@ -43,6 +44,7 @@
public class Wsdl1SoapBindingImpl extends AbstractBinding<Wsdl1SoapOperation>
implements Wsdl1SoapBinding {
+ private SoapVersion soapVersion;
private String locationURI;
private String transportURI;
private Style style;
@@ -52,6 +54,8 @@
}
public Wsdl1SoapBindingImpl(SoapVersion soapVersion) {
+ this.soapVersion = soapVersion;
+
List<Interceptor> phase;
// ServerIn phase
@@ -141,5 +145,23 @@
this.style = style;
}
+ public Message createMessage() {
+ Message msg = super.createMessage();
+ if (msg.get(SoapVersion.class) == null && soapVersion != null) {
+ msg.put(SoapVersion.class, soapVersion);
+ }
+ return msg;
+ }
+
+ public Message createMessage(Message request) {
+ Message msg = super.createMessage(request);
+ if (msg.get(SoapVersion.class) == null &&
request.get(SoapVersion.class) != null) {
+ msg.put(SoapVersion.class, request.get(SoapVersion.class));
+ }
+ if (msg.get(SoapVersion.class) == null && soapVersion != null) {
+ msg.put(SoapVersion.class, soapVersion);
+ }
+ return msg;
+ }
}
Modified:
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/interceptors/SoapFaultOutInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/interceptors/SoapFaultOutInterceptor.java?view=diff&rev=516027&r1=516026&r2=516027
==============================================================================
---
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/interceptors/SoapFaultOutInterceptor.java
(original)
+++
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/bindings/soap/interceptors/SoapFaultOutInterceptor.java
Thu Mar 8 04:41:26 2007
@@ -48,7 +48,7 @@
if (exception instanceof SoapFault) {
SoapFault fault = (SoapFault) exception;
if (soapVersion == null) {
- //soapVersion = Soap11.getInstance();
+ soapVersion = Soap11.getInstance();
}
if (soapVersion.getVersion() == 1.1) {
writeSoap11Fault(writer, fault, soapVersion);
Modified:
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap11BindingFactory.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap11BindingFactory.java?view=diff&rev=516027&r1=516026&r2=516027
==============================================================================
---
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap11BindingFactory.java
(original)
+++
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap11BindingFactory.java
Thu Mar 8 04:41:26 2007
@@ -140,7 +140,7 @@
part.setType(wsdlPart.getTypeName());
part.setElement(wsdlPart.getElementName());
if ((wsdlSoapBody.getParts() == null &&
wsdlInput.getMessage().getOrderedParts(null).size() == 1) ||
- wsdlSoapBody.getParts().contains(part.getName())) {
+ wsdlSoapBody.getParts().contains(part.getName())) {
part.setBody(true);
if (operation.getStyle() == Style.DOCUMENT) {
input.setElementName(wsdlPart.getElementName());
@@ -181,18 +181,14 @@
}
output.setMessageName(outputName);
- List<String> bodyParts = WSDLUtils.getParts(wsdlSoapBody);
- if (bodyParts == null) {
- bodyParts = new ArrayList<String>();
- }
-
for (Iterator itPart =
wsdlOutput.getMessage().getOrderedParts(null).iterator(); itPart.hasNext();) {
Part wsdlPart = (Part) itPart.next();
Wsdl1SoapPartImpl part = new Wsdl1SoapPartImpl();
part.setName(wsdlPart.getName());
part.setType(wsdlPart.getTypeName());
part.setElement(wsdlPart.getElementName());
- if (bodyParts.contains(part.getName())) {
+ if ((wsdlSoapBody.getParts() == null &&
wsdlOutput.getMessage().getOrderedParts(null).size() == 1) ||
+ wsdlSoapBody.getParts().contains(part.getName())) {
part.setBody(true);
output.setElementName(wsdlPart.getElementName());
} else {
Modified:
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap12BindingFactory.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap12BindingFactory.java?view=diff&rev=516027&r1=516026&r2=516027
==============================================================================
---
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap12BindingFactory.java
(original)
+++
incubator/servicemix/trunk/common/servicemix-soap2/src/main/java/org/apache/servicemix/soap/wsdl/Wsdl1Soap12BindingFactory.java
Thu Mar 8 04:41:26 2007
@@ -142,7 +142,8 @@
part.setName(wsdlPart.getName());
part.setType(wsdlPart.getTypeName());
part.setElement(wsdlPart.getElementName());
- if (wsdlSoapBody.getParts().contains(part.getName())) {
+ if ((wsdlSoapBody.getParts() == null &&
wsdlInput.getMessage().getOrderedParts(null).size() == 1) ||
+ wsdlSoapBody.getParts().contains(part.getName())) {
part.setBody(true);
input.setElementName(wsdlPart.getElementName());
} else {
@@ -181,18 +182,14 @@
}
output.setMessageName(outputName);
- List<String> bodyParts = WSDLUtils.getParts(wsdlSoapBody);
- if (bodyParts == null) {
- bodyParts = new ArrayList<String>();
- }
-
for (Iterator itPart =
wsdlOutput.getMessage().getOrderedParts(null).iterator(); itPart.hasNext();) {
Part wsdlPart = (Part) itPart.next();
Wsdl1SoapPartImpl part = new Wsdl1SoapPartImpl();
part.setName(wsdlPart.getName());
part.setType(wsdlPart.getTypeName());
part.setElement(wsdlPart.getElementName());
- if (bodyParts.contains(part.getName())) {
+ if ((wsdlSoapBody.getParts() == null &&
wsdlOutput.getMessage().getOrderedParts(null).size() == 1) ||
+ wsdlSoapBody.getParts().contains(part.getName())) {
part.setBody(true);
output.setElementName(wsdlPart.getElementName());
} else {