package com.philemonworks.critter.dao.mongo; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.AbstractModule; import com.google.inject.name.Names; import com.mongodb.DBCollection; import com.mongodb.Mongo; public class MongoModule extends AbstractModule{ private static final Logger LOG = LoggerFactory.getLogger(MongoModule.class); public static final String HOST = "rule.database.mongo.host"; public static final String PORT = "rule.database.mongo.port"; Properties constructorProperties; public MongoModule(Properties props) { super(); this.constructorProperties = props; } @Override protected void configure() { Mongo mongoDB = null; try { // TODO Use MongoClient? mongoDB = new Mongo(constructorProperties.getProperty(HOST), Integer.parseInt(constructorProperties.getProperty(PORT))); } catch (Exception ex) { LOG.error("Initialize Mongo driver failed",ex); } bind(DBCollection.class) .annotatedWith(Names.named("rules")) .toInstance(mongoDB.getDB("critter").getCollection("rules")); bind(DBCollection.class) .annotatedWith(Names.named("recordings")) .toInstance(mongoDB.getDB("critter").getCollection("recordings")); } }