diff --git a/spring-data-couchdb/pom.xml b/spring-data-couchdb/pom.xml
index 48d8a4edd..d80608c5e 100644
--- a/spring-data-couchdb/pom.xml
+++ b/spring-data-couchdb/pom.xml
@@ -82,45 +82,6 @@
1.6.1
-
-
- org.slf4j
- slf4j-api
-
-
- org.slf4j
- jcl-over-slf4j
- compile
-
-
- org.slf4j
- slf4j-log4j12
- runtime
-
-
- log4j
- log4j
-
-
- javax.mail
- mail
-
-
- javax.jms
- jms
-
-
- com.sun.jdmk
- jmxtools
-
-
- com.sun.jmx
- jmxri
-
-
- runtime
-
-
javax.annotation
jsr250-api
diff --git a/spring-data-document-core/pom.xml b/spring-data-document-core/pom.xml
index a07b9b599..53724ff82 100644
--- a/spring-data-document-core/pom.xml
+++ b/spring-data-document-core/pom.xml
@@ -26,45 +26,6 @@
spring-web
-
-
- org.slf4j
- slf4j-api
-
-
- org.slf4j
- jcl-over-slf4j
- compile
-
-
- org.slf4j
- slf4j-log4j12
- runtime
-
-
- log4j
- log4j
-
-
- javax.mail
- mail
-
-
- javax.jms
- jms
-
-
- com.sun.jdmk
- jmxtools
-
-
- com.sun.jmx
- jmxri
-
-
- runtime
-
-
javax.annotation
jsr250-api
@@ -95,34 +56,16 @@
org.springframework
spring-core
${org.springframework.version}
-
-
- commons-logging
- commons-logging
-
-
org.springframework
spring-web
${org.springframework.version}
-
-
- commons-logging
- commons-logging
-
-
org.springframework
spring-webmvc
${org.springframework.version}
-
-
- commons-logging
- commons-logging
-
-
diff --git a/spring-data-document-parent/pom.xml b/spring-data-document-parent/pom.xml
index 39dccaa96..c1eeae7ec 100644
--- a/spring-data-document-parent/pom.xml
+++ b/spring-data-document-parent/pom.xml
@@ -103,12 +103,6 @@
org.springframework
spring-core
${org.springframework.version}
-
-
- commons-logging
- commons-logging
-
-
org.springframework
@@ -169,6 +163,7 @@
org.slf4j
slf4j-api
${org.slf4j.version}
+ runtime
org.slf4j
diff --git a/spring-data-mongodb-cross-store/src/test/java/org/springframework/data/document/persistence/test/Resume.java b/spring-data-mongodb-cross-store/src/test/java/org/springframework/data/document/persistence/test/Resume.java
index 85ad9ac95..9a889e63e 100644
--- a/spring-data-mongodb-cross-store/src/test/java/org/springframework/data/document/persistence/test/Resume.java
+++ b/spring-data-mongodb-cross-store/src/test/java/org/springframework/data/document/persistence/test/Resume.java
@@ -2,7 +2,6 @@ package org.springframework.data.document.persistence.test;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.data.persistence.document.mongo.MongoDocumentBacking;
//@DocumentEntity
public class Resume {
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index f2ad6ff58..06a373655 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -62,45 +62,6 @@
-
-
- org.slf4j
- slf4j-api
-
-
- org.slf4j
- jcl-over-slf4j
- compile
-
-
- org.slf4j
- slf4j-log4j12
- runtime
-
-
- log4j
- log4j
-
-
- javax.mail
- mail
-
-
- javax.jms
- jms
-
-
- com.sun.jdmk
- jmxtools
-
-
- com.sun.jmx
- jmxri
-
-
- runtime
-
-
com.mysema.querydsl
querydsl-mongodb
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java
index 3d0a58780..fedaee693 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java
@@ -57,6 +57,8 @@ import org.springframework.data.document.mongodb.convert.MappingMongoConverter;
import org.springframework.data.document.mongodb.convert.MongoConverter;
import org.springframework.data.document.mongodb.convert.SimpleMongoConverter;
import org.springframework.data.document.mongodb.index.IndexDefinition;
+import org.springframework.data.document.mongodb.mapping.Document;
+import org.springframework.data.document.mongodb.mapping.MongoPersistentEntity;
import org.springframework.data.document.mongodb.mapping.event.AfterConvertEvent;
import org.springframework.data.document.mongodb.mapping.event.AfterLoadEvent;
import org.springframework.data.document.mongodb.mapping.event.AfterSaveEvent;
@@ -65,6 +67,7 @@ import org.springframework.data.document.mongodb.mapping.event.BeforeSaveEvent;
import org.springframework.data.document.mongodb.mapping.event.MongoMappingEvent;
import org.springframework.data.document.mongodb.query.Query;
import org.springframework.data.document.mongodb.query.Update;
+import org.springframework.data.mapping.model.MappingContext;
import org.springframework.jca.cci.core.ConnectionCallback;
import org.springframework.util.Assert;
@@ -505,11 +508,19 @@ public class MongoTemplate implements InitializingBean, MongoOperations, Applica
// Find methods that take a Query to express the query and that return a List of objects.
public List find(Query query, Class targetClass) {
- return find(getDefaultCollectionName(), query, targetClass);
+ String collName = getEntityCollection(targetClass);
+ if (null == collName) {
+ collName = getRequiredDefaultCollectionName();
+ }
+ return find(collName, query, targetClass);
}
public List find(Query query, Class targetClass, MongoReader reader) {
- return find(getDefaultCollectionName(), query, targetClass, reader);
+ String collName = getEntityCollection(targetClass);
+ if (null == collName) {
+ collName = getRequiredDefaultCollectionName();
+ }
+ return find(collName, query, targetClass, reader);
}
public List find(String collectionName, final Query query, Class targetClass) {
@@ -556,17 +567,17 @@ public class MongoTemplate implements InitializingBean, MongoOperations, Applica
}
public T findAndRemove(Query query, Class targetClass,
- MongoReader reader) {
+ MongoReader reader) {
return findAndRemove(getDefaultCollectionName(), query, targetClass, reader);
}
public T findAndRemove(String collectionName, Query query,
- Class targetClass) {
+ Class targetClass) {
return findAndRemove(collectionName, query, targetClass, null);
}
public T findAndRemove(String collectionName, Query query,
- Class targetClass, MongoReader reader) {
+ Class targetClass, MongoReader reader) {
return doFindAndRemove(collectionName, query.getQueryObject(), query.getFieldsObject(), query.getSortObject(), targetClass, reader);
}
@@ -574,7 +585,11 @@ public class MongoTemplate implements InitializingBean, MongoOperations, Applica
* @see org.springframework.data.document.mongodb.MongoOperations#insert(java.lang.Object)
*/
public void insert(Object objectToSave) {
- insert(getRequiredDefaultCollectionName(), objectToSave);
+ String collName = getEntityCollection(objectToSave);
+ if (null == collName) {
+ collName = getRequiredDefaultCollectionName();
+ }
+ insert(collName, objectToSave);
}
/* (non-Javadoc)
@@ -588,7 +603,11 @@ public class MongoTemplate implements InitializingBean, MongoOperations, Applica
* @see org.springframework.data.document.mongodb.MongoOperations#insert(T, org.springframework.data.document.mongodb.MongoWriter)
*/
public void insert(T objectToSave, MongoWriter writer) {
- insert(getDefaultCollectionName(), objectToSave, writer);
+ String collName = getEntityCollection(objectToSave);
+ if (null == collName) {
+ collName = getDefaultCollectionName();
+ }
+ insert(collName, objectToSave, writer);
}
/* (non-Javadoc)
@@ -1084,6 +1103,36 @@ public class MongoTemplate implements InitializingBean, MongoOperations, Applica
return name;
}
+ private String getEntityCollection(Object obj) {
+ if (null != obj) {
+ return getEntityCollection(obj.getClass());
+ }
+
+ return null;
+ }
+
+ private String getEntityCollection(Class> clazz) {
+ if (mongoConverter instanceof MappingMongoConverter) {
+ MappingContext ctx = ((MappingMongoConverter) mongoConverter).getMappingContext();
+ MongoPersistentEntity entity = (MongoPersistentEntity) ctx.getPersistentEntity(clazz);
+ if (null != entity) {
+ return entity.getCollection();
+ }
+ }
+ // Entity hasn't yet been added, try and figure it out anyway
+ if (clazz.isAnnotationPresent(Document.class)) {
+ Document doc = clazz.getAnnotation(Document.class);
+ if (!"".equals(doc.collection())) {
+ return doc.collection();
+ }
+
+ // Default to simple name
+ return clazz.getSimpleName().toLowerCase();
+ }
+
+ return null;
+ }
+
/**
* Checks and handles any errors.
*
@@ -1240,7 +1289,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations, Applica
}
public DBObject doInCollection(DBCollection collection) throws MongoException, DataAccessException {
- return collection.findAndModify(query, fields, sort, true, null, false, false);
+ return collection.findAndModify(query, fields, sort, true, null, false, false);
}
}
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntity.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntity.java
index 8fa4e27c0..7b4795894 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntity.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntity.java
@@ -24,7 +24,7 @@ import org.springframework.data.util.TypeInformation;
/**
* Mongo specific {@link PersistentEntity} implementation that adds Mongo specific meta-data such as the collection name
* and the like.
- *
+ *
* @author Jon Brisbin
* @author Oliver Gierke
*/
@@ -35,25 +35,31 @@ public class MongoPersistentEntity extends BasicPersistentEntity {
/**
* Creates a new {@link MongoPersistentEntity} with the given {@link MappingContext} and {@link TypeInformation}. Will
* default the collection name to the entities simple type name.
- *
+ *
* @param mappingContext
* @param typeInformation
*/
public MongoPersistentEntity(MappingContext mappingContext, TypeInformation typeInformation) {
super(mappingContext, typeInformation);
- this.collection = typeInformation.getType().getSimpleName();
+ this.collection = typeInformation.getType().getSimpleName().toLowerCase();
+ if (typeInformation.getType().isAnnotationPresent(Document.class)) {
+ Document d = typeInformation.getType().getAnnotation(Document.class);
+ if (!"".equals(d.collection())) {
+ this.collection = d.collection();
+ }
+ }
}
/**
* Returns the collection the entity should be stored in.
- *
+ *
* @return
*/
public String getCollection() {
return collection;
}
-
+
public void setCollection(String collection) {
this.collection = collection;
}
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java
index a8ba4c84b..2db9279b5 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/MongoPersistentEntityIndexCreator.java
@@ -26,8 +26,8 @@ import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationListener;
import org.springframework.dao.DataAccessException;
import org.springframework.data.document.mongodb.CollectionCallback;
@@ -50,7 +50,7 @@ import org.springframework.util.Assert;
*/
public class MongoPersistentEntityIndexCreator implements ApplicationListener {
- private static final Logger log = LoggerFactory.getLogger(MongoPersistentEntityIndexCreator.class);
+ private static final Log log = LogFactory.getLog(MongoPersistentEntityIndexCreator.class);
private Set> classesSeen = Collections.newSetFromMap(new ConcurrentHashMap, Boolean>());
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/event/AbstractMappingEventListener.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/event/AbstractMappingEventListener.java
index 7b4a9be19..f2015f3e3 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/event/AbstractMappingEventListener.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/mapping/event/AbstractMappingEventListener.java
@@ -17,8 +17,8 @@
package org.springframework.data.document.mongodb.mapping.event;
import com.mongodb.DBObject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
@@ -27,7 +27,7 @@ import org.springframework.context.ApplicationListener;
*/
public abstract class AbstractMappingEventListener implements ApplicationListener {
- protected final Logger log = LoggerFactory.getLogger(getClass());
+ protected final Log log = LogFactory.getLog(getClass());
@SuppressWarnings({"unchecked"})
public void onApplicationEvent(T appEvent) {
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQueryCreator.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQueryCreator.java
index 55ccaef8f..23fbbac74 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQueryCreator.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQueryCreator.java
@@ -21,8 +21,8 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.regex.Pattern;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.data.document.mongodb.query.Criteria;
import org.springframework.data.document.mongodb.query.CriteriaDefinition;
import org.springframework.data.document.mongodb.query.Query;
@@ -42,7 +42,7 @@ import org.springframework.data.repository.query.parser.PartTree;
*/
class MongoQueryCreator extends AbstractQueryCreator {
- private static final Logger LOG = LoggerFactory.getLogger(MongoQueryCreator.class);
+ private static final Log LOG = LogFactory.getLog(MongoQueryCreator.class);
/**
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoRepositoryFactoryBean.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoRepositoryFactoryBean.java
index 5545db9f6..bf7a1688b 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoRepositoryFactoryBean.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoRepositoryFactoryBean.java
@@ -18,8 +18,8 @@ package org.springframework.data.document.mongodb.repository;
import java.io.Serializable;
import java.lang.reflect.Method;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.data.document.mongodb.MongoOperations;
import org.springframework.data.document.mongodb.MongoPropertyDescriptors.MongoPropertyDescriptor;
import org.springframework.data.document.mongodb.MongoTemplate;
@@ -43,7 +43,7 @@ import org.springframework.util.StringUtils;
/**
* {@link org.springframework.beans.factory.FactoryBean} to create {@link MongoRepository} instances.
- *
+ *
* @author Oliver Gierke
*/
public class MongoRepositoryFactoryBean, S, ID extends Serializable> extends
@@ -54,18 +54,17 @@ public class MongoRepositoryFactoryBean, S, ID
/**
* Configures the {@link MongoTemplate} to be used.
- *
- * @param template
- * the template to set
+ *
+ * @param template the template to set
*/
public void setTemplate(MongoTemplate template) {
this.template = template;
}
-
+
/**
* Sets the {@link MappingContext} used with the underlying {@link MongoTemplate}.
- *
+ *
* @param mappingContext the mappingContext to set
*/
public void setMappingContext(MappingContext mappingContext) {
@@ -103,7 +102,7 @@ public class MongoRepositoryFactoryBean, S, ID
/**
* Repository to create {@link MongoRepository} instances.
- *
+ *
* @author Oliver Gierke
*/
public static class MongoRepositoryFactory extends RepositoryFactorySupport {
@@ -116,8 +115,8 @@ public class MongoRepositoryFactoryBean, S, ID
/**
* Creates a new {@link MongoRepositoryFactory} with the given {@link MongoTemplate} and {@link MappingContext}.
- *
- * @param template must not be {@literal null}
+ *
+ * @param template must not be {@literal null}
* @param mappingContext
*/
public MongoRepositoryFactory(MongoTemplate template, MappingContext mappingContext) {
@@ -149,7 +148,7 @@ public class MongoRepositoryFactoryBean, S, ID
* (org.springframework.data.repository.support.RepositoryMetadata)
*/
@Override
- @SuppressWarnings({ "rawtypes", "unchecked" })
+ @SuppressWarnings({"rawtypes", "unchecked"})
protected Object getTargetRepository(RepositoryMetadata metadata) {
Class> repositoryInterface = metadata.getRepositoryInterface();
@@ -183,7 +182,7 @@ public class MongoRepositoryFactoryBean, S, ID
/**
* {@link QueryLookupStrategy} to create {@link PartTreeMongoQuery} instances.
- *
+ *
* @author Oliver Gierke
*/
private class MongoQueryLookupStrategy implements QueryLookupStrategy {
@@ -239,16 +238,16 @@ public class MongoRepositoryFactoryBean, S, ID
return entityInformationCreator.getEntityInformation(domainClass);
}
}
-
+
/**
* Simple wrapper to to create {@link MongoEntityInformation} instances based on a {@link MappingContext}.
*
* @author Oliver Gierke
*/
static class EntityInformationCreator {
-
+
private final MappingContext mappingContext;
-
+
public EntityInformationCreator(MappingContext mappingContext) {
this.mappingContext = mappingContext;
}
@@ -257,7 +256,7 @@ public class MongoRepositoryFactoryBean, S, ID
if (null == mappingContext) {
return new SimpleMongoEntityInformation(domainClass);
}
-
+
PersistentEntity persistentEntity = mappingContext.getPersistentEntity(domainClass);
if (persistentEntity == null) {
persistentEntity = mappingContext.addPersistentEntity(domainClass);
@@ -269,12 +268,12 @@ public class MongoRepositoryFactoryBean, S, ID
/**
* {@link QueryCreationListener} inspecting {@link PartTreeMongoQuery}s and creating an index for the properties it
* refers to.
- *
+ *
* @author Oliver Gierke
*/
private static class IndexEnsuringQueryCreationListener implements QueryCreationListener {
- private static final Logger LOG = LoggerFactory.getLogger(IndexEnsuringQueryCreationListener.class);
+ private static final Log LOG = LogFactory.getLog(IndexEnsuringQueryCreationListener.class);
private final MongoOperations operations;
public IndexEnsuringQueryCreationListener(MongoOperations operations) {
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQuery.java
index b50977e3b..e824ad4e9 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQuery.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/StringBasedMongoQuery.java
@@ -18,9 +18,9 @@ package org.springframework.data.document.mongodb.repository;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.bson.types.ObjectId;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.data.document.mongodb.MongoTemplate;
import org.springframework.data.document.mongodb.query.BasicQuery;
import org.springframework.data.document.mongodb.query.Query;
@@ -33,7 +33,7 @@ import org.springframework.data.document.mongodb.query.Query;
public class StringBasedMongoQuery extends AbstractMongoQuery {
private static final Pattern PLACEHOLDER = Pattern.compile("\\?(\\d+)");
- private static final Logger LOG = LoggerFactory.getLogger(StringBasedMongoQuery.class);
+ private static final Log LOG = LogFactory.getLog(StringBasedMongoQuery.class);
private final String query;
private final String fieldSpec;
@@ -71,7 +71,9 @@ public class StringBasedMongoQuery extends AbstractMongoQuery {
query = new BasicQuery(queryString);
}
- LOG.debug("Created query {}", query.getQueryObject());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(String.format("Created query {}", query.getQueryObject()));
+ }
return query;
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/Location.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/Location.java
index 6949b9c54..cf71d9575 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/Location.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/Location.java
@@ -21,7 +21,7 @@ import org.bson.types.ObjectId;
/**
* @author Jon Brisbin
*/
-@Document
+@Document(collection = "places")
public class Location {
private ObjectId id;
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingEventsListener.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingEventsListener.java
index 426fffa6a..6e9346cb2 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingEventsListener.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingEventsListener.java
@@ -17,8 +17,8 @@
package org.springframework.data.document.mongodb.mapping;
import com.mongodb.DBObject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.data.document.mongodb.mapping.event.AbstractMappingEventListener;
/**
@@ -26,7 +26,7 @@ import org.springframework.data.document.mongodb.mapping.event.AbstractMappingEv
*/
public class MappingEventsListener extends AbstractMappingEventListener {
- private Logger log = LoggerFactory.getLogger(getClass());
+ private Log log = LogFactory.getLog(getClass());
@Override
public void onBeforeConvert(Object source) {
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingTests.java
index 783b705a9..a2d9841af 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingTests.java
@@ -24,11 +24,12 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.mongodb.DB;
import com.mongodb.Mongo;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.document.mongodb.MongoDbUtils;
@@ -41,7 +42,8 @@ import org.springframework.data.document.mongodb.query.Query;
*/
public class MappingTests {
- private static final Logger LOGGER = LoggerFactory.getLogger(MongoDbUtils.class);
+ private static final Log LOGGER = LogFactory.getLog(MongoDbUtils.class);
+ private final String[] collectionsToDrop = new String[]{"person", "personmapproperty", "personpojo", "personcustomidname", "account"};
ApplicationContext applicationContext;
MongoTemplate template;
@@ -50,7 +52,10 @@ public class MappingTests {
@Before
public void setUp() throws Exception {
Mongo mongo = new Mongo();
- mongo.getDB("database").getCollection("person").drop();
+ DB db = mongo.getDB("database");
+ for (String coll : collectionsToDrop) {
+ db.getCollection(coll).drop();
+ }
applicationContext = new ClassPathXmlApplicationContext("/mapping.xml");
template = applicationContext.getBean(MongoTemplate.class);
mappingContext = applicationContext.getBean(MongoMappingContext.class);
@@ -58,6 +63,9 @@ public class MappingTests {
@Test
public void testPersonPojo() throws Exception {
+ // POJOs aren't auto-detected, have to add manually
+ mappingContext.addPersistentEntity(PersonPojo.class);
+
LOGGER.info("about to create new personpojo");
PersonPojo p = new PersonPojo(12345, "Person", "Pojo");
LOGGER.info("about to insert");
@@ -73,6 +81,9 @@ public class MappingTests {
@Test
public void testPersonWithCustomIdName() {
+ // POJOs aren't auto-detected, have to add manually
+ mappingContext.addPersistentEntity(PersonCustomIdName.class);
+
PersonCustomIdName p = new PersonCustomIdName(123456, "Custom", "Id");
template.insert(p);
@@ -163,15 +174,15 @@ public class MappingTests {
}
@Test
- public void testPrimitives() {
+ public void testPrimitivesAndCustomCollectionName() {
Location loc = new Location(
new double[]{1.0, 2.0},
new int[]{1, 2, 3, 4},
new float[]{1.0f, 2.0f}
);
- template.insert("locations", loc);
+ template.insert(loc);
- List result = template.find("locations", new Query(Criteria.where("_id").is(loc.getId())), Location.class);
+ List result = template.find("places", new Query(Criteria.where("_id").is(loc.getId())), Location.class);
assertThat(result.size(), is(1));
}
diff --git a/spring-data-mongodb/template.mf b/spring-data-mongodb/template.mf
index 49520cb21..27577ee7e 100644
--- a/spring-data-mongodb/template.mf
+++ b/spring-data-mongodb/template.mf
@@ -33,5 +33,4 @@ Import-Template:
org.apache.commons.collections15.*;version="[4.0.0,5.0.0)",
org.apache.commons.logging.*;version="[1.1.1, 2.0.0)",
org.bson.*;version="0",
- org.slf4j.*;version="[1.5.0,1.6.0)",
org.w3c.dom.*;version="0"