[OOM-CPMv2] Allow optional input parameters
[oom/platform/cert-service.git] / trustStoreMerger / src / main / java / org / onap / oom / truststoremerger / copier / KeystoreCopier.java
1 /*============LICENSE_START=======================================================
2  * oom-truststore-merger
3  * ================================================================================
4  * Copyright (C) 2020 Nokia. All rights reserved.
5  * ================================================================================
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  * ============LICENSE_END=========================================================
18  */
19
20 package org.onap.oom.truststoremerger.copier;
21
22 import java.io.File;
23 import java.io.IOException;
24 import java.util.List;
25 import org.onap.oom.truststoremerger.common.FileTools;
26 import org.onap.oom.truststoremerger.configuration.model.AppConfiguration;
27 import org.onap.oom.truststoremerger.copier.exception.KeystoreFileCopyException;
28 import org.onap.oom.truststoremerger.copier.exception.KeystoreNotExistException;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32 public class KeystoreCopier {
33
34     private static final Logger LOGGER = LoggerFactory.getLogger(KeystoreCopier.class);
35     private final FileTools fileTools;
36
37     public KeystoreCopier(FileTools fileTools) {
38         this.fileTools = fileTools;
39     }
40
41     public void copyKeystores(AppConfiguration configuration) {
42         final List<String> sources = configuration.getSourceKeystorePaths();
43         final List<String> destinations = configuration.getDestinationKeystorePaths();
44         containsPaths(sources);
45         try {
46             for (int i = 0; i < sources.size(); i++) {
47                 copy(sources.get(i), destinations.get(i));
48             }
49         } catch (IOException e) {
50             throw new KeystoreFileCopyException(e);
51         }
52     }
53
54     private void containsPaths(List<String> sources) {
55         if (sources.size() == 0) {
56             LOGGER.info("No Keystore files to copy");
57         }
58     }
59
60     private void copy(String sourcePath, String destinationPath) throws IOException {
61         final File source = new File(sourcePath);
62         final File destination = new File(destinationPath);
63
64         if (!source.exists()) {
65             throw new KeystoreNotExistException("Keystore file does not exist '" + source.getAbsolutePath() + "'!");
66         }
67
68         if (destination.exists()) {
69             fileTools.createBackup(destination);
70         }
71         fileTools.copy(source, destination);
72     }
73
74 }