diff --git a/cli/src/main/groovy/com/muwire/cli/Cli.groovy b/cli/src/main/groovy/com/muwire/cli/Cli.groovy index c1ee95cb..2dbcd9c0 100644 --- a/cli/src/main/groovy/com/muwire/cli/Cli.groovy +++ b/cli/src/main/groovy/com/muwire/cli/Cli.groovy @@ -4,6 +4,7 @@ import java.util.concurrent.CountDownLatch import com.muwire.core.Core import com.muwire.core.MuWireSettings +import com.muwire.core.UILoadedEvent import com.muwire.core.connection.ConnectionAttemptStatus import com.muwire.core.connection.ConnectionEvent import com.muwire.core.connection.DisconnectionEvent @@ -83,7 +84,8 @@ class Cli { } core.eventBus.register(AllFilesLoadedEvent.class, fileLoader) core.startServices() - + + core.eventBus.publish(new UILoadedEvent()) println "waiting for files to load" latch.await() // now we begin diff --git a/core/src/main/groovy/com/muwire/core/Core.groovy b/core/src/main/groovy/com/muwire/core/Core.groovy index 287ef738..f844de58 100644 --- a/core/src/main/groovy/com/muwire/core/Core.groovy +++ b/core/src/main/groovy/com/muwire/core/Core.groovy @@ -164,6 +164,7 @@ public class Core { log.info "initializing persistence service" persisterService = new PersisterService(new File(home, "files.json"), eventBus, 15000, fileManager) + eventBus.register(UILoadedEvent.class, persisterService) log.info("initializing host cache") File hostStorage = new File(home, "hosts.json") @@ -229,7 +230,6 @@ public class Core { directoryWatcher.start() trustService.start() trustService.waitForLoad() - persisterService.start() hostCache.start() connectionManager.start() cacheClient.start() diff --git a/core/src/main/groovy/com/muwire/core/files/PersisterService.groovy b/core/src/main/groovy/com/muwire/core/files/PersisterService.groovy index 63911113..051cde0a 100644 --- a/core/src/main/groovy/com/muwire/core/files/PersisterService.groovy +++ b/core/src/main/groovy/com/muwire/core/files/PersisterService.groovy @@ -11,6 +11,7 @@ import com.muwire.core.EventBus import com.muwire.core.InfoHash import com.muwire.core.Service import com.muwire.core.SharedFile +import com.muwire.core.UILoadedEvent import com.muwire.core.util.DataUtil import groovy.json.JsonOutput @@ -36,14 +37,14 @@ class PersisterService extends Service { timer = new Timer("file persister", true) } - void start() { - timer.schedule({load()} as TimerTask, 1) - } - void stop() { timer.cancel() } - + + void onUILoadedEvent(UILoadedEvent e) { + timer.schedule({load()} as TimerTask, 1) + } + void load() { if (location.exists() && location.isFile()) { def slurper = new JsonSlurper()