refactored MongoMessageStore to support reading object payloads again

This commit is contained in:
Mark Fisher
2011-08-02 17:17:36 -04:00
parent ca1fa6b727
commit aa0db376ce
2 changed files with 10 additions and 11 deletions

View File

@@ -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<Converter<?, ?>> customConverters = new HashSet<Converter<?,?>>();
List<Converter<?, ?>> customConverters = new ArrayList<Converter<?,?>>();
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?)

View File

@@ -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);
}