|
17 | 17 | package com.ericsson.ei.mongodbhandler;
|
18 | 18 |
|
19 | 19 | import java.util.ArrayList;
|
| 20 | +import java.util.Collections; |
20 | 21 | import java.util.List;
|
21 | 22 | import java.util.concurrent.TimeUnit;
|
22 | 23 |
|
23 | 24 | import javax.annotation.PostConstruct;
|
24 | 25 |
|
25 | 26 | import com.fasterxml.jackson.annotation.JsonIgnore;
|
| 27 | +import com.mongodb.*; |
26 | 28 | import lombok.Setter;
|
| 29 | +import org.apache.commons.lang3.StringUtils; |
27 | 30 | import org.bson.Document;
|
28 | 31 | import org.slf4j.Logger;
|
29 | 32 | import org.slf4j.LoggerFactory;
|
30 |
| -import org.springframework.beans.factory.annotation.Value; |
| 33 | +import org.springframework.beans.factory.annotation.Autowired; |
| 34 | +import org.springframework.boot.autoconfigure.mongo.MongoProperties; |
31 | 35 | import org.springframework.stereotype.Component;
|
32 | 36 |
|
33 |
| -import com.mongodb.BasicDBObject; |
34 |
| -import com.mongodb.Block; |
35 |
| -import com.mongodb.DB; |
36 |
| -import com.mongodb.DBCollection; |
37 |
| -import com.mongodb.DBObject; |
38 |
| -import com.mongodb.MongoClient; |
39 |
| -import com.mongodb.MongoWriteException; |
40 |
| -import com.mongodb.WriteResult; |
41 | 37 | import com.mongodb.client.MongoCollection;
|
42 | 38 | import com.mongodb.client.MongoDatabase;
|
43 | 39 | import com.mongodb.client.model.IndexOptions;
|
|
51 | 47 | @Component
|
52 | 48 | public class MongoDBHandler {
|
53 | 49 | static Logger log = (Logger) LoggerFactory.getLogger(MongoDBHandler.class);
|
| 50 | + |
| 51 | + @Autowired |
| 52 | + private MongoProperties mongoProperties; |
54 | 53 |
|
55 | 54 | @Getter
|
56 | 55 | @Setter
|
57 | 56 | @JsonIgnore
|
58 | 57 | private MongoClient mongoClient;
|
59 | 58 |
|
60 |
| - @Getter |
61 |
| - @Value("${spring.data.mongodb.host}") |
62 |
| - private String host; |
63 |
| - |
64 |
| - @Getter |
65 |
| - @Value("${spring.data.mongodb.port}") |
66 |
| - private int port; |
67 |
| - |
68 | 59 | // TODO establish connection automatically when Spring instantiate this
|
69 | 60 | // based on connection data in properties file
|
70 | 61 | @PostConstruct
|
71 | 62 | public void init() {
|
72 |
| - createConnection(host, port); |
| 63 | + createConnection(); |
73 | 64 | }
|
74 | 65 |
|
75 | 66 | // Establishing the connection to mongodb and creating a collection
|
76 |
| - public void createConnection(String host, int port) { |
77 |
| - mongoClient = new MongoClient(host, port); |
| 67 | + private void createConnection() { |
| 68 | + if (!StringUtils.isBlank(mongoProperties.getUsername()) && !StringUtils.isBlank(new String(mongoProperties.getPassword()))) { |
| 69 | + ServerAddress address = new ServerAddress(mongoProperties.getHost(), mongoProperties.getPort()); |
| 70 | + MongoCredential credential = MongoCredential.createCredential(mongoProperties.getUsername(), |
| 71 | + mongoProperties.getDatabase(), mongoProperties.getPassword()); |
| 72 | + mongoClient = new MongoClient(address, Collections.singletonList(credential)); |
| 73 | + } else { |
| 74 | + mongoClient = new MongoClient(mongoProperties.getHost(), mongoProperties.getPort()); |
| 75 | + } |
78 | 76 | }
|
79 | 77 |
|
80 | 78 | /**
|
|
0 commit comments