822979c1d5b18c5ae7b8f9e41f9d27625ef6becd
[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
30 public class KeystoreCopier {
31
32     final private FileTools fileTools;
33
34     public KeystoreCopier(FileTools fileTools) {
35         this.fileTools = fileTools;
36     }
37
38     public void copyKeystores(AppConfiguration configuration) {
39         try {
40             final List<String> sources = configuration.getSourceKeystorePaths();
41             final List<String> destinations = configuration.getDestinationKeystorePaths();
42
43             for (int i = 0; i < sources.size(); i++) {
44                 copy(sources.get(i), destinations.get(i));
45             }
46         } catch (IOException e) {
47             throw new KeystoreFileCopyException(e);
48         }
49     }
50
51     private void copy(String sourcePath, String destinationPath) throws IOException {
52         final File source = new File(sourcePath);
53         final File destination = new File(destinationPath);
54
55         if (!source.exists()) {
56             throw new KeystoreNotExistException("Keystore file does not exist '" + source.getAbsolutePath() + "'!");
57         }
58
59         if (destination.exists()) {
60             fileTools.createBackup(destination);
61         }
62         fileTools.copy(source, destination);
63     }
64
65 }