diff --git a/basic/jdbc/README.md b/basic/jdbc/README.md
new file mode 100644
index 00000000..e6c5bec1
--- /dev/null
+++ b/basic/jdbc/README.md
@@ -0,0 +1,28 @@
+Spring Integration - JDBC Sample
+================================
+
+# Overview
+
+This sample provides example of how the Jdbc Adapters can be used.
+
+# Getting Started
+
+You can run the application by either
+
+* running the "Main" class from within STS (Right-click on Main class --> Run As --> Java Application)
+* or from the command line:
+ - mvn package
+ - mvn exec:java
+
+Currently one example exists. On the command prompt you can enter the following valid values and get a response back:
+
+* 'a'
+* 'b'
+* 'foo'
+
+# Resources
+
+For help please take a look at the Spring Integration documentation:
+
+http://www.springsource.org/spring-integration
+
diff --git a/basic/jdbc/pom.xml b/basic/jdbc/pom.xml
new file mode 100644
index 00000000..33e8ae93
--- /dev/null
+++ b/basic/jdbc/pom.xml
@@ -0,0 +1,129 @@
+
+ 4.0.0
+
+ org.springframework.integration.samples
+ jdbc
+ 1.0-SNAPSHOT
+ jar
+
+ jdbc-sample
+ http://www.springsource.org/spring-integration
+
+
+ UTF-8
+ 2.1.0.M3
+ 1.6.1
+ 4.7
+
+
+
+
+ repository.springframework.maven.release
+ Spring Framework Maven Release Repository
+ http://maven.springframework.org/release
+
+
+ repository.springframework.maven.milestone
+ Spring Framework Maven Milestone Repository
+ http://maven.springframework.org/milestone
+
+
+
+
+
+
+ maven-eclipse-plugin
+ 2.8
+
+
+ org.springframework.ide.eclipse.core.springnature
+
+
+ org.springframework.ide.eclipse.core.springbuilder
+
+ true
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+ 1.6
+ 1.6
+ -Xlint:all
+ true
+ true
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.2
+
+ org.springframework.integration.samples.jdbc.Main
+
+
+
+
+
+
+
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+
+
+
+ org.springframework.integration
+ spring-integration-core
+ ${spring.integration.version}
+
+
+
+ org.springframework.integration
+ spring-integration-jdbc
+ ${spring.integration.version}
+
+
+
+
+
+ ch.qos.logback
+ logback-classic
+ 0.9.28
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${slf4j.version}
+
+
+ org.slf4j
+ jcl-over-slf4j
+ ${slf4j.version}
+
+
+
+
+
+ com.h2database
+ h2
+ 1.3.160
+
+
+
+
diff --git a/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/Main.java b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/Main.java
new file mode 100644
index 00000000..0edab38b
--- /dev/null
+++ b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/Main.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright 2002-2010 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.integration.samples.jdbc;
+
+import java.util.Scanner;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.integration.samples.jdbc.service.UserService;
+
+
+/**
+ * Starts the Spring Context and will initialize the Spring Integration routes.
+ *
+ * @author Gunnar Hillert
+ * @version 1.0
+ *
+ */
+public final class Main {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
+
+ private Main() { }
+
+ /**
+ * Load the Spring Integration Application Context
+ *
+ * @param args - command line arguments
+ */
+ public static void main(final String... args) {
+
+ LOGGER.info("\n========================================================="
+ + "\n "
+ + "\n Welcome to Spring Integration! "
+ + "\n "
+ + "\n For more information please visit: "
+ + "\n http://www.springsource.org/spring-integration "
+ + "\n "
+ + "\n=========================================================" );
+
+ final AbstractApplicationContext context =
+ new ClassPathXmlApplicationContext("classpath:META-INF/spring/integration/*-context.xml");
+
+ context.registerShutdownHook();
+
+ final Scanner scanner = new Scanner(System.in);
+
+ final UserService service = context.getBean(UserService.class);
+
+ LOGGER.info("\n========================================================="
+ + "\n "
+ + "\n Please press 'q + Enter' to quit the application. "
+ + "\n "
+ + "\n=========================================================" );
+
+ System.out.print("Please enter a string and press : ");
+ while (!scanner.hasNext("q")) {
+
+ final String input = scanner.nextLine();
+ final User user = service.findUser(input);
+
+ if (user != null) {
+
+ System.out.println(
+ String.format("User found - Username: '%s', Email: '%s', Password: '%s'",
+ user.getUsername(), user.getEmail(), user.getPassword()));
+
+ } else {
+ System.out.println(
+ String.format("No User found for username: '%s'.", input));
+ }
+
+ System.out.print("Please enter a string and press :");
+
+ }
+
+ LOGGER.info("Exiting application...bye.");
+
+ System.exit(0);
+
+ }
+}
diff --git a/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/User.java b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/User.java
new file mode 100644
index 00000000..2fcbd1f5
--- /dev/null
+++ b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/User.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2002-2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.springframework.integration.samples.jdbc;
+
+public class User {
+ private String username;
+ private String password;
+ private String email;
+
+ public User(String username, String password, String email) {
+ super();
+ this.username = username;
+ this.password = password;
+ this.email = email;
+ }
+
+ public String getUsername() {
+ return this.username;
+ }
+
+ public String getPassword() {
+ return this.password;
+ }
+
+ public String getEmail() {
+ return this.email;
+ }
+}
diff --git a/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/UserMapper.java b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/UserMapper.java
new file mode 100644
index 00000000..ce87ceb3
--- /dev/null
+++ b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/UserMapper.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2002-2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.springframework.integration.samples.jdbc;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.springframework.jdbc.core.RowMapper;
+
+public class UserMapper implements RowMapper {
+ public User mapRow(ResultSet rs, int rowNum) throws SQLException {
+ return new User(rs.getString("username"), rs.getString("password"), rs.getString("email"));
+ }
+}
diff --git a/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/service/UserService.java b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/service/UserService.java
new file mode 100644
index 00000000..38d03fa6
--- /dev/null
+++ b/basic/jdbc/src/main/java/org/springframework/integration/samples/jdbc/service/UserService.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2002-2011 the original author or authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.integration.samples.jdbc.service;
+
+import org.springframework.integration.samples.jdbc.User;
+
+/**
+ * Provides user services.
+ */
+public interface UserService {
+
+ /**
+ * Retrieves a user based on the provided username.
+ *
+ * @param username Find users by username
+ * @return The user if exists, null otherwise.
+ */
+ User findUser(String username);
+
+}
diff --git a/basic/jdbc/src/main/resources/META-INF/spring/integration/spring-integration-context.xml b/basic/jdbc/src/main/resources/META-INF/spring/integration/spring-integration-context.xml
new file mode 100644
index 00000000..bd04abaa
--- /dev/null
+++ b/basic/jdbc/src/main/resources/META-INF/spring/integration/spring-integration-context.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/basic/jdbc/src/main/resources/logback.xml b/basic/jdbc/src/main/resources/logback.xml
new file mode 100644
index 00000000..eee6b966
--- /dev/null
+++ b/basic/jdbc/src/main/resources/logback.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+ %d %5p | %t | %-55logger{55} | %m %n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/basic/jdbc/src/main/resources/setup-tables.sql b/basic/jdbc/src/main/resources/setup-tables.sql
new file mode 100644
index 00000000..a57cd2a0
--- /dev/null
+++ b/basic/jdbc/src/main/resources/setup-tables.sql
@@ -0,0 +1,5 @@
+create table IF NOT EXISTS USERS(USERNAME varchar(100),PASSWORD varchar(100), EMAIL varchar(100));
+create table IF NOT EXISTS DUMMY(DUMMY_VALUE varchar(10));
+INSERT INTO USERS(USERNAME, PASSWORD, EMAIL) VALUES ('a', 'secret', 'spring-integration@awesome.com');
+INSERT INTO USERS(USERNAME, PASSWORD, EMAIL) VALUES ('b', 's3cr3t', 'spring@rocks.com');
+INSERT INTO USERS(USERNAME, PASSWORD, EMAIL) VALUES ('foo', 'bar', 'foo@bar.de');
\ No newline at end of file
diff --git a/basic/jdbc/src/test/java/org/springframework/integration/sts/StringConversionServiceTest.java b/basic/jdbc/src/test/java/org/springframework/integration/sts/StringConversionServiceTest.java
new file mode 100644
index 00000000..d20bc4f4
--- /dev/null
+++ b/basic/jdbc/src/test/java/org/springframework/integration/sts/StringConversionServiceTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2002-2010 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.integration.sts;
+
+import static junit.framework.Assert.*;
+
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.integration.samples.jdbc.User;
+import org.springframework.integration.samples.jdbc.service.UserService;
+
+
+/**
+ * Verify that the Spring Integration Application Context starts successfully.
+ */
+public class StringConversionServiceTest {
+
+ @Test
+ public void testStartupOfSpringInegrationContext() throws Exception{
+ final ApplicationContext context
+ = new ClassPathXmlApplicationContext("/META-INF/spring/integration/spring-integration-context.xml",
+ StringConversionServiceTest.class);
+ Thread.sleep(2000);
+ }
+
+ @Test
+ public void testConvertStringToUpperCase() {
+ final ApplicationContext context
+ = new ClassPathXmlApplicationContext("/META-INF/spring/integration/spring-integration-context.xml",
+ StringConversionServiceTest.class);
+
+ final UserService service = context.getBean(UserService.class);
+
+ final String userNameToUse = "a";
+ final String expectedResult = "I LOVE SPRING INTEGRATION";
+
+ final User user = service.findUser(userNameToUse);
+
+ assertEquals("Expecting that the returned username is 'a'.",
+ userNameToUse, user.getUsername());
+
+ }
+
+}
diff --git a/basic/pom.xml b/basic/pom.xml
index 22943de9..6a0492e0 100644
--- a/basic/pom.xml
+++ b/basic/pom.xml
@@ -15,6 +15,7 @@
fileftphelloworld
+ jdbcjmsjmxmail