X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=otf-camunda%2Fsrc%2Fmain%2Fjava%2Forg%2Foran%2Fotf%2Fspring%2Fconfiguration%2FOTFMongoConfiguration.java;fp=otf-camunda%2Fsrc%2Fmain%2Fjava%2Forg%2Foran%2Fotf%2Fspring%2Fconfiguration%2FOTFMongoConfiguration.java;h=665823f7922b5596f16b04be66d1824e0d77c534;hb=6f7e46b4562b31f748670be8947d315963240ddd;hp=0000000000000000000000000000000000000000;hpb=f49bd1efeaaddd4891c1f329b18d8cfb28b3e75b;p=it%2Fotf.git diff --git a/otf-camunda/src/main/java/org/oran/otf/spring/configuration/OTFMongoConfiguration.java b/otf-camunda/src/main/java/org/oran/otf/spring/configuration/OTFMongoConfiguration.java new file mode 100644 index 0000000..665823f --- /dev/null +++ b/otf-camunda/src/main/java/org/oran/otf/spring/configuration/OTFMongoConfiguration.java @@ -0,0 +1,78 @@ +/* Copyright (c) 2019 AT&T Intellectual Property. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +##############################################################################*/ + + +package org.oran.otf.spring.configuration; + +import com.mongodb.MongoClient; +import com.mongodb.MongoClientOptions; +import com.mongodb.MongoCredential; +import com.mongodb.ServerAddress; +import java.util.ArrayList; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.mongodb.config.AbstractMongoConfiguration; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; + +@Configuration +@EnableMongoRepositories(basePackages = "org.oran.otf.common.repository") +public class OTFMongoConfiguration extends AbstractMongoConfiguration { + @Value("${otf.mongo.hosts}") + private String hosts; + + @Value("${otf.mongo.username}") + private String username; + + @Value("${otf.mongo.password}") + private String password; + + @Value("${otf.mongo.replica-set}") + private String replicaSet; + + @Value("${otf.mongo.database}") + private String database; + + @Override + protected String getDatabaseName() { + return database; + } + + @Override + public MongoClient mongoClient() { + MongoCredential credential = + MongoCredential.createScramSha1Credential(username, database, password.toCharArray()); + + MongoClientOptions options = + MongoClientOptions.builder().sslEnabled(false).requiredReplicaSetName(replicaSet).build(); + + String[] hostArray = hosts.split(","); + ArrayList hosts = new ArrayList<>(); + + for (String host : hostArray) { + String[] hostSplit = host.split(":"); + hosts.add(new ServerAddress(hostSplit[0], Integer.parseInt(hostSplit[1]))); + } + + return new MongoClient(hosts, credential, options); + } + + @Override + public @Bean + MongoTemplate mongoTemplate() { + return new MongoTemplate(mongoClient(), database); + } +}