696ae56453f3110c323b473f75f991ae74aa5b37
[aaf/certservice.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * PROJECT
4  * ================================================================================
5  * Copyright (C) 2020 Nokia. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.aaf.certservice.certification.configuration;
22
23 import com.fasterxml.jackson.databind.ObjectMapper;
24 import java.io.File;
25 import java.io.IOException;
26 import java.security.InvalidParameterException;
27 import java.util.List;
28 import org.onap.aaf.certservice.certification.configuration.model.CmpServers;
29 import org.onap.aaf.certservice.certification.configuration.model.Cmpv2Server;
30 import org.onap.aaf.certservice.certification.configuration.validation.Cmpv2ServerConfigurationValidator;
31 import org.springframework.beans.factory.annotation.Autowired;
32 import org.springframework.stereotype.Component;
33
34 @Component
35 class CmpServersConfigLoader {
36
37     private static final String LOADING_EXCEPTION_MESSAGE = "Exception occurred during CMP Servers configuration loading";
38     private static final String VALIDATION_EXCEPTION_MESSAGE = "Validation of CMPv2 servers configuration failed";
39
40     private final Cmpv2ServerConfigurationValidator validator;
41
42     @Autowired
43     CmpServersConfigLoader(Cmpv2ServerConfigurationValidator validator) {
44         this.validator = validator;
45     }
46
47     List<Cmpv2Server> load(String path) throws CmpServersConfigLoadingException {
48         try {
49             List<Cmpv2Server> servers = loadConfigFromFile(path).getCmpv2Servers();
50             servers.forEach(validator::validate);
51             return servers;
52         } catch (IOException e) {
53             throw new CmpServersConfigLoadingException(LOADING_EXCEPTION_MESSAGE, e);
54         } catch (InvalidParameterException e) {
55             throw new CmpServersConfigLoadingException(VALIDATION_EXCEPTION_MESSAGE, e);
56         }
57     }
58
59     private CmpServers loadConfigFromFile(String path) throws IOException {
60         ObjectMapper objectMapper = new ObjectMapper();
61         return objectMapper.readValue(new File(path), CmpServers.class);
62     }
63 }