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);