package com.aperture_software.glados_wiki.spring.root; import com.aperture_software.glados_wiki.config.WikiConfig; import com.aperture_software.glados_wiki.spring.mongodb.MongoDbClientContext; import com.mongodb.MongoClient; import org.mongodb.morphia.Datastore; import org.mongodb.morphia.Morphia; import org.mongodb.morphia.ValidationExtension; import org.mongodb.morphia.logging.MorphiaLoggerFactory; import org.mongodb.morphia.logging.slf4j.SLF4JLogrImplFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; /** * Created with IntelliJ IDEA. * User: jhyun * Date: 13. Nov. 15 * Time: 16:44 */ @Import(value = {MongoDbClientContext.class}) @Configuration public class MorphiaContext { static { MorphiaLoggerFactory.registerLogger(SLF4JLogrImplFactory.class); } @Bean public Morphia morphia() { Morphia morphia = new Morphia(); morphia.mapPackage("com.aperture_software"); // new ValidationExtension(morphia); // return morphia; } @Autowired @Bean public Datastore datastore(WikiConfig wikiConfig, MongoClient mongoClient, Morphia morphia) { Datastore ds = morphia.createDatastore(mongoClient, wikiConfig.getMongoDbName()); ds.ensureIndexes(); return ds; } }