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 2012/08/17 19:05:13 UTC
svn commit: r1374361 - in /cxf/trunk:
api/src/main/java/org/apache/cxf/ws/addressing/
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/
rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/
Author: dkulp
Date: Fri Aug 17 17:05:12 2012
New Revision: 1374361
URL: http://svn.apache.org/viewvc?rev=1374361&view=rev
Log:
Add support to turn off the sending of the anonymous ReplyTo
Modified:
cxf/trunk/api/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorImpl.java
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java?rev=1374361&r1=1374360&r2=1374361&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java Fri Aug 17 17:05:12 2012
@@ -32,6 +32,7 @@ import org.apache.cxf.phase.PhaseInterce
*/
public class MAPAggregator extends AbstractPhaseInterceptor<Message> {
public static final String USING_ADDRESSING = MAPAggregator.class.getName() + ".usingAddressing";
+ public static final String WRITE_ANONYMOUS_REPLY_TO = MAPAggregator.class.getName() + ".writeAnonymousReplyTo";
public static final String ADDRESSING_DISABLED = MAPAggregator.class.getName() + ".addressingDisabled";
public static final String DECOUPLED_DESTINATION = MAPAggregator.class.getName()
+ ".decoupledDestination";
Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?rev=1374361&r1=1374360&r2=1374361&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Fri Aug 17 17:05:12 2012
@@ -107,6 +107,7 @@ import org.apache.cxf.transport.MessageO
import org.apache.cxf.transport.MultipleEndpointObserver;
import org.apache.cxf.ws.addressing.AddressingProperties;
import org.apache.cxf.ws.addressing.ContextUtils;
+import org.apache.cxf.ws.addressing.MAPAggregator;
import org.apache.cxf.ws.addressing.WSAddressingFeature;
import org.apache.cxf.wsdl.WSDLManager;
import org.apache.cxf.wsdl11.WSDLServiceBuilder;
@@ -451,7 +452,7 @@ public class SoapBindingFactory extends
if (binding.getService() != null) {
for (EndpointInfo ei: binding.getService().getEndpoints()) {
if (ei.getAddress() != null && ei.getAddress().startsWith("soap.udp")) {
- setupUDP(sb);
+ setupUDP(sb, ei);
}
}
}
@@ -459,7 +460,7 @@ public class SoapBindingFactory extends
return sb;
}
- protected void setupUDP(InterceptorProvider p) {
+ protected void setupUDP(InterceptorProvider p, EndpointInfo ei) {
//soap UDP requires ws-addressing turned on
WSAddressingFeature add = new WSAddressingFeature();
add.setAddressingRequired(true);
@@ -493,6 +494,8 @@ public class SoapBindingFactory extends
message.put(AbstractOutDatabindingInterceptor.DISABLE_OUTPUTSTREAM_OPTIMIZATION, Boolean.TRUE);
}
});
+ // don't send the ReplyTo headers if we don't need to either
+ ei.setProperty(MAPAggregator.WRITE_ANONYMOUS_REPLY_TO, Boolean.FALSE);
}
protected void addMessageFromBinding(ExtensibilityElement ext, BindingOperationInfo bop,
@@ -893,7 +896,7 @@ public class SoapBindingFactory extends
&& d.getAddress().getAddress().getValue() != null
&& d.getAddress().getAddress().getValue().startsWith("soap.udp")) {
//soap.udp REQUIRES usage of WS-Addressing... we need to turn this on
- setupUDP(e);
+ setupUDP(e, e.getEndpointInfo());
}
if (mo == null) {
super.addListener(d, e);
Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorImpl.java?rev=1374361&r1=1374360&r2=1374361&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorImpl.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorImpl.java Fri Aug 17 17:05:12 2012
@@ -831,11 +831,11 @@ public class MAPAggregatorImpl extends M
EndpointReferenceType replyTo = maps.getReplyTo();
if (ContextUtils.isGenericAddress(replyTo)) {
replyTo = getReplyTo(message, replyTo);
- if (replyTo == null
- || (isOneway
- && (replyTo.getAddress() == null
- || !Names.WSA_NONE_ADDRESS.equals(
- replyTo.getAddress().getValue())))) {
+ if (replyTo == null || (isOneway
+ && (replyTo == null
+ || replyTo.getAddress() == null
+ || !Names.WSA_NONE_ADDRESS.equals(
+ replyTo.getAddress().getValue())))) {
AttributedURIType address =
ContextUtils.getAttributedURI(isOneway
? Names.WSA_NONE_ADDRESS
@@ -844,7 +844,12 @@ public class MAPAggregatorImpl extends M
ContextUtils.WSA_OBJECT_FACTORY.createEndpointReferenceType();
replyTo.setAddress(address);
}
- maps.setReplyTo(replyTo);
+ if (ContextUtils.isGenericAddress(replyTo)
+ && !MessageUtils.getContextualBoolean(message, WRITE_ANONYMOUS_REPLY_TO, true)) {
+ maps.setReplyTo(null);
+ } else {
+ maps.setReplyTo(replyTo);
+ }
}
// FaultTo