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 2009/02/11 19:44:07 UTC
svn commit: r743445 - in /cxf/trunk/rt/ws/addr/src:
main/java/org/apache/cxf/ws/addressing/
main/java/org/apache/cxf/ws/addressing/soap/
test/java/org/apache/cxf/ws/addressing/soap/
Author: dkulp
Date: Wed Feb 11 18:44:07 2009
New Revision: 743445
URL: http://svn.apache.org/viewvc?rev=743445&view=rev
Log:
Don't output FaultTo if it's not needed (wastes bandwidth)
Modified:
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java
Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java?rev=743445&r1=743444&r2=743445&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java Wed Feb 11 18:44:07 2009
@@ -223,7 +223,7 @@
boolean isProviderContext) {
if (maps != null) {
String mapProperty = getMAPProperty(isRequestor, isProviderContext, isOutbound);
- LOG.log(Level.INFO,
+ LOG.log(Level.FINE,
"associating MAPs with context property {0}",
mapProperty);
message.put(mapProperty, maps);
@@ -264,15 +264,15 @@
ContextUtils.getMAPProperty(isProviderContext,
isRequestor,
isOutbound);
- LOG.log(Level.INFO,
+ LOG.log(Level.FINE,
"retrieving MAPs from context property {0}",
mapProperty);
AddressingPropertiesImpl maps =
(AddressingPropertiesImpl)message.get(mapProperty);
if (maps != null) {
- LOG.log(Level.INFO, "current MAPs {0}", maps);
+ LOG.log(Level.FINE, "current MAPs {0}", maps);
} else if (!isProviderContext) {
- LogUtils.log(LOG, warnIfMissing ? Level.WARNING : Level.INFO,
+ LogUtils.log(LOG, warnIfMissing ? Level.WARNING : Level.FINE,
"MAPS_RETRIEVAL_FAILURE_MSG");
}
return maps;
Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java?rev=743445&r1=743444&r2=743445&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java Wed Feb 11 18:44:07 2009
@@ -678,7 +678,7 @@
maps = ContextUtils.retrieveMAPs(message,
isProviderContext,
isOutbound);
- LOG.log(Level.INFO, "MAPs retrieved from message {0}", maps);
+ LOG.log(Level.FINE, "MAPs retrieved from message {0}", maps);
if (maps == null && isProviderContext) {
maps = new AddressingPropertiesImpl();
Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java?rev=743445&r1=743444&r2=743445&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java Wed Feb 11 18:44:07 2009
@@ -150,7 +150,7 @@
AddressingPropertiesImpl maps) {
if (maps != null) {
cacheExchange(message, maps);
- LOG.log(Level.INFO, "Outbound WS-Addressing headers");
+ LOG.log(Level.FINE, "Outbound WS-Addressing headers");
try {
List<Header> header = message.getHeaders();
discardMAPs(header, maps);
@@ -164,6 +164,22 @@
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
encodeAsExposed(maps,
message,
+ maps.getAction(),
+ Names.WSA_ACTION_QNAME,
+ AttributedURIType.class,
+ hdr,
+ marshaller);
+ if (Names.WSA_ACTION_QNAME.equals(duplicate)) {
+ encodeAsExposed(maps,
+ message,
+ maps.getAction(),
+ Names.WSA_ACTION_QNAME,
+ AttributedURIType.class,
+ hdr,
+ marshaller);
+ }
+ encodeAsExposed(maps,
+ message,
maps.getMessageID(),
Names.WSA_MESSAGEID_QNAME,
AttributedURIType.class,
@@ -226,22 +242,7 @@
hdr,
marshaller);
}
- encodeAsExposed(maps,
- message,
- maps.getFaultTo(),
- Names.WSA_FAULTTO_QNAME,
- EndpointReferenceType.class,
- hdr,
- marshaller);
- if (Names.WSA_FAULTTO_QNAME.equals(duplicate)) {
- encodeAsExposed(maps,
- message,
- maps.getFaultTo(),
- Names.WSA_FAULTTO_QNAME,
- EndpointReferenceType.class,
- hdr,
- marshaller);
- }
+
encodeAsExposed(maps,
message,
maps.getRelatesTo(),
@@ -258,21 +259,27 @@
hdr,
marshaller);
}
- encodeAsExposed(maps,
- message,
- maps.getAction(),
- Names.WSA_ACTION_QNAME,
- AttributedURIType.class,
- hdr,
- marshaller);
- if (Names.WSA_ACTION_QNAME.equals(duplicate)) {
+ if (maps.getFaultTo() != null
+ && maps.getFaultTo().getAddress() != null
+ && maps.getFaultTo().getAddress().getValue() != null
+ && !maps.getFaultTo().getAddress().getValue()
+ .equals(maps.getReplyTo().getAddress().getValue())) {
encodeAsExposed(maps,
message,
- maps.getAction(),
- Names.WSA_ACTION_QNAME,
- AttributedURIType.class,
- hdr,
+ maps.getFaultTo(),
+ Names.WSA_FAULTTO_QNAME,
+ EndpointReferenceType.class,
+ hdr,
marshaller);
+ if (Names.WSA_FAULTTO_QNAME.equals(duplicate)) {
+ encodeAsExposed(maps,
+ message,
+ maps.getFaultTo(),
+ Names.WSA_FAULTTO_QNAME,
+ EndpointReferenceType.class,
+ hdr,
+ marshaller);
+ }
}
encodeReferenceParameters(maps, hdr, marshaller);
@@ -402,7 +409,7 @@
Element header,
Marshaller marshaller) throws JAXBException {
if (value != null) {
- LOG.log(Level.INFO,
+ LOG.log(Level.FINE,
"{0} : {1}",
new Object[] {name.getLocalPart(), getLogText(value)});
transformer.encodeAsExposed(maps.getNamespaceURI(),
@@ -432,7 +439,7 @@
try {
List<Header> header = message.getHeaders();
if (header != null) {
- LOG.log(Level.INFO, "Inbound WS-Addressing headers");
+ LOG.log(Level.FINE, "Inbound WS-Addressing headers");
Unmarshaller unmarshaller = null;
Set<Element> referenceParameterHeaders = null;
@@ -548,7 +555,7 @@
clz,
headerElement,
unmarshaller));
- LOG.log(Level.INFO,
+ LOG.log(Level.FINE,
"{0} : {1}",
new Object[] {headerElement.getLocalName(), getLogText(value)});
return value;
@@ -661,7 +668,7 @@
if (!(soapActionHeaders == null
|| soapActionHeaders.size() == 0
|| "".equals(soapActionHeaders.get(0)))) {
- LOG.log(Level.INFO,
+ LOG.log(Level.FINE,
"encoding wsa:Action in SOAPAction header {0}",
action.getValue());
soapActionHeaders.clear();
Modified: cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java?rev=743445&r1=743444&r2=743445&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java (original)
+++ cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/soap/MAPCodecTest.java Wed Feb 11 18:44:07 2009
@@ -79,7 +79,8 @@
private Map<String, List<String>> mimeHeaders;
private Exchange correlatedExchange;
private boolean expectRelatesTo;
-
+ private boolean expectFaultTo;
+
@Before
public void setUp() {
codec = new MAPCodec();
@@ -295,12 +296,14 @@
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
EasyMock.expectLastCall();
IArgumentMatcher matcher = new JAXBEltMatcher();
- int expectedMarshals = requestor ? expectedValues.length - 1 : expectedValues.length;
- for (int i = 0; i < expectedMarshals; i++) {
- EasyMock.reportMatcher(matcher);
- EasyMock.eq(header);
- marshaller.marshal(null, header);
- EasyMock.expectLastCall();
+ int len = expectFaultTo ? expectedValues.length : expectedValues.length - 1;
+ for (int i = 0; i < len; i++) {
+ if (!requestor || i != 4) {
+ EasyMock.reportMatcher(matcher);
+ EasyMock.eq(header);
+ marshaller.marshal(null, header);
+ EasyMock.expectLastCall();
+ }
}
Node child = control.createMock(Node.class);
@@ -309,12 +312,15 @@
int i = 0;
while (child != null) {
+ if (requestor && i == 4) {
+ i++;
+ }
child.getNamespaceURI();
EasyMock.expectLastCall().andReturn(expectedNames[i].getNamespaceURI());
child.getLocalName();
EasyMock.expectLastCall().andReturn(expectedNames[i].getLocalPart());
- Node nextChild = ++i < expectedMarshals
+ Node nextChild = ++i < len
? control.createMock(Node.class)
: null;
child.getNextSibling();
@@ -346,26 +352,26 @@
boolean exposedAs200408 = VersionTransformer.Names200408.WSA_NAMESPACE_NAME.equals(uri);
boolean exposedAs200403 = VersionTransformer.Names200403.WSA_NAMESPACE_NAME.equals(uri);
assertTrue("unexpected namescape URI: " + uri, exposedAsNative || exposedAs200408 || exposedAs200403);
- setUpHeaderDecode(headers, uri, Names.WSA_MESSAGEID_NAME, exposedAsNative
+ setUpHeaderDecode(headers, uri, Names.WSA_ACTION_NAME, exposedAsNative
? AttributedURIType.class : exposedAs200408 ? AttributedURI.class : exposedAs200403
? org.apache.cxf.ws.addressing.v200403.AttributedURI.class : null, 0, unmarshaller);
- setUpHeaderDecode(headers, uri, Names.WSA_TO_NAME, exposedAsNative
+ setUpHeaderDecode(headers, uri, Names.WSA_MESSAGEID_NAME, exposedAsNative
? AttributedURIType.class : exposedAs200408 ? AttributedURI.class : exposedAs200403
? org.apache.cxf.ws.addressing.v200403.AttributedURI.class : null, 1, unmarshaller);
+ setUpHeaderDecode(headers, uri, Names.WSA_TO_NAME, exposedAsNative
+ ? AttributedURIType.class : exposedAs200408 ? AttributedURI.class : exposedAs200403
+ ? org.apache.cxf.ws.addressing.v200403.AttributedURI.class : null, 2, unmarshaller);
setUpHeaderDecode(headers, uri, Names.WSA_REPLYTO_NAME, exposedAsNative
? EndpointReferenceType.class : exposedAs200408
? VersionTransformer.Names200408.EPR_TYPE : exposedAs200403
- ? VersionTransformer.Names200403.EPR_TYPE : null, 2, unmarshaller);
- setUpHeaderDecode(headers, uri, Names.WSA_FAULTTO_NAME, exposedAsNative
- ? EndpointReferenceType.class : exposedAs200408
- ? VersionTransformer.Names200408.EPR_TYPE : exposedAs200403
? VersionTransformer.Names200403.EPR_TYPE : null, 3, unmarshaller);
setUpHeaderDecode(headers, uri, Names.WSA_RELATESTO_NAME, exposedAsNative
? RelatesToType.class : exposedAs200408 ? Relationship.class : exposedAs200403
? org.apache.cxf.ws.addressing.v200403.Relationship.class : null, 4, unmarshaller);
- setUpHeaderDecode(headers, uri, Names.WSA_ACTION_NAME, exposedAsNative
- ? AttributedURIType.class : exposedAs200408 ? AttributedURI.class : exposedAs200403
- ? org.apache.cxf.ws.addressing.v200403.AttributedURI.class : null, 5, unmarshaller);
+ setUpHeaderDecode(headers, uri, Names.WSA_FAULTTO_NAME, exposedAsNative
+ ? EndpointReferenceType.class : exposedAs200408
+ ? VersionTransformer.Names200408.EPR_TYPE : exposedAs200403
+ ? VersionTransformer.Names200403.EPR_TYPE : null, 5, unmarshaller);
}
private <T> void setUpHeaderDecode(List<Header> headers, String uri, String name, Class<T> clz,
@@ -432,56 +438,68 @@
expectedNamespaceURI = uri;
expectedNames = new QName[] {
- new QName(uri, Names.WSA_MESSAGEID_NAME), new QName(uri, Names.WSA_TO_NAME),
- new QName(uri, Names.WSA_REPLYTO_NAME), new QName(uri, Names.WSA_FAULTTO_NAME),
- new QName(uri, Names.WSA_RELATESTO_NAME), new QName(uri, Names.WSA_ACTION_NAME)
+ new QName(uri, Names.WSA_ACTION_NAME),
+ new QName(uri, Names.WSA_MESSAGEID_NAME),
+ new QName(uri, Names.WSA_TO_NAME),
+ new QName(uri, Names.WSA_REPLYTO_NAME),
+ new QName(uri, Names.WSA_RELATESTO_NAME),
+ new QName(uri, Names.WSA_FAULTTO_NAME),
};
if (exposeAsNative) {
expectedValues = new Object[] {
- id, to, replyTo, faultTo, relatesTo, action
+ action, id, to, replyTo, relatesTo, faultTo
};
expectedDeclaredTypes = new Class<?>[] {
+ AttributedURIType.class,
AttributedURIType.class, AttributedURIType.class, EndpointReferenceType.class,
- EndpointReferenceType.class, RelatesToType.class, AttributedURIType.class
+ RelatesToType.class, EndpointReferenceType.class,
};
} else if (exposeAs200408) {
expectedValues = new Object[] {
- VersionTransformer.convert(id), VersionTransformer.convert(to),
- VersionTransformer.convert(replyTo), VersionTransformer.convert(faultTo),
- VersionTransformer.convert(relatesTo), VersionTransformer.convert(action)
+ VersionTransformer.convert(action),
+ VersionTransformer.convert(id),
+ VersionTransformer.convert(to),
+ VersionTransformer.convert(replyTo),
+ VersionTransformer.convert(relatesTo),
+ VersionTransformer.convert(faultTo),
};
if (!outbound) {
// conversion from 2004/08 to 2005/08 anonymous address
// occurs transparently in VersionTransformer
- VersionTransformer.Names200408.EPR_TYPE.cast(expectedValues[2]).getAddress()
- .setValue(Names.WSA_ANONYMOUS_ADDRESS);
VersionTransformer.Names200408.EPR_TYPE.cast(expectedValues[3]).getAddress()
.setValue(Names.WSA_ANONYMOUS_ADDRESS);
+ VersionTransformer.Names200408.EPR_TYPE.cast(expectedValues[5]).getAddress()
+ .setValue(Names.WSA_ANONYMOUS_ADDRESS);
}
expectedDeclaredTypes = new Class<?>[] {
- AttributedURI.class, AttributedURI.class, VersionTransformer.Names200408.EPR_TYPE,
- VersionTransformer.Names200408.EPR_TYPE, Relationship.class, AttributedURI.class
+ AttributedURI.class, AttributedURI.class, AttributedURI.class,
+ VersionTransformer.Names200408.EPR_TYPE, Relationship.class,
+ VersionTransformer.Names200408.EPR_TYPE,
};
} else if (exposeAs200403) {
expectedValues = new Object[] {
- VersionTransformer.convertTo200403(id), VersionTransformer.convertTo200403(to),
- VersionTransformer.convertTo200403(replyTo), VersionTransformer.convertTo200403(faultTo),
- VersionTransformer.convertTo200403(relatesTo), VersionTransformer.convertTo200403(action)
+ VersionTransformer.convertTo200403(action),
+ VersionTransformer.convertTo200403(id),
+ VersionTransformer.convertTo200403(to),
+ VersionTransformer.convertTo200403(replyTo),
+ VersionTransformer.convertTo200403(relatesTo),
+ VersionTransformer.convertTo200403(faultTo),
};
if (!outbound) {
// conversion from 2004/03 to 2005/08 anonymous address
// occurs transparently in VersionTransformer
- VersionTransformer.Names200403.EPR_TYPE.cast(expectedValues[2]).getAddress()
- .setValue(Names.WSA_ANONYMOUS_ADDRESS);
VersionTransformer.Names200403.EPR_TYPE.cast(expectedValues[3]).getAddress()
.setValue(Names.WSA_ANONYMOUS_ADDRESS);
+ VersionTransformer.Names200403.EPR_TYPE.cast(expectedValues[5]).getAddress()
+ .setValue(Names.WSA_ANONYMOUS_ADDRESS);
}
expectedDeclaredTypes = new Class<?>[] {
org.apache.cxf.ws.addressing.v200403.AttributedURI.class,
org.apache.cxf.ws.addressing.v200403.AttributedURI.class,
- VersionTransformer.Names200403.EPR_TYPE, VersionTransformer.Names200403.EPR_TYPE,
+ org.apache.cxf.ws.addressing.v200403.AttributedURI.class,
+ VersionTransformer.Names200403.EPR_TYPE,
org.apache.cxf.ws.addressing.v200403.Relationship.class,
- org.apache.cxf.ws.addressing.v200403.AttributedURI.class
+ VersionTransformer.Names200403.EPR_TYPE,
};
} else {
fail("unexpected namespace URI: " + uri);
@@ -491,14 +509,14 @@
private final class JAXBEltMatcher implements IArgumentMatcher {
public boolean matches(Object obj) {
+ if (expectedIndex == 4 && !expectRelatesTo) {
+ expectedIndex++;
+ }
QName name = expectedNames[expectedIndex];
Class<?> declaredType = expectedDeclaredTypes[expectedIndex];
Object value = expectedValues[expectedIndex];
boolean ret = false;
expectedIndex++;
- if (expectedIndex == 5 && !expectRelatesTo) {
- return true;
- }
if (obj instanceof JAXBElement) {
JAXBElement other = (JAXBElement)obj;
ret = name.equals(other.getName()) && declaredType.isAssignableFrom(other.getDeclaredType())
@@ -568,23 +586,23 @@
if (exposedAsNative || exposedAs200408 || exposedAs200403) {
String expectedMessageID = exposedAsNative
- ? ((AttributedURIType)expectedValues[0]).getValue() : exposedAs200408
- ? ((AttributedURI)expectedValues[0]).getValue()
- : ((org.apache.cxf.ws.addressing.v200403.AttributedURI)expectedValues[0]).getValue();
-
- String expectedTo = exposedAsNative
? ((AttributedURIType)expectedValues[1]).getValue() : exposedAs200408
? ((AttributedURI)expectedValues[1]).getValue()
: ((org.apache.cxf.ws.addressing.v200403.AttributedURI)expectedValues[1]).getValue();
- String expectedReplyTo = exposedAsNative ? ((EndpointReferenceType)expectedValues[2])
+ String expectedTo = exposedAsNative
+ ? ((AttributedURIType)expectedValues[2]).getValue() : exposedAs200408
+ ? ((AttributedURI)expectedValues[2]).getValue()
+ : ((org.apache.cxf.ws.addressing.v200403.AttributedURI)expectedValues[2]).getValue();
+
+ String expectedReplyTo = exposedAsNative ? ((EndpointReferenceType)expectedValues[3])
.getAddress().getValue() : exposedAs200408 ? (VersionTransformer.Names200408.EPR_TYPE
- .cast(expectedValues[2])).getAddress().getValue() : (VersionTransformer.Names200403.EPR_TYPE
- .cast(expectedValues[2])).getAddress().getValue();
+ .cast(expectedValues[3])).getAddress().getValue() : (VersionTransformer.Names200403.EPR_TYPE
+ .cast(expectedValues[3])).getAddress().getValue();
String expectedAction = exposedAsNative
- ? ((AttributedURIType)expectedValues[5]).getValue() : exposedAs200408
- ? ((AttributedURI)expectedValues[5]).getValue()
- : ((org.apache.cxf.ws.addressing.v200403.AttributedURI)expectedValues[5]).getValue();
+ ? ((AttributedURIType)expectedValues[0]).getValue() : exposedAs200408
+ ? ((AttributedURI)expectedValues[0]).getValue()
+ : ((org.apache.cxf.ws.addressing.v200403.AttributedURI)expectedValues[0]).getValue();
ret = expectedMessageID.equals(other.getMessageID().getValue())
&& expectedTo.equals(other.getTo().getValue())
@@ -606,7 +624,7 @@
List<?> soapAction = (List<?>)mimeHeaders.get("SOAPAction");
assertNotNull("expected propogated action", soapAction);
assertEquals("expected single action", 1, soapAction.size());
- String expectedAction = "\"" + ((AttributedURIType)expectedValues[5]).getValue() + "\"";
+ String expectedAction = "\"" + ((AttributedURIType)expectedValues[0]).getValue() + "\"";
assertEquals("expected propogated action", expectedAction, soapAction.get(0));
}
@@ -614,10 +632,10 @@
boolean exposedAsNative) {
if (requestor) {
if (outbound) {
- String id = expectedValues[0] instanceof AttributedURIType
- ? ((AttributedURIType)expectedValues[0]).getValue()
- : expectedValues[0] instanceof AttributedURI ? ((AttributedURI)expectedValues[0])
- .getValue() : ((org.apache.cxf.ws.addressing.v200403.AttributedURI)expectedValues[0])
+ String id = expectedValues[1] instanceof AttributedURIType
+ ? ((AttributedURIType)expectedValues[1]).getValue()
+ : expectedValues[0] instanceof AttributedURI ? ((AttributedURI)expectedValues[1])
+ .getValue() : ((org.apache.cxf.ws.addressing.v200403.AttributedURI)expectedValues[1])
.getValue();
// assertTrue("expected correlationID : " + id + " in map: " +
// codec.uncorrelatedExchanges,
@@ -630,9 +648,15 @@
}
if (outbound) {
int expectedMarshals = requestor ? expectedValues.length - 1 : expectedValues.length;
+ if (!expectFaultTo) {
+ --expectedMarshals;
+ }
List<Header> headers = message.getHeaders();
assertTrue("expected holders added to header list", headers.size() >= expectedMarshals);
- for (int i = 0; i < expectedMarshals; i++) {
+ for (int i = 0; i < (expectFaultTo ? expectedValues.length : expectedValues.length - 1); i++) {
+ if (i == 4 && !expectRelatesTo) {
+ i++;
+ }
assertTrue("expected " + expectedNames[i] + " added to headers", message
.hasHeader(expectedNames[i]));
}