diff --git a/pom.xml b/pom.xml
index cfe5c7e55..e6ec12417 100644
--- a/pom.xml
+++ b/pom.xml
@@ -258,6 +258,10 @@
${dagger.version}
+
+ -Adagger.fastInit=enabled
+ -Adagger.formatGeneratedSource=enabled
+
diff --git a/src/main/java/org/cryptomator/launcher/Cryptomator.java b/src/main/java/org/cryptomator/launcher/Cryptomator.java
index a9b3887a8..58348acfc 100644
--- a/src/main/java/org/cryptomator/launcher/Cryptomator.java
+++ b/src/main/java/org/cryptomator/launcher/Cryptomator.java
@@ -6,6 +6,7 @@
package org.cryptomator.launcher;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import dagger.Lazy;
import org.apache.commons.lang3.SystemUtils;
import org.cryptomator.common.Environment;
import org.cryptomator.ipc.IpcCommunicator;
@@ -18,7 +19,6 @@ import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
-import java.io.IOException;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CountDownLatch;
@@ -35,13 +35,13 @@ public class Cryptomator {
private final LoggerConfiguration logConfig;
private final DebugMode debugMode;
private final Environment env;
- private final IpcMessageHandler ipcMessageHandler;
+ private final Lazy ipcMessageHandler;
private final Optional applicationVersion;
private final CountDownLatch shutdownLatch;
- private final UiLauncher uiLauncher;
+ private final Lazy uiLauncher;
@Inject
- Cryptomator(LoggerConfiguration logConfig, DebugMode debugMode, Environment env, IpcMessageHandler ipcMessageHandler, @Named("applicationVersion") Optional applicationVersion, @Named("shutdownLatch") CountDownLatch shutdownLatch, UiLauncher uiLauncher) {
+ Cryptomator(LoggerConfiguration logConfig, DebugMode debugMode, Environment env, Lazy ipcMessageHandler, @Named("applicationVersion") Optional applicationVersion, @Named("shutdownLatch") CountDownLatch shutdownLatch, Lazy uiLauncher) {
this.logConfig = logConfig;
this.debugMode = debugMode;
this.env = env;
@@ -80,8 +80,9 @@ public class Cryptomator {
return 2;
} else {
var executor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("IPC-%d").build());
- ipcMessageHandler.handleLaunchArgs(List.of(args));
- communicator.listen(ipcMessageHandler, executor);
+ var msgHandler = ipcMessageHandler.get();
+ msgHandler.handleLaunchArgs(List.of(args));
+ communicator.listen(msgHandler, executor);
LOG.debug("Did not find running application instance. Launching GUI...");
return runGuiApplication();
}
@@ -99,7 +100,7 @@ public class Cryptomator {
*/
private int runGuiApplication() {
try {
- uiLauncher.launch();
+ uiLauncher.get().launch();
shutdownLatch.await();
LOG.info("UI shut down");
return 0;
@@ -109,5 +110,4 @@ public class Cryptomator {
}
}
-
}