X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-directory-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fpersist%2Fstorage%2Fdirectory%2FDirectoryPersister.java;h=39595edb0b728de43917e32d9d7a71283499f293;hp=25628b6041de94cc099eef49314756b77171324d;hb=eff404d4edd10fcde6d85c5821c80263339d9a4a;hpb=09bc389cba4919dee28d23419455933f41920215 diff --git a/opendaylight/config/config-persister-directory-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryPersister.java b/opendaylight/config/config-persister-directory-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryPersister.java index 25628b6041..39595edb0b 100644 --- a/opendaylight/config/config-persister-directory-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryPersister.java +++ b/opendaylight/config/config-persister-directory-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryPersister.java @@ -8,10 +8,10 @@ package org.opendaylight.controller.config.persist.storage.directory; import com.google.common.base.Charsets; -import com.google.common.base.Optional; import com.google.common.io.Files; import org.apache.commons.io.IOUtils; import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; +import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolderImpl; import org.opendaylight.controller.config.persist.api.Persister; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -64,30 +64,25 @@ public class DirectoryPersister implements Persister { } @Override - public Optional loadLastConfig() throws IOException { + public List loadLastConfigs() throws IOException { File[] filesArray = storage.listFiles(); - if (filesArray.length == 0) { - return Optional.absent(); + if (filesArray == null || filesArray.length == 0) { + return Collections.emptyList(); } List sortedFiles = new ArrayList<>(Arrays.asList(filesArray)); Collections.sort(sortedFiles); // combine all found files + logger.debug("Reading files in following order: {}", sortedFiles); - SortedSet combinedCapabilities = new TreeSet<>(); - StringBuilder modulesBuilder = new StringBuilder(), servicesBuilder = new StringBuilder(); + List result = new ArrayList<>(); for (File file : sortedFiles) { logger.trace("Adding file '{}' to combined result", file); final MyLineProcessor lineProcessor = new MyLineProcessor(file.getAbsolutePath()); Files.readLines(file, ENCODING, lineProcessor); - - modulesBuilder.append(lineProcessor.getModules()); - servicesBuilder.append(lineProcessor.getServices()); - combinedCapabilities.addAll(lineProcessor.getCapabilities()); + result.add(lineProcessor.getConfigSnapshotHolder(header, middle, footer)); } - String combinedSnapshot = header + modulesBuilder.toString() + middle + servicesBuilder.toString() + footer; - ConfigSnapshotHolder result = new ConfigSnapshotHolderImpl(combinedSnapshot, combinedCapabilities); - return Optional.of(result); + return result; } @@ -165,25 +160,11 @@ class MyLineProcessor implements com.google.common.io.LineProcessor { return caps; } -} - -class ConfigSnapshotHolderImpl implements ConfigSnapshotHolder { - - private final String snapshot; - private final SortedSet caps; - - public ConfigSnapshotHolderImpl(String configSnapshot, SortedSet capabilities) { - this.snapshot = configSnapshot; - this.caps = capabilities; - } - - @Override - public String getConfigSnapshot() { - return snapshot; + ConfigSnapshotHolder getConfigSnapshotHolder(String header, String middle, String footer) { + String combinedSnapshot = header + getModules() + middle + getServices() + footer; + ConfigSnapshotHolder result = new ConfigSnapshotHolderImpl(combinedSnapshot, getCapabilities(), fileNameForReporting); + return result; } - @Override - public SortedSet getCapabilities() { - return caps; - } } +