Fixed a DB connection problem
[holmes/common.git] / holmes-actions / src / main / java / org / onap / holmes / common / database / DatabaseConfiguration.java
1 /**
2  * Copyright 2021 ZTE Corporation.
3  * <p>
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * <p>
8  * http://www.apache.org/licenses/LICENSE-2.0
9  * <p>
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.holmes.common.database;
17
18 import org.jdbi.v3.core.Jdbi;
19 import org.jdbi.v3.postgres.PostgresPlugin;
20 import org.jdbi.v3.sqlobject.SqlObjectPlugin;
21 import org.springframework.beans.factory.annotation.Value;
22 import org.springframework.context.annotation.Bean;
23 import org.springframework.context.annotation.Configuration;
24 import org.springframework.jdbc.datasource.DriverManagerDataSource;
25
26 import javax.sql.DataSource;
27
28 @Configuration
29 public class DatabaseConfiguration {
30
31     @Value("${spring.datasource.url}")
32     private String url;
33
34     @Value("${spring.datasource.username}")
35     private String username;
36
37     @Value("${spring.datasource.password}")
38     private String pwd;
39
40     @Value("${spring.datasource.dirver-class-name}")
41     private String driverClass;
42
43     @Bean
44     public DataSource driverManagerDataSource() {
45         DriverManagerDataSource ds = new DriverManagerDataSource();
46         ds.setDriverClassName(driverClass);
47         ds.setUrl(url);
48         ds.setUsername(username);
49         ds.setPassword(pwd);
50         return ds;
51     }
52
53     @Bean
54     public Jdbi jdbi(DataSource dataSource) {
55         return Jdbi.create(dataSource)
56                 .installPlugin(new SqlObjectPlugin())
57                 .installPlugin(new PostgresPlugin());
58     }
59 }