From 433900cd9f13ff74a39576f2f4151589cb3d9957 Mon Sep 17 00:00:00 2001 From: Graeme Rocher Date: Wed, 10 Nov 2010 14:37:04 +0100 Subject: [PATCH] Support for configuring replication sets --- .../bean/factory/MongoFactoryBean.java | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/bean/factory/MongoFactoryBean.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/bean/factory/MongoFactoryBean.java index e1a08d6c1..1053a2276 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/bean/factory/MongoFactoryBean.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/bean/factory/MongoFactoryBean.java @@ -16,6 +16,10 @@ package org.springframework.data.document.mongodb.bean.factory; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.dao.DataAccessException; @@ -27,9 +31,6 @@ import com.mongodb.Mongo; import com.mongodb.MongoOptions; import com.mongodb.ServerAddress; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - /** * Convenient factory for configuring MongoDB. * @@ -51,11 +52,16 @@ public class MongoFactoryBean implements FactoryBean, InitializingBean, private MongoOptions mongoOptions; private String host; private Integer port; + private List replicaSetSeeds; public void setMongoOptions(MongoOptions mongoOptions) { this.mongoOptions = mongoOptions; } + public void setReplicaSetSeeds(List replicaSetSeeds) { + this.replicaSetSeeds = replicaSetSeeds; + } + public void setHost(String host) { this.host = host; } @@ -88,19 +94,29 @@ public class MongoFactoryBean implements FactoryBean, InitializingBean, } else { if(mongoOptions != null) { - String mongoHost = host != null ? host : "localhost"; - if(port != null) { - mongo = new Mongo(new ServerAddress(mongoHost, port), mongoOptions); + if(replicaSetSeeds != null) { + mongo = new Mongo(replicaSetSeeds, mongoOptions); } else { - mongo = new Mongo(mongoHost, mongoOptions); + String mongoHost = host != null ? host : "localhost"; + if(port != null) { + mongo = new Mongo(new ServerAddress(mongoHost, port), mongoOptions); + } + else { + mongo = new Mongo(mongoHost, mongoOptions); + } } } - else if (port == null) { - mongo = new Mongo(host); - } else { - mongo = new Mongo(host, port); + if(replicaSetSeeds != null) { + mongo = new Mongo(replicaSetSeeds, new MongoOptions()); + } + else if (port == null) { + mongo = new Mongo(host); + } + else { + mongo = new Mongo(host, port); + } } } }