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