INT-1568 removed '$' prefix for headers. Now there is NO prefix.

This commit is contained in:
Mark Fisher
2010-10-28 11:34:26 -04:00
committed by Chris Beams
parent 5522af7a04
commit d9045e1904
14 changed files with 36 additions and 31 deletions

View File

@@ -11,6 +11,6 @@
default-request-channel="requestChannel"
service-interface="org.springframework.integration.gateway.GatewayWithHeaderAnnotations$TestService" />
<service-activator input-channel="requestChannel" expression="payload + headers.$priority"/>
<service-activator input-channel="requestChannel" expression="payload + headers.priority + headers.$custom"/>
</beans:beans>

View File

@@ -43,13 +43,14 @@ public class GatewayWithHeaderAnnotations {
@Test // INT-1205
public void priorityAsArgument() {
TestService gateway = (TestService) applicationContext.getBean("gateway");
String result = gateway.test("foo", 99);
assertEquals("foo99", result);
String result = gateway.test("foo", 99, "bar");
assertEquals("foo99bar", result);
}
public static interface TestService {
public String test(String str, @Header(MessageHeaders.PRIORITY) int priority);
// wrt INT-1205, priority no longer has a $ prefix, so here we are testing the $custom header as well
public String test(String str, @Header(MessageHeaders.PRIORITY) int priority, @Header("$custom") String custom);
}
}

View File

