Просмотр исходного кода

only initialize jetty on demand

Sebastian Stenzel 7 лет назад
Родитель
Сommit
a666c80ef5

+ 6 - 10
main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java

@@ -14,17 +14,8 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
-import javafx.beans.value.ObservableValue;
-import javafx.scene.layout.GridPane;
-import javafx.util.StringConverter;
-import org.apache.commons.lang3.SystemUtils;
-import org.cryptomator.common.settings.Settings;
-import org.cryptomator.ui.l10n.Localization;
-import org.cryptomator.common.settings.NioAdapterImpl;
-
 import com.google.common.base.CharMatcher;
 import com.google.common.base.Strings;
-
 import javafx.beans.binding.Bindings;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
@@ -35,8 +26,13 @@ import javafx.scene.control.ChoiceBox;
 import javafx.scene.control.Label;
 import javafx.scene.control.TextField;
 import javafx.scene.input.KeyEvent;
+import javafx.scene.layout.GridPane;
 import javafx.scene.layout.VBox;
-import org.fxmisc.easybind.EasyBind;
+import javafx.util.StringConverter;
+import org.apache.commons.lang3.SystemUtils;
+import org.cryptomator.common.settings.NioAdapterImpl;
+import org.cryptomator.common.settings.Settings;
+import org.cryptomator.ui.l10n.Localization;
 
 @Singleton
 public class SettingsController implements ViewController {

+ 9 - 3
main/ui/src/main/java/org/cryptomator/ui/model/WebDavVolume.java

@@ -10,6 +10,8 @@ import org.cryptomator.frontend.webdav.mount.Mounter;
 import org.cryptomator.frontend.webdav.servlet.WebDavServletController;
 
 import javax.inject.Inject;
+import javax.inject.Provider;
+
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 
@@ -18,22 +20,26 @@ public class WebDavVolume implements Volume {
 
 	private static final String LOCALHOST_ALIAS = "cryptomator-vault";
 
-	private final WebDavServer server;
+	private final Provider<WebDavServer> serverProvider;
 	private final VaultSettings vaultSettings;
 	private final Settings settings;
 
+	private WebDavServer server;
 	private WebDavServletController servlet;
 	private Mounter.Mount mount;
 
 	@Inject
-	public WebDavVolume(WebDavServer server, VaultSettings vaultSettings, Settings settings) {
-		this.server = server;
+	public WebDavVolume(Provider<WebDavServer> serverProvider, VaultSettings vaultSettings, Settings settings) {
+		this.serverProvider = serverProvider;
 		this.vaultSettings = vaultSettings;
 		this.settings = settings;
 	}
 
 	@Override
 	public void prepare(CryptoFileSystem fs) {
+		if (server == null) {
+			server = serverProvider.get();
+		}
 		if (!server.isRunning()) {
 			server.start();
 		}