Switch initial config files format to xml and add autodetect adapter for config persi...
[controller.git] / opendaylight / config / config-persister-directory-adapter / src / main / java / org / opendaylight / controller / config / persist / storage / directory / DirectoryPersister.java
index a123eb981ed9ca81d50baf0a6fa582b7ab6e3048..eb8ef8cddf46c98511db67e0423b23db38893f3f 100644 (file)
@@ -33,21 +33,23 @@ public class DirectoryPersister implements Persister {
     private static final Logger logger = LoggerFactory.getLogger(DirectoryPersister.class);
     private static final Charset ENCODING = Charsets.UTF_8;
 
-    static final String MODULES_START = "//MODULES START";
+    public static final String MODULES_START = "//MODULES START";
     static final String SERVICES_START = "//SERVICES START";
     static final String CAPABILITIES_START = "//CAPABILITIES START";
 
 
     private final File storage;
-    private final String header, middle, footer;
+    private static final String header, middle, footer;
 
-    public DirectoryPersister(File storage) {
-        checkArgument(storage.exists() && storage.isDirectory(), "Storage directory does not exist: " + storage);
-        this.storage = storage;
+    static {
         header = readResource("header.txt");
         middle = readResource("middle.txt");
         footer = readResource("footer.txt");
+    }
 
+    public DirectoryPersister(File storage) {
+        checkArgument(storage.exists() && storage.isDirectory(), "Storage directory does not exist: " + storage);
+        this.storage = storage;
     }
 
     private static String readResource(String resource) {
@@ -78,13 +80,18 @@ public class DirectoryPersister implements Persister {
         for (File file : sortedFiles) {
             logger.trace("Adding file '{}' to combined result", file);
 
-            final MyLineProcessor lineProcessor = new MyLineProcessor(file.getAbsolutePath());
-            Files.readLines(file, ENCODING, lineProcessor);
-            result.add(lineProcessor.getConfigSnapshotHolder(header, middle, footer));
+            ConfigSnapshotHolder configSnapshotHolder = loadLastConfig(file);
+            result.add(configSnapshotHolder);
         }
         return result;
     }
 
+    public static ConfigSnapshotHolder loadLastConfig(File file) throws IOException {
+        final MyLineProcessor lineProcessor = new MyLineProcessor(file.getAbsolutePath());
+        Files.readLines(file, ENCODING, lineProcessor);
+        return lineProcessor.getConfigSnapshotHolder(header, middle, footer);
+    }
+
 
     @Override
     public void close() {