cb6089417622023d9228cdf8e9ce0a9c768530ca
[clamp.git] / src / main / java / org / onap / clamp / clds / config / spring / CldsConfiguration.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
6  *                             reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END============================================
20  * ===================================================================
21  *
22  */
23
24 package org.onap.clamp.clds.config.spring;
25
26 import javax.sql.DataSource;
27
28 import org.onap.clamp.clds.config.ClampProperties;
29 import org.onap.clamp.clds.config.EncodedPasswordBasicDataSource;
30 import org.springframework.beans.factory.annotation.Autowired;
31 import org.springframework.beans.factory.config.PropertiesFactoryBean;
32 import org.springframework.boot.context.properties.ConfigurationProperties;
33 import org.springframework.context.ApplicationContext;
34 import org.springframework.context.annotation.Bean;
35 import org.springframework.context.annotation.Configuration;
36 import org.springframework.context.annotation.Profile;
37
38 @Configuration
39 @Profile("clamp-default")
40 public class CldsConfiguration {
41
42     @Autowired
43     private ApplicationContext appContext;
44     @Autowired
45     private ClampProperties refProp;
46
47     /**
48      * Clds Identity database DataSource configuration.
49      *
50      * @return encoded password data source
51      */
52     @Bean(name = "cldsDataSource")
53     @ConfigurationProperties(prefix = "spring.datasource.cldsdb")
54     public DataSource cldsDataSource() {
55         return new EncodedPasswordBasicDataSource();
56     }
57
58     @Bean(name = "mapper")
59     public PropertiesFactoryBean mapper() {
60         PropertiesFactoryBean bean = new PropertiesFactoryBean();
61         bean.setLocation(appContext.getResource(refProp.getStringValue("files.systemProperties")));
62         return bean;
63     }
64 }