@@ -37,7 +37,9 @@ import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.SpelParserConfiguration;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.integration.Message;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.integration.test.util.TestUtils;
/**
@@ -112,18 +114,18 @@ public class ExpressionEvaluatingMessageProcessorTests {
@Test
public void testProcessMessageWithDollarInBrackets() {
Expression expression = expressionParser.parseExpression("headers['$id']");
Expression expression = expressionParser.parseExpression("headers['$foo_id']");
ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
GenericMessage<String> message = new GenericMessage<String>("foo");
assertEquals(message.getHeaders().getId(), processor.processMessage(message));
Message<String> message = MessageBuilder.withPayload("foo").setHeader("$foo_id", "abc").build();
assertEquals("abc", processor.processMessage(message));
}
@Test
public void testProcessMessageWithDollarPropertyAccess() {
Expression expression = expressionParser.parseExpression("headers.$id");
Expression expression = expressionParser.parseExpression("headers.$foo_id");
ExpressionEvaluatingMessageProcessor processor = new ExpressionEvaluatingMessageProcessor(expression);
GenericMessage<String> message = new GenericMessage<String>("foo");
assertEquals(message.getHeaders().getId(), processor.processMessage(message));
Message<String> message = MessageBuilder.withPayload("foo").setHeader("$foo_id", "xyz").build();
assertEquals("xyz", processor.processMessage(message));
}
@Test

View File

@@ -59,7 +59,7 @@ public class JsonInboundMessageMapperTests {
@Test
public void testToMessageWithHeadersAndStringPayload() throws Exception {
UUID id = UUID.randomUUID();
String jsonMessage = "{\"headers\":{\"$timestamp\":1,\"$id\":\"" + id + "\"},\"payload\":\"myPayloadStuff\"}";
String jsonMessage = "{\"headers\":{\"timestamp\":1,\"id\":\"" + id + "\"},\"payload\":\"myPayloadStuff\"}";
Message<String> expected = MessageBuilder.withPayload("myPayloadStuff").setHeader(MessageHeaders.TIMESTAMP, new Long(1)).setHeader(MessageHeaders.ID, id).build();
JsonInboundMessageMapper mapper = new JsonInboundMessageMapper(String.class);
Message<?> result = mapper.toMessage(jsonMessage);
@@ -80,7 +80,7 @@ public class JsonInboundMessageMapperTests {
public void testToMessageWithHeadersAndBeanPayload() throws Exception {
TestBean bean = new TestBean();
UUID id = UUID.randomUUID();
String jsonMessage = "{\"headers\":{\"$timestamp\":1,\"$id\":\"" + id + "\"},\"payload\":" + getBeanAsJson(bean) + "}";
String jsonMessage = "{\"headers\":{\"timestamp\":1,\"id\":\"" + id + "\"},\"payload\":" + getBeanAsJson(bean) + "}";
Message<TestBean> expected = MessageBuilder.withPayload(bean).setHeader(MessageHeaders.TIMESTAMP, new Long(1)).setHeader(MessageHeaders.ID, id).build();
JsonInboundMessageMapper mapper = new JsonInboundMessageMapper(TestBean.class);
Message<?> result = mapper.toMessage(jsonMessage);
@@ -101,7 +101,7 @@ public class JsonInboundMessageMapperTests {
public void testToMessageWithBeanHeaderAndStringPayload() throws Exception {
TestBean bean = new TestBean();
UUID id = UUID.randomUUID();
String jsonMessage = "{\"headers\":{\"$timestamp\":1,\"$id\":\"" + id + "\", \"myHeader\":" + getBeanAsJson(bean) + "},\"payload\":\"myPayloadStuff\"}";
String jsonMessage = "{\"headers\":{\"timestamp\":1,\"id\":\"" + id + "\", \"myHeader\":" + getBeanAsJson(bean) + "},\"payload\":\"myPayloadStuff\"}";
Message<String> expected = MessageBuilder.withPayload("myPayloadStuff").
setHeader(MessageHeaders.TIMESTAMP, new Long(1)).setHeader(MessageHeaders.ID, id).setHeader("myHeader", bean).build();
JsonInboundMessageMapper mapper = new JsonInboundMessageMapper(String.class);
@@ -115,7 +115,7 @@ public class JsonInboundMessageMapperTests {
@Test
public void testToMessageWithHeadersAndListOfStringsPayload() throws Exception {
UUID id = UUID.randomUUID();
String jsonMessage = "{\"headers\":{\"$timestamp\":1,\"$id\":\"" + id + "\"},\"payload\":[\"myPayloadStuff1\",\"myPayloadStuff2\",\"myPayloadStuff3\"]}";
String jsonMessage = "{\"headers\":{\"timestamp\":1,\"id\":\"" + id + "\"},\"payload\":[\"myPayloadStuff1\",\"myPayloadStuff2\",\"myPayloadStuff3\"]}";
List<String> expectedList = Arrays.asList(new String[]{"myPayloadStuff1", "myPayloadStuff2", "myPayloadStuff3"});
Message<List<String>> expected = MessageBuilder.withPayload(expectedList).setHeader(MessageHeaders.TIMESTAMP, new Long(1)).setHeader(MessageHeaders.ID, id).build();
JsonInboundMessageMapper mapper = new JsonInboundMessageMapper(new TypeReference<List<String>>(){});
@@ -128,7 +128,7 @@ public class JsonInboundMessageMapperTests {
TestBean bean1 = new TestBean();
TestBean bean2 = new TestBean();
UUID id = UUID.randomUUID();
String jsonMessage = "{\"headers\":{\"$timestamp\":1,\"$id\":\"" + id + "\"},\"payload\":[" + getBeanAsJson(bean1) + "," + getBeanAsJson(bean2) + "]}";
String jsonMessage = "{\"headers\":{\"timestamp\":1,\"id\":\"" + id + "\"},\"payload\":[" + getBeanAsJson(bean1) + "," + getBeanAsJson(bean2) + "]}";
List<TestBean> expectedList = Arrays.asList(new TestBean[]{bean1, bean2});
Message<List<TestBean>> expected = MessageBuilder.withPayload(expectedList).setHeader(MessageHeaders.TIMESTAMP, new Long(1)).setHeader(MessageHeaders.ID, id).build();
JsonInboundMessageMapper mapper = new JsonInboundMessageMapper(new TypeReference<List<TestBean>>(){});

View File

@@ -50,8 +50,8 @@ public class JsonOutboundMessageMapperTests {
JsonOutboundMessageMapper mapper = new JsonOutboundMessageMapper();
String result = mapper.fromMessage(testMessage);
assertTrue(result.contains("\"headers\":{"));
assertTrue(result.contains("\"$timestamp\":"+testMessage.getHeaders().getTimestamp()));
assertTrue(result.contains("\"$id\":\""+testMessage.getHeaders().getId()+"\""));
assertTrue(result.contains("\"timestamp\":"+testMessage.getHeaders().getTimestamp()));
assertTrue(result.contains("\"id\":\""+testMessage.getHeaders().getId()+"\""));
assertTrue(result.contains("\"payload\":\"myPayloadStuff\""));
}
@@ -64,10 +64,10 @@ public class JsonOutboundMessageMapperTests {
JsonOutboundMessageMapper mapper = new JsonOutboundMessageMapper();
String result = mapper.fromMessage(testMessage);
assertTrue(result.contains("\"headers\":{"));
assertTrue(result.contains("\"$timestamp\":"+testMessage.getHeaders().getTimestamp()));
assertTrue(result.contains("\"$id\":\""+testMessage.getHeaders().getId()+"\""));
assertTrue(result.contains("\"timestamp\":"+testMessage.getHeaders().getTimestamp()));
assertTrue(result.contains("\"id\":\""+testMessage.getHeaders().getId()+"\""));
assertTrue(result.contains("\"payload\":\"myPayloadStuff\""));
assertTrue(result.contains("\"$history\":"));
assertTrue(result.contains("\"history\":"));
assertTrue(result.contains("testName-1"));
assertTrue(result.contains("testType-1"));
assertTrue(result.contains("testName-2"));
@@ -93,8 +93,8 @@ public class JsonOutboundMessageMapperTests {
JsonOutboundMessageMapper mapper = new JsonOutboundMessageMapper();
String result = mapper.fromMessage(testMessage);
assertTrue(result.contains("\"headers\":{"));
assertTrue(result.contains("\"$timestamp\":"+testMessage.getHeaders().getTimestamp()));
assertTrue(result.contains("\"$id\":\""+testMessage.getHeaders().getId()+"\""));
assertTrue(result.contains("\"timestamp\":"+testMessage.getHeaders().getTimestamp()));
assertTrue(result.contains("\"id\":\""+testMessage.getHeaders().getId()+"\""));
TestBean parsedPayload = extractJsonPayloadToTestBean(result);
assertEquals(payload, parsedPayload);
}