You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/05/29 05:10:51 UTC
svn commit: r542395 - in /incubator/cxf/trunk/rt:
bindings/soap/src/main/java/org/apache/cxf/binding/soap/
frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/
frontend/simple/src/main/java/org/apache/cxf/frontend/
Author: dkulp
Date: Mon May 28 20:10:51 2007
New Revision: 542395
URL: http://svn.apache.org/viewvc?view=rev&rev=542395
Log:
More SWA updates.
Modified:
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?view=diff&rev=542395&r1=542394&r2=542395
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Mon May 28 20:10:51 2007
@@ -375,9 +375,19 @@
addSoapBodyPart(msg, bodyParts, partName);
}
} else if (SOAPBindingUtil.isSOAPHeader(content)) {
- SoapHeader sb = SOAPBindingUtil.getSoapHeader(content);
-
- bmsg.addExtensor(sb);
+ SoapHeader header = SOAPBindingUtil.getSoapHeader(content);
+
+ SoapHeaderInfo headerInfo = new SoapHeaderInfo();
+ headerInfo.setUse(header.getUse());
+ MessagePartInfo mpi =
+ msg.getMessagePart(new QName(msg.getName().getNamespaceURI(), header
+ .getPart()));
+ if (mpi != null) {
+ headerInfo.setPart(mpi);
+ messageParts.remove(part);
+ bmsg.getMessageParts().remove(mpi);
+ bmsg.addExtensor(headerInfo);
+ }
}
}
} else {
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java?view=diff&rev=542395&r1=542394&r2=542395
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java Mon May 28 20:10:51 2007
@@ -91,8 +91,10 @@
}
public void createPortExtensors(EndpointInfo ei, Service service) {
- SoapBindingInfo bi = (SoapBindingInfo)ei.getBinding();
- createSoapExtensors(ei, bi, bi.getSoapVersion() instanceof Soap12);
+ if (ei.getBinding() instanceof SoapBindingInfo) {
+ SoapBindingInfo bi = (SoapBindingInfo)ei.getBinding();
+ createSoapExtensors(ei, bi, bi.getSoapVersion() instanceof Soap12);
+ }
}
private void createSoapExtensors(EndpointInfo ei, SoapBindingInfo bi, boolean isSoap12) {
@@ -205,7 +207,11 @@
}
public EndpointInfo createEndpointInfo(ServiceInfo serviceInfo, BindingInfo b, Port port) {
- SoapBindingInfo sbi = (SoapBindingInfo)b;
+ String transportURI = "http://schemas.xmlsoap.org/wsdl/soap/";
+ if (b instanceof SoapBindingInfo) {
+ SoapBindingInfo sbi = (SoapBindingInfo)b;
+ transportURI = sbi.getTransportURI();
+ }
if (port != null) {
List ees = port.getExtensibilityElements();
for (Iterator itr = ees.iterator(); itr.hasNext();) {
@@ -214,14 +220,14 @@
if (SOAPBindingUtil.isSOAPAddress(extensor)) {
final SoapAddress sa = SOAPBindingUtil.getSoapAddress(extensor);
- EndpointInfo info = new SoapEndpointInfo(serviceInfo, sbi.getTransportURI());
+ EndpointInfo info = new SoapEndpointInfo(serviceInfo, transportURI);
info.addExtensor(sa);
info.setAddress(sa.getLocationURI());
return info;
}
}
}
- return new SoapEndpointInfo(serviceInfo, sbi.getTransportURI());
+ return new SoapEndpointInfo(serviceInfo, transportURI);
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java?view=diff&rev=542395&r1=542394&r2=542395
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java Mon May 28 20:10:51 2007
@@ -164,6 +164,15 @@
} else if (o instanceof DataHandler) {
dh = (DataHandler) o;
ct = dh.getContentType();
+
+ try {
+ if ("text/xml".equals(ct)
+ && dh.getContent() instanceof Source) {
+ dh = new DataHandler(createDataSource((Source)dh.getContent(), ct));
+ }
+ } catch (IOException e) {
+ //ignore, use same dh
+ }
} else if (dh == null) {
throw new Fault(new org.apache.cxf.common.i18n.Message("ATTACHMENT_NOT_SUPPORTED",
LOG, o.getClass()));
Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java?view=diff&rev=542395&r1=542394&r2=542395
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java Mon May 28 20:10:51 2007
@@ -161,24 +161,16 @@
}
protected EndpointInfo createEndpointInfo() throws BusException {
- if (transportId == null) {
- if (getAddress() != null) {
- DestinationFactory df = getDestinationFactory();
- if (df == null) {
- DestinationFactoryManager dfm = getBus().getExtension(DestinationFactoryManager.class);
- df = dfm.getDestinationFactoryForUri(getAddress());
- }
-
- if (df != null) {
- transportId = df.getTransportIds().get(0);
- }
+ if (transportId == null
+ && getAddress() != null) {
+ DestinationFactory df = getDestinationFactory();
+ if (df == null) {
+ DestinationFactoryManager dfm = getBus().getExtension(DestinationFactoryManager.class);
+ df = dfm.getDestinationFactoryForUri(getAddress());
}
- if (transportId == null) {
- // TODO: we shouldn't have to do this, but the DF is null because the
- // LocalTransport doesn't return for the http:// uris
- // People also seem to be supplying a null JMS getAddress(), which is worrying
- transportId = "http://schemas.xmlsoap.org/wsdl/soap/";
+ if (df != null) {
+ transportId = df.getTransportIds().get(0);
}
}
@@ -192,6 +184,19 @@
((SoapBindingInfo) bindingInfo).setTransportURI(transportId);
transportId = "http://schemas.xmlsoap.org/wsdl/soap/";
}
+
+
+ if (transportId == null) {
+ if (bindingInfo instanceof SoapBindingInfo) {
+ // TODO: we shouldn't have to do this, but the DF is null because the
+ // LocalTransport doesn't return for the http:// uris
+ // People also seem to be supplying a null JMS getAddress(), which is worrying
+ transportId = "http://schemas.xmlsoap.org/wsdl/soap/";
+ } else {
+ transportId = "http://schemas.xmlsoap.org/wsdl/http/";
+ }
+ }
+
service.getServiceInfos().get(0).addBinding(bindingInfo);
setTransportId(transportId);