From aa0db376ce82a306fd72f6e5fdb5edc3969a9364 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 2 Aug 2011 17:17:36 -0400 Subject: [PATCH] refactored MongoMessageStore to support reading object payloads again --- .../mongodb/store/MongoMessageStore.java | 17 ++++++++--------- .../store/MongoClaimCheckIntegrationTests.java | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoMessageStore.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoMessageStore.java index be36229e23..fc77505a09 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoMessageStore.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoMessageStore.java @@ -18,9 +18,9 @@ package org.springframework.integration.mongodb.store; import static org.springframework.data.mongodb.core.query.Criteria.where; -import java.util.HashSet; +import java.util.ArrayList; +import java.util.List; import java.util.Map; -import java.util.Set; import java.util.UUID; import org.springframework.beans.DirectFieldAccessor; @@ -29,6 +29,7 @@ import org.springframework.core.convert.converter.Converter; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.convert.CustomConversions; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; @@ -111,20 +112,18 @@ public class MongoMessageStore implements MessageStore, BeanClassLoaderAware { @Override public void afterPropertiesSet() { super.afterPropertiesSet(); - Set> customConverters = new HashSet>(); + List> customConverters = new ArrayList>(); customConverters.add(new UuidToStringConverter()); customConverters.add(new StringToUuidConverter()); - //this.setCustomConverters(customConverters); + this.setCustomConversions(new CustomConversions(customConverters)); } - - + @Override public void write(Object source, DBObject target) { if (source instanceof Message) { - //String payloadType = ((Message) source).getPayload().getClass().getName(); - //target.put("_payloadType", payloadType); + String payloadType = ((Message) source).getPayload().getClass().getName(); + target.put("_payloadType", payloadType); target.put("_id", ((Message) source).getHeaders().getId().toString()); - //target.put("_id", ((Message) source).getHeaders().getId().toString()); } // // TODO: fix this (the base class should handle it via converters?) diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/MongoClaimCheckIntegrationTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/MongoClaimCheckIntegrationTests.java index 3266fb94ab..8c300cf19f 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/MongoClaimCheckIntegrationTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/MongoClaimCheckIntegrationTests.java @@ -69,9 +69,9 @@ public class MongoClaimCheckIntegrationTests extends MongoDbAvailableTests{ Message claimCheckMessage = checkin.transform(originalMessage); assertEquals(originalMessage.getHeaders().getId(), claimCheckMessage.getPayload()); Message checkedOutMessage = checkout.transform(claimCheckMessage); -// assertEquals(originalMessage.getPayload(), checkedOutMessage.getPayload()); + assertEquals(originalMessage.getPayload(), checkedOutMessage.getPayload()); assertEquals(claimCheckMessage.getPayload(), checkedOutMessage.getHeaders().getId()); -// assertEquals(originalMessage, checkedOutMessage); + assertEquals(originalMessage, checkedOutMessage); }