From 74d19e8d75e4580438f684995e634edc0fe67ef0 Mon Sep 17 00:00:00 2001 From: Thomas Dudek Date: Wed, 5 Sep 2012 13:09:12 +0200 Subject: [PATCH] added configuration parameter "options" (MongoOptions) --- .../grails/plugins/mongodb/MongoHolderBean.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/java/grails/plugins/mongodb/MongoHolderBean.java b/src/java/grails/plugins/mongodb/MongoHolderBean.java index db9c331..4b85c65 100644 --- a/src/java/grails/plugins/mongodb/MongoHolderBean.java +++ b/src/java/grails/plugins/mongodb/MongoHolderBean.java @@ -3,10 +3,7 @@ import com.google.code.morphia.Datastore; import com.google.code.morphia.DatastoreImpl; import com.google.code.morphia.Morphia; -import com.mongodb.DB; -import com.mongodb.DBCollection; -import com.mongodb.Mongo; -import com.mongodb.ServerAddress; +import com.mongodb.*; import groovy.util.ConfigObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -50,18 +47,26 @@ public MongoHolderBean(GrailsApplication application) throws UnknownHostExceptio replicaSets = (List)((ConfigObject)application.getConfig().get("mongodb")).get("replicaSet"); } catch (Exception ignore) {} + MongoOptions mongoOptions = null; + try { + mongoOptions = (MongoOptions)((ConfigObject)application.getConfig().get("mongodb")).get("options"); + } catch (Exception ignore) { + mongoOptions = new MongoOptions(); + } + if (replicaSets != null) { // user replica sets log.info("Creating MongoDB connection with replica sets " + replicaSets + " and database " + database); List addressList = new ArrayList(); for (String addr : replicaSets) { addressList.add(new ServerAddress(addr)); } - mongo = new Mongo(addressList); + mongo = new Mongo(addressList, mongoOptions); } else { // use host port String host = getConfigVar(flatConfig, "mongodb.host", "localhost"); int port = parsePortFromConfig(getConfigVar(flatConfig, "mongodb.port", "27017"), 27017); log.info("Creating MongoDB connection to host " + host + ":" + port + " and database " + database); - mongo = new Mongo(host, port); + + mongo = new Mongo(new ServerAddress(host, port), mongoOptions); } morphia = new Morphia();