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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.api.main.config;
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;
33 public class PolicyApiConfig {
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;
53 * Initialize database configuration.
55 * @return PolicyModelsProvider
56 * @throws PfModelException Policy exception
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);
73 public StatisticsReport createStatisticsReport() {
74 return new StatisticsReport();