INT-1568 removed '$' prefix for headers. Now there is NO prefix.
This commit is contained in:
@@ -44,7 +44,7 @@ public final class MessageHeaders implements Map<String, Object>, Serializable {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(MessageHeaders.class);
|
||||
|
||||
public static final String PREFIX = "$";
|
||||
public static final String PREFIX = "";
|
||||
|
||||
/**
|
||||
* The key for the Message ID. This is an automatically generated UUID and
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>>(){});
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.integration.ip.util;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.springframework.integration.ip.util.RegexUtils.escapeRegExSpecials;
|
||||
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.springframework.integration.MessageHeaders;
|
||||
|
||||
@@ -41,6 +42,7 @@ public class RegexUtilsTests {
|
||||
* And one of the ones we are actually using
|
||||
*/
|
||||
@Test
|
||||
@Ignore // no longer relevant due to INT-1568
|
||||
public void testSiPrefix () {
|
||||
// protect the test in case we ever change the prefix
|
||||
if ("$^[]{()}+*\\?|.".contains(MessageHeaders.PREFIX)) {
|
||||
|
||||
@@ -77,7 +77,7 @@ public class JdbcMessageHandlerIntegrationTests {
|
||||
|
||||
@Test
|
||||
public void testIdHeaderDynamicInsert() {
|
||||
JdbcMessageHandler handler = new JdbcMessageHandler(jdbcTemplate.getJdbcOperations(), "insert into foos (id, status, name) values (:headers[$id], 0, :payload)");
|
||||
JdbcMessageHandler handler = new JdbcMessageHandler(jdbcTemplate.getJdbcOperations(), "insert into foos (id, status, name) values (:headers[id], 0, :payload)");
|
||||
Message<String> message = new GenericMessage<String>("foo");
|
||||
handler.handleMessage(message);
|
||||
String id = message.getHeaders().getId().toString();
|
||||
|
||||
@@ -37,10 +37,10 @@ public class JdbcMessageHandlerParserTests {
|
||||
@Test
|
||||
public void testDollarHeaderOutboundChannelAdapter(){
|
||||
setUp("handlingDollarHeaderJdbcOutboundChannelAdapterTest.xml", getClass());
|
||||
Message<?> message = MessageBuilder.withPayload("foo").build();
|
||||
Message<?> message = MessageBuilder.withPayload("foo").setHeader("$foo_id", "abc").build();
|
||||
channel.send(message);
|
||||
Map<String, Object> map = this.jdbcTemplate.queryForMap("SELECT * from FOOS");
|
||||
assertEquals("Wrong id", message.getHeaders().getId().toString(), map.get("ID"));
|
||||
assertEquals("Wrong id", message.getHeaders().get("$foo_id").toString(), map.get("ID"));
|
||||
assertEquals("Wrong id", "foo", map.get("name"));
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
http://www.springframework.org/schema/integration/jdbc
|
||||
http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd">
|
||||
|
||||
<outbound-channel-adapter query="insert into foos (id, status, name) values (:headers[$id], 0, :payload)"
|
||||
<outbound-channel-adapter query="insert into foos (id, status, name) values (:headers[$foo_id], 0, :payload)"
|
||||
channel="target" data-source="dataSource"/>
|
||||
|
||||
<beans:import resource="jdbcOutboundChannelAdapterCommonConfig.xml" />
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
http://www.springframework.org/schema/integration/jdbc
|
||||
http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd">
|
||||
|
||||
<outbound-channel-adapter query="insert into foos (id, status, name) values (:headers[$id], 0, :payload[foo])"
|
||||
<outbound-channel-adapter query="insert into foos (id, status, name) values (:headers[id], 0, :payload[foo])"
|
||||
channel="target" data-source="dataSource"/>
|
||||
|
||||
<beans:import resource="jdbcOutboundChannelAdapterCommonConfig.xml" />
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<si:queue />
|
||||
</si:channel>
|
||||
|
||||
<outbound-gateway query="select * from foos where id=:headers[$id]" update="insert into foos (id, status, name) values (:headers[$id], 0, :payload[foo])"
|
||||
<outbound-gateway query="select * from foos where id=:headers[id]" update="insert into foos (id, status, name) values (:headers[id], 0, :payload[foo])"
|
||||
request-channel="target" reply-channel="output" data-source="dataSource" />
|
||||
|
||||
<beans:import resource="jdbcOutboundChannelAdapterCommonConfig.xml" />
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd">
|
||||
|
||||
<outbound-channel-adapter channel="target" data-source="dataSource">
|
||||
<query>insert into foos (id, status, name) values (:headers[$id], 0, :payload[foo])</query>
|
||||
<query>insert into foos (id, status, name) values (:headers[id], 0, :payload[foo])</query>
|
||||
</outbound-channel-adapter>
|
||||
|
||||
<beans:import resource="jdbcOutboundChannelAdapterCommonConfig.xml" />
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
http://www.springframework.org/schema/integration/jdbc
|
||||
http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd">
|
||||
|
||||
<outbound-channel-adapter query="insert into foos (id, status, name) values (:headers[$id], 0, :foo)"
|
||||
<outbound-channel-adapter query="insert into foos (id, status, name) values (:headers[id], 0, :foo)"
|
||||
channel="target" data-source="dataSource" sql-parameter-source-factory="sqlParameterSourceFactory"/>
|
||||
|
||||
<beans:import resource="jdbcOutboundChannelAdapterCommonConfig.xml" />
|
||||
|
||||
Reference in New Issue
Block a user