From 47b27687ea1e77e7d6ae26eb0e47ab85e90c5d50 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 16 Dec 2018 00:20:08 +0000
Subject: [PATCH] Lazy loading of repos.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
index 07914e9..e232412 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
@@ -26,6 +26,7 @@
     private JCSCache jcsCache;
     private CacheAccess<String, Repository> repoCacheAccess;
     private ArchiveFilelistCache archiveFilelistCache;
+    private int notYetLoadedIdCounter = 1;
 
     public static ButlerCache getInstance() {
         return instance;
@@ -81,9 +82,16 @@
     public List<Repository> getAllRepositories() {
         List<Repository> repositories = new ArrayList<>();
         for (BorgRepoConfig repoConfig : ConfigurationHandler.getConfiguration().getRepoConfigs()) {
-            Repository repository = getRepository(repoConfig);
+            Repository repository = repoCacheAccess.get(repoConfig.getRepo());
             if (repository == null) {
-                continue;
+                if (repoConfig.getId() == null) {
+                    // Temporary id:
+                    repoConfig.setId("not_yet_loaded_" + notYetLoadedIdCounter++);
+                }
+                repository = new Repository()
+                        .setDisplayName(repoConfig.getDisplayName())
+                        .setName(repoConfig.getRepo())
+                        .setId(repoConfig.getId());
             }
             repositories.add(repository);
         }

--
Gitblit v1.10.0