diff --git a/.gitignore b/.gitignore
index 3bcc6cf..9e5fa4d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,9 @@
.DS_Store
.idea
/target
-*.iml
\ No newline at end of file
+*.iml
+.vscode
+.settings
+.classpath
+.factorypath
+.project
\ No newline at end of file
diff --git a/README.md b/README.md
index fd81497..98f7650 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,11 @@
-Multiple Mongo Connectors
----
+# Multiple Mongo Connectors
+
Sample application to connect to multiple `MongoDB` from spring-boot.
http://blog.marcosbarbero.com/multiple-mongodb-connectors-in-spring-boot/
+
+## Addition
+
+* Updated whole project from Spring-Boot 1.5.x to 2.2.x.
+* Therefore the whole MongoDB factory class has changed.
+* Added Credentials for MongoDB
diff --git a/pom.xml b/pom.xml
index 2f79f75..4b33850 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.5.10.RELEASE
+ 2.2.1.RELEASE
@@ -22,7 +22,7 @@
UTF-8
UTF-8
- 1.8
+ 11
diff --git a/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java b/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java
index cdeb74e..eadb1ac 100644
--- a/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java
+++ b/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java
@@ -9,6 +9,7 @@
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.data.mongodb.config.EnableMongoAuditing;
import java.util.List;
@@ -16,6 +17,7 @@
@Slf4j
@SpringBootApplication
+@EnableMongoAuditing
public class Application implements CommandLineRunner {
@Autowired
diff --git a/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java b/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java
index 3a38629..f5b5fc0 100644
--- a/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java
+++ b/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java
@@ -1,6 +1,6 @@
package com.marcosbarbero.wd.multiplemongo.config;
-import com.mongodb.MongoClient;
+import com.mongodb.ConnectionString;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.mongo.MongoProperties;
@@ -10,13 +10,15 @@
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
+import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
/**
* @author Marcos Barbero
*/
+@Slf4j
@Configuration
@RequiredArgsConstructor
@EnableConfigurationProperties(MultipleMongoProperties.class)
@@ -38,14 +40,29 @@ public MongoTemplate secondaryMongoTemplate() throws Exception {
@Bean
@Primary
public MongoDbFactory primaryFactory(final MongoProperties mongo) throws Exception {
- return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
- mongo.getDatabase());
+ ConnectionString conn = new ConnectionString(buildConnectionString(mongo));
+ return new SimpleMongoClientDbFactory(conn);
}
@Bean
public MongoDbFactory secondaryFactory(final MongoProperties mongo) throws Exception {
- return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
- mongo.getDatabase());
+ ConnectionString conn = new ConnectionString(buildConnectionString(mongo));
+ return new SimpleMongoClientDbFactory(conn);
+ }
+
+ /**
+ * Builds connectionString with credentials
+ *
+ * @param mongo
+ * @return String with the connection information
+ */
+ private String buildConnectionString(MongoProperties mongo) {
+ String prefex = "mongodb://";
+ String con = new StringBuffer(prefex).append(mongo.getUsername()).append(":").append(mongo.getPassword())
+ .append("@").append(mongo.getHost()).append(":").append(mongo.getPort()).append("/")
+ .append(mongo.getDatabase()).toString();
+ log.debug("connection String: " + con);
+ return con;
}
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0286df7..0e7e76a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -2,11 +2,15 @@ mongodb:
primary:
host: localhost
port: 27017
- database: second
+ database: first
+ username: apifirst
+ password: pa55w0rd
secondary:
host: localhost
port: 27017
database: second
+ username: apisecond
+ password: pa55w0rd
spring:
autoconfigure: