X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?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=42ab93b585f32254269c8522584c8fe638ba5652;hb=c67fe61be97d122746b941db18012f3c863cebfb;hp=ab6fb1577cc49261b134b2db57ad15dd76c63938;hpb=d1ab4c3ea79bcd74e02aa9334bc660cb7fc6d037;p=controller.git 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..42ab93b585 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,31 +9,48 @@ 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 java.io.File; +import java.util.Set; 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 java.io.File; - /** * StorageAdapter that retrieves initial configuration from a directory. If multiple files are present, snapshot and * required capabilities will be merged together. Writing to this persister is not supported. */ public class XmlDirectoryStorageAdapter implements StorageAdapter { - private static final Logger logger = LoggerFactory.getLogger(XmlDirectoryStorageAdapter.class); + private static final Logger LOG = 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 - public Persister instantiate(PropertiesProvider propertiesProvider) { + public Persister instantiate(final PropertiesProvider propertiesProvider) { 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); + + LOG.debug("Using storage: {}", storage); + + if(fileExtensions != null) { + LOG.debug("Using extensions: {}", fileExtensions); + return new XmlDirectoryPersister(storage, splitExtensions(fileExtensions)); + } else { + return new XmlDirectoryPersister(storage); + } + } + + private Set splitExtensions(final String fileExtensions) { + return Sets.newHashSet(Splitter.on(EXTENSIONS_SEPARATOR).trimResults().omitEmptyStrings() + .split(fileExtensions)); } }