X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-directory-xml-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fpersist%2Fstorage%2Fdirectory%2Fxml%2FXmlDirectoryStorageAdapter.java;h=40f8c283ddd5a8e49ff7eb2c8464bddd65178a98;hp=ab6fb1577cc49261b134b2db57ad15dd76c63938;hb=44bac35e828c5dfee8a9fb7fad4f57bceaa9490b;hpb=713279a4aa4984b57e1a5c0f6645aed9e78a65c9 diff --git a/opendaylight/config/config-persister-directory-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/xml/XmlDirectoryStorageAdapter.java b/opendaylight/config/config-persister-directory-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/xml/XmlDirectoryStorageAdapter.java index ab6fb1577c..40f8c283dd 100644 --- a/opendaylight/config/config-persister-directory-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/xml/XmlDirectoryStorageAdapter.java +++ b/opendaylight/config/config-persister-directory-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/directory/xml/XmlDirectoryStorageAdapter.java @@ -9,6 +9,8 @@ package org.opendaylight.controller.config.persist.storage.directory.xml; import com.google.common.base.Preconditions; +import com.google.common.base.Splitter; +import com.google.common.collect.Sets; import org.opendaylight.controller.config.persist.api.Persister; import org.opendaylight.controller.config.persist.api.PropertiesProvider; import org.opendaylight.controller.config.persist.api.StorageAdapter; @@ -16,6 +18,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.util.Set; /** * StorageAdapter that retrieves initial configuration from a directory. If multiple files are present, snapshot and @@ -25,6 +28,8 @@ public class XmlDirectoryStorageAdapter implements StorageAdapter { private static final Logger logger = LoggerFactory.getLogger(XmlDirectoryStorageAdapter.class); public static final String DIRECTORY_STORAGE_PROP = "directoryStorage"; + public static final String INCLUDE_EXT_PROP = "includeExtensions"; + private static final char EXTENSIONS_SEPARATOR = ','; @Override @@ -32,8 +37,21 @@ public class XmlDirectoryStorageAdapter implements StorageAdapter { String fileStorageProperty = propertiesProvider.getProperty(DIRECTORY_STORAGE_PROP); Preconditions.checkNotNull(fileStorageProperty, "Unable to find " + propertiesProvider.getFullKeyForReporting(DIRECTORY_STORAGE_PROP)); File storage = new File(fileStorageProperty); - logger.debug("Using {}", storage); - return new XmlDirectoryPersister(storage); + String fileExtensions = propertiesProvider.getProperty(INCLUDE_EXT_PROP); + + logger.debug("Using storage: {}", storage); + + if(fileExtensions != null) { + logger.debug("Using extensions: {}", fileExtensions); + return new XmlDirectoryPersister(storage, splitExtensions(fileExtensions)); + } else { + return new XmlDirectoryPersister(storage); + } + } + + private Set splitExtensions(String fileExtensions) { + return Sets.newHashSet(Splitter.on(EXTENSIONS_SEPARATOR).trimResults().omitEmptyStrings() + .split(fileExtensions)); } }