X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-file-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fpersist%2Fstorage%2Ffile%2FFileStorageAdapter.java;h=66d0414d9a18485990ca709dd5ddc9832f1d4cf2;hb=f21c5ee10e9c2663b313aed3e842ce0e952e6feb;hp=775fb1f88192cb697b38e712716851c3a246e974;hpb=caee336f062eba4909ba53cbaccdde0714236134;p=controller.git 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 775fb1f881..66d0414d9a 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 @@ -12,11 +12,12 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Charsets; import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import com.google.common.collect.Sets; import com.google.common.io.Files; import org.apache.commons.lang3.StringUtils; -import org.opendaylight.controller.config.persist.api.storage.StorageAdapter; -import org.osgi.framework.BundleContext; +import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; +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; @@ -26,20 +27,22 @@ import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; /** * StorageAdapter that stores configuration in a plan file. */ -public class FileStorageAdapter implements StorageAdapter { +public class FileStorageAdapter implements StorageAdapter, Persister { private static final Logger logger = LoggerFactory.getLogger(FileStorageAdapter.class); - // TODO prefix properties private static final Charset ENCODING = Charsets.UTF_8; public static final String FILE_STORAGE_PROP = "fileStorage"; public static final String NUMBER_OF_BACKUPS = "numberOfBackups"; + private static final String SEPARATOR_E_PURE = "//END OF CONFIG"; private static final String SEPARATOR_E = newLine(SEPARATOR_E_PURE); @@ -55,8 +58,8 @@ public class FileStorageAdapter implements StorageAdapter { private File storage; @Override - public void setProperties(BundleContext bundleContext) { - File storage = extractStorageFileFromProperties(bundleContext); + public Persister instantiate(PropertiesProvider propertiesProvider) { + File storage = extractStorageFileFromProperties(propertiesProvider); logger.debug("Using file {}", storage.getAbsolutePath()); // Create file if it does not exist File parentFile = storage.getAbsoluteFile().getParentFile(); @@ -79,7 +82,7 @@ public class FileStorageAdapter implements StorageAdapter { + " property should be either set to positive value, or ommited. Can not be set to 0."); } setFileStorage(storage); - + return this; } @VisibleForTesting @@ -92,12 +95,11 @@ public class FileStorageAdapter implements StorageAdapter { numberOfStoredBackups = numberOfBackups; } - private static File extractStorageFileFromProperties(BundleContext bundleContext) { - String fileStorageProperty = bundleContext.getProperty(FILE_STORAGE_PROP); - Preconditions.checkNotNull(fileStorageProperty, "Unable to find " + FILE_STORAGE_PROP - + " in received context :" + bundleContext); + private static File extractStorageFileFromProperties(PropertiesProvider propertiesProvider) { + String fileStorageProperty = propertiesProvider.getProperty(FILE_STORAGE_PROP); + Preconditions.checkNotNull(fileStorageProperty, "Unable to find " + propertiesProvider.getFullKeyForReporting(FILE_STORAGE_PROP)); File result = new File(fileStorageProperty); - String numberOfBAckupsAsString = bundleContext.getProperty(NUMBER_OF_BACKUPS); + String numberOfBAckupsAsString = propertiesProvider.getProperty(NUMBER_OF_BACKUPS); if (numberOfBAckupsAsString != null) { numberOfStoredBackups = Integer.valueOf(numberOfBAckupsAsString); } else { @@ -189,7 +191,7 @@ public class FileStorageAdapter implements StorageAdapter { private boolean inLastConfig, inLastSnapshot; private final StringBuffer snapshotBuffer = new StringBuffer(); - private final Set caps = Sets.newHashSet(); + private final SortedSet caps = new TreeSet<>(); @Override public String getResult() { @@ -233,14 +235,14 @@ public class FileStorageAdapter implements StorageAdapter { return Optional.of(xmlContent); } - Set getCapabilities() throws IOException, SAXException, ParserConfigurationException { + SortedSet getCapabilities() throws IOException, SAXException, ParserConfigurationException { return caps; } } @Override - public void close() throws IOException { + public void close() { } @@ -252,9 +254,9 @@ public class FileStorageAdapter implements StorageAdapter { private class PersistedConfigImpl implements ConfigSnapshotHolder { private final String snapshot; - private final Set caps; + private final SortedSet caps; - public PersistedConfigImpl(Optional configSnapshot, Set capabilities) { + public PersistedConfigImpl(Optional configSnapshot, SortedSet capabilities) { this.snapshot = configSnapshot.get(); this.caps = capabilities; } @@ -265,7 +267,7 @@ public class FileStorageAdapter implements StorageAdapter { } @Override - public Set getCapabilities() { + public SortedSet getCapabilities() { return caps; } }