diff --git a/spring-integration-jdbc/pom.xml b/spring-integration-jdbc/pom.xml
index 64de7a0f75..2389906543 100644
--- a/spring-integration-jdbc/pom.xml
+++ b/spring-integration-jdbc/pom.xml
@@ -32,6 +32,10 @@
org.springframework.integration
spring-integration-core
+
+ org.springframework.commons
+ spring-commons-serializer
+
cglib
diff --git a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java
index ef71577a01..9b38c20ad2 100644
--- a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java
+++ b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java
@@ -26,8 +26,12 @@ import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.springframework.commons.serializer.DeserializingConverter;
+import org.springframework.commons.serializer.InputStreamingConverter;
+import org.springframework.commons.serializer.OutputStreamingConverter;
+import org.springframework.commons.serializer.SerializingConverter;
+import org.springframework.commons.serializer.java.JavaStreamingConverter;
import org.springframework.integration.Message;
-import org.springframework.integration.jdbc.util.SerializationUtils;
import org.springframework.integration.store.AbstractMessageGroupStore;
import org.springframework.integration.store.MessageGroup;
import org.springframework.integration.store.MessageStore;
@@ -103,6 +107,10 @@ public class JdbcMessageStore extends AbstractMessageGroupStore implements Messa
private String tablePrefix = DEFAULT_TABLE_PREFIX;
private JdbcOperations jdbcTemplate;
+
+ private DeserializingConverter deserializer;
+
+ private SerializingConverter serializer;
private LobHandler lobHandler = new DefaultLobHandler();
@@ -112,6 +120,9 @@ public class JdbcMessageStore extends AbstractMessageGroupStore implements Messa
* Convenient constructor for configuration use.
*/
public JdbcMessageStore() {
+ JavaStreamingConverter converter = new JavaStreamingConverter();
+ deserializer = new DeserializingConverter(converter);
+ serializer = new SerializingConverter(converter);
}
/**
@@ -120,6 +131,7 @@ public class JdbcMessageStore extends AbstractMessageGroupStore implements Messa
* @param dataSource a {@link DataSource}
*/
public JdbcMessageStore(DataSource dataSource) {
+ this();
jdbcTemplate = new JdbcTemplate(dataSource);
}
@@ -182,6 +194,26 @@ public class JdbcMessageStore extends AbstractMessageGroupStore implements Messa
public void setLobHandler(LobHandler lobHandler) {
this.lobHandler = lobHandler;
}
+
+ /**
+ * A converter for serializing messages to byte arrays for storage.
+ *
+ * @param serializer the serializer to set
+ */
+ @SuppressWarnings("unchecked")
+ public void setSerializer(OutputStreamingConverter super Message>> serializer) {
+ this.serializer = new SerializingConverter((OutputStreamingConverter