3e4f11ac49c019772025cf6e7670b1b9c0095db1
[policy/api.git] / main / src / main / java / org / onap / policy / api / main / config / PolicyApiConfig.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2022 Bell Canada. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.api.main.config;
22
23 import org.onap.policy.api.main.rest.StatisticsReport;
24 import org.onap.policy.models.base.PfModelException;
25 import org.onap.policy.models.provider.PolicyModelsProvider;
26 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
27 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
28 import org.springframework.beans.factory.annotation.Value;
29 import org.springframework.context.annotation.Bean;
30 import org.springframework.context.annotation.Configuration;
31
32 @Configuration
33 public class PolicyApiConfig {
34
35     @Value("${policy-api.name}")
36     private String groupName;
37     @Value("${database.name}")
38     private String databaseName;
39     @Value("${database.implementation}")
40     private String databaseImplementation;
41     @Value("${database.driver}")
42     private String databaseDriver;
43     @Value("${database.url}")
44     private String databaseUrl;
45     @Value("${database.user}")
46     private String databaseUser;
47     @Value("${database.password}")
48     private String databasePassword;
49     @Value("${database.persistenceUnit}")
50     private String databasePersistenceUnit;
51
52     /**
53      * Initialize database configuration.
54      *
55      * @return PolicyModelsProvider
56      * @throws PfModelException Policy exception
57      */
58     @Bean(destroyMethod = "close")
59     public PolicyModelsProvider policyModelsProvider() throws PfModelException {
60         PolicyModelsProviderParameters modelsProviderParameters = new PolicyModelsProviderParameters();
61         modelsProviderParameters.setName(databaseName);
62         modelsProviderParameters.setImplementation(databaseImplementation);
63         modelsProviderParameters.setDatabaseDriver(databaseDriver);
64         modelsProviderParameters.setDatabaseUrl(databaseUrl);
65         modelsProviderParameters.setDatabaseUser(databaseUser);
66         modelsProviderParameters.setDatabasePassword(databasePassword);
67         modelsProviderParameters.setPersistenceUnit(databasePersistenceUnit);
68         modelsProviderParameters.setDatabaseDriver(databaseDriver);
69         return new PolicyModelsProviderFactory().createPolicyModelsProvider(modelsProviderParameters);
70     }
71
72     @Bean
73     public StatisticsReport createStatisticsReport() {
74         return new StatisticsReport();
75     }
76 }