INT-2306 fixed populateUserDefinedHeaders() to account for standard heades

This commit is contained in:
Oleg Zhurakousky
2011-12-15 17:28:54 -05:00
parent dd8c0aa8fc
commit 390bf504dd
2 changed files with 15 additions and 4 deletions

View File

@@ -16,13 +16,13 @@
package org.springframework.integration.amqp.support;
import static org.junit.Assert.assertEquals;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageDeliveryMode;
import org.springframework.amqp.core.MessageProperties;
@@ -30,6 +30,9 @@ import org.springframework.amqp.support.converter.JsonMessageConverter;
import org.springframework.integration.MessageHeaders;
import org.springframework.integration.amqp.AmqpHeaders;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
* @author Mark Fisher
* @since 2.1
@@ -62,6 +65,12 @@ public class DefaultAmqpHeaderMapperTests {
MessageHeaders integrationHeaders = new MessageHeaders(headerMap);
MessageProperties amqpProperties = new MessageProperties();
headerMapper.fromHeadersToRequest(integrationHeaders, amqpProperties);
Set<String> headerKeys = amqpProperties.getHeaders().keySet();
for (String headerKey : headerKeys) {
if (headerKey.startsWith(AmqpHeaders.PREFIX)){
fail();
}
}
assertEquals("test.appId", amqpProperties.getAppId());
assertEquals("test.clusterId", amqpProperties.getClusterId());
assertEquals("test.contentEncoding", amqpProperties.getContentEncoding());

View File

@@ -159,8 +159,10 @@ public abstract class AbstractHeaderMapper<T> implements RequestReplyHeaderMappe
Object value = headers.get(headerName);
if (value != null) {
try {
String key = this.addPrefixIfNecessary(this.userDefinedHeaderPrefix, headerName);
this.populateUserDefinedHeader(key, value, target);
if (!headerName.startsWith(this.standardHeaderPrefix)){
String key = this.addPrefixIfNecessary(this.userDefinedHeaderPrefix, headerName);
this.populateUserDefinedHeader(key, value, target);
}
}
catch (Exception e) {
if (logger.isWarnEnabled()) {