diff --git a/spring-integration-jdbc/.springBeans b/spring-integration-jdbc/.springBeans index 85a1da38fa..adda0a3213 100644 --- a/spring-integration-jdbc/.springBeans +++ b/spring-integration-jdbc/.springBeans @@ -1,13 +1,14 @@ - - - 1 - - - - - - - - - - + + + 1 + + + + + + + src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayWithPollerTest-context.xml + + + + diff --git a/spring-integration-jdbc/src/main/resources/org/springframework/integration/jdbc/config/spring-integration-jdbc-2.0.xsd b/spring-integration-jdbc/src/main/resources/org/springframework/integration/jdbc/config/spring-integration-jdbc-2.0.xsd index fe9991fbd0..b2cb6c95f0 100644 --- a/spring-integration-jdbc/src/main/resources/org/springframework/integration/jdbc/config/spring-integration-jdbc-2.0.xsd +++ b/spring-integration-jdbc/src/main/resources/org/springframework/integration/jdbc/config/spring-integration-jdbc-2.0.xsd @@ -252,6 +252,9 @@ + + + @@ -328,6 +331,7 @@ + diff --git a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcMessageHandlerParserTests.java b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcMessageHandlerParserTests.java index 03efe8edbc..b85a6350a6 100644 --- a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcMessageHandlerParserTests.java +++ b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcMessageHandlerParserTests.java @@ -9,11 +9,14 @@ import javax.sql.DataSource; import org.junit.After; import org.junit.Test; + +import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.integration.Message; import org.springframework.integration.MessageChannel; import org.springframework.integration.support.MessageBuilder; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.simple.SimpleJdbcTemplate; public class JdbcMessageHandlerParserTests { @@ -73,6 +76,18 @@ public class JdbcMessageHandlerParserTests { assertEquals("Wrong id", message.getHeaders().getId().toString(), map.get("ID")); assertEquals("Wrong name", "bar", map.get("name")); } + + @Test + public void testOutboundAdapterWithPoller() throws Exception{ + ApplicationContext ac = new ClassPathXmlApplicationContext("JdbcOutboundAdapterWithPollerTest-context.xml", this.getClass()); + MessageChannel target = ac.getBean("target", MessageChannel.class); + Message message = MessageBuilder.withPayload("foo").setHeader("business.key", "FOO").build(); + target.send(message); + Thread.sleep(2000); + Map map = (ac.getBean("jdbcTemplate", JdbcTemplate.class)).queryForMap("SELECT * from FOOW"); + assertEquals("Wrong id", "FOO", map.get("ID")); + assertEquals("Wrong id", "foo", map.get("name")); + } @After public void tearDown(){ diff --git a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundAdapterWithPollerTest-context.xml b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundAdapterWithPollerTest-context.xml new file mode 100644 index 0000000000..0bb4833f6a --- /dev/null +++ b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundAdapterWithPollerTest-context.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java index 5bbeec983c..2a749b6b2f 100644 --- a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java +++ b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java @@ -10,6 +10,8 @@ import javax.sql.DataSource; import org.junit.After; import org.junit.Test; + +import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.integration.Message; @@ -17,6 +19,7 @@ import org.springframework.integration.MessageChannel; import org.springframework.integration.core.MessagingTemplate; import org.springframework.integration.core.PollableChannel; import org.springframework.integration.support.MessageBuilder; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.simple.SimpleJdbcTemplate; public class JdbcOutboundGatewayParserTests { @@ -72,6 +75,24 @@ public class JdbcOutboundGatewayParserTests { assertEquals(1, payload.get("updated")); } + @Test + public void testWithPoller() throws Exception{ + ApplicationContext ac = new ClassPathXmlApplicationContext("JdbcOutboundGatewayWithPollerTest-context.xml", this.getClass()); + Message message = MessageBuilder.withPayload(Collections.singletonMap("foo", "bar")).build(); + MessageChannel target = ac.getBean("target", MessageChannel.class); + PollableChannel output = ac.getBean("output", PollableChannel.class); + target.send(message); + Thread.sleep(1000); + Map map = (ac.getBean("jdbcTemplate", JdbcTemplate.class)).queryForMap("SELECT * from BAZZ"); + assertEquals("Wrong id", message.getHeaders().getId().toString(), map.get("ID")); + assertEquals("Wrong name", "bar", map.get("name")); + Message reply = output.receive(1000); + assertNotNull(reply); + @SuppressWarnings("unchecked") + Map payload = (Map) reply.getPayload(); + assertEquals("bar", payload.get("name")); + } + @After public void tearDown() { if (context != null) { diff --git a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayWithPollerTest-context.xml b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayWithPollerTest-context.xml new file mode 100644 index 0000000000..c66b437342 --- /dev/null +++ b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayWithPollerTest-context.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/outboundPollerSchema.sql b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/outboundPollerSchema.sql new file mode 100644 index 0000000000..1e7de53392 --- /dev/null +++ b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/outboundPollerSchema.sql @@ -0,0 +1,2 @@ +create table bazz(id varchar(100),status int,name varchar(20)); +create table foow(id varchar(100),status int,name varchar(20)); \ No newline at end of file