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
10 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
20 package org.onap.oom.certservice.postprocessor.copier;
23 import java.io.IOException;
24 import java.util.List;
25 import org.onap.oom.certservice.postprocessor.common.FileTools;
26 import org.onap.oom.certservice.postprocessor.configuration.model.AppConfiguration;
27 import org.onap.oom.certservice.postprocessor.copier.exception.KeystoreFileCopyException;
28 import org.onap.oom.certservice.postprocessor.copier.exception.KeystoreNotExistException;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
32 public class KeystoreCopier {
34 private static final Logger LOGGER = LoggerFactory.getLogger(KeystoreCopier.class);
35 private final FileTools fileTools;
37 public KeystoreCopier(FileTools fileTools) {
38 this.fileTools = fileTools;
41 public void copyKeystores(AppConfiguration configuration) {
42 final List<String> sources = configuration.getSourceKeystorePaths();
43 final List<String> destinations = configuration.getDestinationKeystorePaths();
44 containsPaths(sources);
46 for (int i = 0; i < sources.size(); i++) {
47 copy(sources.get(i), destinations.get(i));
49 } catch (IOException e) {
50 throw new KeystoreFileCopyException(e);
54 private void containsPaths(List<String> sources) {
55 if (sources.isEmpty()) {
56 LOGGER.info("No Keystore files to copy");
60 private void copy(String sourcePath, String destinationPath) throws IOException {
61 final File source = new File(sourcePath);
62 final File destination = new File(destinationPath);
64 if (!source.exists()) {
65 throw new KeystoreNotExistException("Keystore file does not exist '" + source.getAbsolutePath() + "'!");
68 if (destination.exists()) {
69 fileTools.createBackup(destination);
71 fileTools.copy(source, destination);