X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-file-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fpersist%2Fstorage%2Ffile%2FFileStorageAdapter.java;h=3ec8713b476514349c001f1854a4b9c05cc00ccf;hp=66d0414d9a18485990ca709dd5ddc9832f1d4cf2;hb=28ef055f38762a2f9679eb765fa44528b56791a8;hpb=bab3649670c33b3b12a49c59fc1c5cabcbcb924e diff --git a/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java b/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java index 66d0414d9a..3ec8713b47 100644 --- a/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java +++ b/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java @@ -15,17 +15,19 @@ import com.google.common.base.Preconditions; import com.google.common.io.Files; import org.apache.commons.lang3.StringUtils; 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.opendaylight.controller.config.persist.api.PropertiesProvider; import org.opendaylight.controller.config.persist.api.StorageAdapter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.xml.sax.SAXException; -import javax.xml.parsers.ParserConfigurationException; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -105,7 +107,7 @@ public class FileStorageAdapter implements StorageAdapter, Persister { } else { numberOfStoredBackups = Integer.MAX_VALUE; } - + logger.trace("Property {} set to {}", NUMBER_OF_BACKUPS, numberOfStoredBackups); return result; } @@ -164,27 +166,23 @@ public class FileStorageAdapter implements StorageAdapter, Persister { } @Override - public Optional loadLastConfig() throws IOException { + public List loadLastConfigs() throws IOException { Preconditions.checkNotNull(storage, "Storage file is null"); if (!storage.exists()) { - return Optional.absent(); + return Collections.emptyList(); } final LineProcessor lineProcessor = new LineProcessor(); - String result = Files.readLines(storage, ENCODING, lineProcessor); - - try { - if (lineProcessor.getConfigSnapshot().isPresent() == false) { - return Optional.absent(); - } else { - return Optional. of(new PersistedConfigImpl(lineProcessor.getConfigSnapshot(), - lineProcessor.getCapabilities())); - } + Files.readLines(storage, ENCODING, lineProcessor); - } catch (ParserConfigurationException | SAXException e) { - throw new IOException("Unable to load last config ", e); + if (lineProcessor.getConfigSnapshot().isPresent() == false) { + return Collections.emptyList(); + } else { + return Arrays.asList(new ConfigSnapshotHolderImpl(lineProcessor.getConfigSnapshot().get(), + lineProcessor.getCapabilities(), storage.getAbsolutePath())); } + } private static final class LineProcessor implements com.google.common.io.LineProcessor { @@ -227,15 +225,16 @@ public class FileStorageAdapter implements StorageAdapter, Persister { return true; } - Optional getConfigSnapshot() throws IOException, SAXException, ParserConfigurationException { + Optional getConfigSnapshot() { final String xmlContent = snapshotBuffer.toString(); - if (xmlContent == null || xmlContent.equals("")) { + if (xmlContent.equals("")) { return Optional.absent(); - } else + } else { return Optional.of(xmlContent); + } } - SortedSet getCapabilities() throws IOException, SAXException, ParserConfigurationException { + SortedSet getCapabilities() { return caps; } @@ -251,25 +250,4 @@ public class FileStorageAdapter implements StorageAdapter, Persister { return "FileStorageAdapter [storage=" + storage + "]"; } - private class PersistedConfigImpl implements ConfigSnapshotHolder { - - private final String snapshot; - private final SortedSet caps; - - public PersistedConfigImpl(Optional configSnapshot, SortedSet capabilities) { - this.snapshot = configSnapshot.get(); - this.caps = capabilities; - } - - @Override - public String getConfigSnapshot() { - return snapshot; - } - - @Override - public SortedSet getCapabilities() { - return caps; - } - } - }