INT-2016 modified DefaultAmqpHeaderMapper to NOT copy headers such as ID, TIMESTAMP, REPLY_CHANNEL and ERRPR_CHANNEL

This commit is contained in:
Oleg Zhurakousky
2011-07-28 07:47:52 -04:00
parent 02735b15f1
commit 47e3b47955
4 changed files with 75 additions and 23 deletions

View File

@@ -44,6 +44,7 @@ import org.springframework.util.StringUtils;
* Constants for the AMQP header keys are defined in {@link AmqpHeaders}.
*
* @author Mark Fisher
* @author Oleg Zhurakousky
*/
public class DefaultAmqpHeaderMapper implements AmqpHeaderMapper {
@@ -165,20 +166,22 @@ public class DefaultAmqpHeaderMapper implements AmqpHeaderMapper {
// now map to the user-defined headers, if any, within the AMQP MessageProperties
Set<String> headerNames = headers.keySet();
for (String headerName : headerNames) {
if (StringUtils.hasText(headerName) && !headerName.startsWith(AmqpHeaders.PREFIX)) {
Object value = headers.get(headerName);
if (value != null) {
try {
String key = this.fromHeaderName(headerName);
amqpMessageProperties.setHeader(key, value);
}
catch (Exception e) {
if (logger.isWarnEnabled()) {
logger.warn("failed to map Message header '" + headerName + "' to AMQP header", e);
if (this.shoudlMapHeader(headerName)){
if (StringUtils.hasText(headerName) && !headerName.startsWith(AmqpHeaders.PREFIX)) {
Object value = headers.get(headerName);
if (value != null) {
try {
String key = this.fromHeaderName(headerName);
amqpMessageProperties.setHeader(key, value);
}
catch (Exception e) {
if (logger.isWarnEnabled()) {
logger.warn("failed to map Message header '" + headerName + "' to AMQP header", e);
}
}
}
}
}
}
}
}
catch (Exception e) {
@@ -187,6 +190,13 @@ public class DefaultAmqpHeaderMapper implements AmqpHeaderMapper {
}
}
}
private boolean shoudlMapHeader(String headerName){
return !headerName.equals(MessageHeaders.ERROR_CHANNEL) &&
!headerName.equals(MessageHeaders.REPLY_CHANNEL) &&
!headerName.equals(MessageHeaders.ID) &&
!headerName.equals(MessageHeaders.TIMESTAMP);
}
/**
* Maps headers from an AMQP MessageProperties instance to the MessageHeaders of a