From 242b1e92a34cf78905fa3b3f09600169c6c02006 Mon Sep 17 00:00:00 2001 From: infeo Date: Thu, 1 Mar 2018 14:35:03 +0100 Subject: [PATCH] renaming NioAdapter-Interface to Volume to prevent confusing to FUSE-project --- main/pom.xml | 2 +- .../ui/controllers/SettingsController.java | 24 ++++++------ .../{FuseNioAdapter.java => FuseVolume.java} | 37 +++++++++++++------ .../java/org/cryptomator/ui/model/Vault.java | 26 ++++++------- .../org/cryptomator/ui/model/VaultModule.java | 6 +-- .../ui/model/{NioAdapter.java => Volume.java} | 5 ++- ...ebDavNioAdapter.java => WebDavVolume.java} | 4 +- main/ui/src/main/resources/fxml/settings.fxml | 8 ++-- .../ui/src/main/resources/localization/en.txt | 6 +-- 9 files changed, 68 insertions(+), 50 deletions(-) rename main/ui/src/main/java/org/cryptomator/ui/model/{FuseNioAdapter.java => FuseVolume.java} (68%) rename main/ui/src/main/java/org/cryptomator/ui/model/{NioAdapter.java => Volume.java} (87%) rename main/ui/src/main/java/org/cryptomator/ui/model/{WebDavNioAdapter.java => WebDavVolume.java} (95%) diff --git a/main/pom.xml b/main/pom.xml index e5738b56cf..02257553e7 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -28,7 +28,7 @@ 1.4.5 1.0.3 1.0.2 - 0.1.1-SNAPSHOT + 0.1.2-SNAPSHOT 2.5 3.6 diff --git a/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java b/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java index c0caffe44f..4dc695f68c 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/controllers/SettingsController.java @@ -56,10 +56,10 @@ public SettingsController(Localization localization, Settings settings, @Named(" private CheckBox checkForUpdatesCheckbox; @FXML - private GridPane webdavNioAdapter; + private GridPane webdavVolume; @FXML - private GridPane fuseNioAdapter; + private GridPane fuseVolume; @FXML private Label portFieldLabel; @@ -80,7 +80,7 @@ public SettingsController(Localization localization, Settings settings, @Named(" private ChoiceBox prefGvfsScheme; @FXML - private Label nioAdapterLabel; + private Label volumeLabel; @FXML private ChoiceBox nioAdapter; @@ -105,12 +105,12 @@ public void initialize() { //WEBDAV - webdavNioAdapter.managedProperty().bind(webdavNioAdapter.visibleProperty()); - prefGvfsScheme.managedProperty().bind(webdavNioAdapter.visibleProperty()); - prefGvfsSchemeLabel.managedProperty().bind(webdavNioAdapter.visibleProperty()); - portFieldLabel.managedProperty().bind(webdavNioAdapter.visibleProperty()); - changePortButton.managedProperty().bind(webdavNioAdapter.visibleProperty()); - portField.managedProperty().bind(webdavNioAdapter.visibleProperty()); + webdavVolume.managedProperty().bind(webdavVolume.visibleProperty()); + prefGvfsScheme.managedProperty().bind(webdavVolume.visibleProperty()); + prefGvfsSchemeLabel.managedProperty().bind(webdavVolume.visibleProperty()); + portFieldLabel.managedProperty().bind(webdavVolume.visibleProperty()); + changePortButton.managedProperty().bind(webdavVolume.visibleProperty()); + portField.managedProperty().bind(webdavVolume.visibleProperty()); portField.setText(String.valueOf(settings.port().intValue())); portField.addEventFilter(KeyEvent.KEY_TYPED, this::filterNumericKeyEvents); changePortButton.visibleProperty().bind(settings.port().asString().isNotEqualTo(portField.textProperty())); @@ -122,7 +122,7 @@ public void initialize() { prefGvfsScheme.setVisible(SystemUtils.IS_OS_LINUX); //FUSE - fuseNioAdapter.managedProperty().bind(fuseNioAdapter.visibleProperty()); + fuseVolume.managedProperty().bind(fuseVolume.visibleProperty()); debugModeCheckbox.setSelected(settings.debugMode().get()); @@ -138,8 +138,8 @@ private String[] getSupportedAdapters() { } private void changeNioView(String newVal) { - fuseNioAdapter.setVisible(newVal.equalsIgnoreCase(NioAdapterImpl.FUSE.name())); - webdavNioAdapter.setVisible(newVal.equalsIgnoreCase(NioAdapterImpl.WEBDAV.name())); + fuseVolume.setVisible(newVal.equalsIgnoreCase(NioAdapterImpl.FUSE.name())); + webdavVolume.setVisible(newVal.equalsIgnoreCase(NioAdapterImpl.WEBDAV.name())); } @Override diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/FuseNioAdapter.java b/main/ui/src/main/java/org/cryptomator/ui/model/FuseVolume.java similarity index 68% rename from main/ui/src/main/java/org/cryptomator/ui/model/FuseNioAdapter.java rename to main/ui/src/main/java/org/cryptomator/ui/model/FuseVolume.java index 4a47d9e8bb..d3ea3b62bc 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/FuseNioAdapter.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/FuseVolume.java @@ -14,9 +14,11 @@ import java.nio.file.Paths; @VaultModule.PerVault -public class FuseNioAdapter implements NioAdapter { +public class FuseVolume implements Volume { - private static final Logger LOG = LoggerFactory.getLogger(FuseNioAdapter.class); + private static final Logger LOG = LoggerFactory.getLogger(FuseVolume.class); + private static final String DEFAULT_MOUNTROOTPATH_MAC = System.getProperty("user.home") + "Library/Application Support/Cryptomator"; + private static final String DEFAULT_MOUNTROOTPATH_LINUX = System.getProperty("user.home") + ".Cryptomator"; private final FuseMount fuseMnt; private final VaultSettings vaultSettings; @@ -25,7 +27,7 @@ public class FuseNioAdapter implements NioAdapter { private CryptoFileSystem cfs; @Inject - public FuseNioAdapter(VaultSettings vaultSettings, WindowsDriveLetters windowsDriveLetters) { + public FuseVolume(VaultSettings vaultSettings, WindowsDriveLetters windowsDriveLetters) { this.vaultSettings = vaultSettings; this.windowsDriveLetters = windowsDriveLetters; this.fuseMnt = MountFactory.createMountObject(); @@ -44,8 +46,7 @@ public void mount() throws CommandFailedException { try { EnvironmentVariables envVars = EnvironmentVariables.create() .withMountName(vaultSettings.mountName().getValue() + vaultSettings.getId()) - .withMountPath( - SystemUtils.IS_OS_WINDOWS? computeWinDriveLetter() : vaultSettings.mountPath().getValue()) + .withMountPath(chooseMountRootPath()) .build(); fuseMnt.mount(cfs.getPath("/"), envVars); } catch (Exception e) { @@ -53,13 +54,27 @@ SystemUtils.IS_OS_WINDOWS? computeWinDriveLetter() : vaultSettings.mountPath().g } } - private String computeWinDriveLetter(){ - if(vaultSettings.winDriveLetter().get() != null){ - return vaultSettings.winDriveLetter().getValue()+":\\"; - } - else{ - return windowsDriveLetters.getAvailableDriveLetters().iterator().next()+":\\"; + private String chooseMountRootPath() { + if (SystemUtils.IS_OS_WINDOWS) { + //windows case + if (vaultSettings.winDriveLetter().get() != null) { + // specific drive letter selected + return vaultSettings.winDriveLetter().getValue() + ":\\"; + } else { + // auto assign drive letter selected + return windowsDriveLetters.getAvailableDriveLetters().iterator().next() + ":\\"; + } + } else { + if (vaultSettings.mountPath().isNotNull().get()) { + //specific path given + vaultSettings.mountPath().getValue(); + } else { + //choose default path + return SystemUtils.IS_OS_MAC ? DEFAULT_MOUNTROOTPATH_MAC : DEFAULT_MOUNTROOTPATH_LINUX; + } + } + return null; } @Override diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java b/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java index d0cc37bff2..6a6398a140 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java @@ -56,17 +56,17 @@ public class Vault { private final AtomicReference cryptoFileSystem = new AtomicReference<>(); private final ObjectProperty state = new SimpleObjectProperty(State.LOCKED); - private NioAdapter nioAdapter; + private Volume volume; public enum State { LOCKED, UNLOCKED, MOUNTING, MOUNTED, UNMOUNTING } @Inject - Vault(Settings settings, VaultSettings vaultSettings, NioAdapter nioAdapter) { + Vault(Settings settings, VaultSettings vaultSettings, Volume volume) { this.settings = settings; this.vaultSettings = vaultSettings; - this.nioAdapter = nioAdapter; + this.volume = volume; } // ****************************************************************************** @@ -100,7 +100,7 @@ public void changePassphrase(CharSequence oldPassphrase, CharSequence newPassphr public synchronized void unlock(CharSequence passphrase) throws CryptoException, IOException { CryptoFileSystem fs = getCryptoFileSystem(passphrase); - nioAdapter.prepare(fs); + volume.prepare(fs); Platform.runLater(() -> { state.set(State.UNLOCKED); }); @@ -110,7 +110,7 @@ public synchronized void mount() throws CommandFailedException { Platform.runLater(() -> { state.set(State.MOUNTING); }); - nioAdapter.mount(); + volume.mount(); Platform.runLater(() -> { state.set(State.MOUNTED); }); @@ -128,10 +128,10 @@ private synchronized void unmount(boolean forced) throws CommandFailedException Platform.runLater(() -> { state.set(State.UNMOUNTING); }); - if (forced && nioAdapter.supportsForcedUnmount()) { - nioAdapter.unmountForced(); + if (forced && volume.supportsForcedUnmount()) { + volume.unmountForced(); } else { - nioAdapter.unmount(); + volume.unmount(); } Platform.runLater(() -> { state.set(State.UNLOCKED); @@ -139,7 +139,7 @@ private synchronized void unmount(boolean forced) throws CommandFailedException } public synchronized void lock() throws IOException { - nioAdapter.stop(); + volume.stop(); CryptoFileSystem fs = cryptoFileSystem.getAndSet(null); if (fs != null) { fs.close(); @@ -156,7 +156,7 @@ public void prepareForShutdown() { try { unmount(); } catch (CommandFailedException e) { - if (nioAdapter.supportsForcedUnmount()) { + if (volume.supportsForcedUnmount()) { try { unmountForced(); } catch (CommandFailedException e1) { @@ -174,7 +174,7 @@ public void prepareForShutdown() { } public void reveal() throws CommandFailedException { - nioAdapter.reveal(); + volume.reveal(); } // ****************************************************************************** @@ -290,7 +290,7 @@ public void setWinDriveLetter(Character winDriveLetter) { } public String getFilesystemRootUrl() { - return nioAdapter.getMountUri(); + return volume.getMountUri(); } public String getId() { @@ -317,6 +317,6 @@ public boolean equals(Object obj) { } public boolean supportsForcedUnmount() { - return nioAdapter.supportsForcedUnmount(); + return volume.supportsForcedUnmount(); } } \ No newline at end of file diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/VaultModule.java b/main/ui/src/main/java/org/cryptomator/ui/model/VaultModule.java index fe2028bea0..108b64660a 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/VaultModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/VaultModule.java @@ -43,13 +43,13 @@ public VaultSettings provideVaultSettings() { @Provides @PerVault - public NioAdapter provideNioAdpater(Settings settings, WebDavNioAdapter webDavNioAdapter, FuseNioAdapter fuseNioAdapter) { + public Volume provideNioAdpater(Settings settings, WebDavVolume webDavVolume, FuseVolume fuseVolume) { NioAdapterImpl impl = NioAdapterImpl.valueOf(settings.usedNioAdapterImpl().get()); switch (impl) { case WEBDAV: - return webDavNioAdapter; + return webDavVolume; case FUSE: - return fuseNioAdapter; + return fuseVolume; default: //this should not happen! throw new IllegalStateException("Unsupported NioAdapter: " + settings.usedNioAdapterImpl().get()); diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/NioAdapter.java b/main/ui/src/main/java/org/cryptomator/ui/model/Volume.java similarity index 87% rename from main/ui/src/main/java/org/cryptomator/ui/model/NioAdapter.java rename to main/ui/src/main/java/org/cryptomator/ui/model/Volume.java index 2a6ba33f2f..24954a47cd 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/NioAdapter.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/Volume.java @@ -2,7 +2,10 @@ import org.cryptomator.cryptofs.CryptoFileSystem; -public interface NioAdapter { +/** + * Takes a Volume and usess it to mount an unlocked vault + */ +public interface Volume { void prepare(CryptoFileSystem fs); diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/WebDavNioAdapter.java b/main/ui/src/main/java/org/cryptomator/ui/model/WebDavVolume.java similarity index 95% rename from main/ui/src/main/java/org/cryptomator/ui/model/WebDavNioAdapter.java rename to main/ui/src/main/java/org/cryptomator/ui/model/WebDavVolume.java index 0b05317a0e..77ecabfce4 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/WebDavNioAdapter.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/WebDavVolume.java @@ -14,7 +14,7 @@ import java.net.UnknownHostException; @VaultModule.PerVault -public class WebDavNioAdapter implements NioAdapter { +public class WebDavVolume implements Volume { private static final String LOCALHOST_ALIAS = "cryptomator-vault"; @@ -26,7 +26,7 @@ public class WebDavNioAdapter implements NioAdapter { private Mounter.Mount mount; @Inject - public WebDavNioAdapter(WebDavServer server, VaultSettings vaultSettings, Settings settings) { + public WebDavVolume(WebDavServer server, VaultSettings vaultSettings, Settings settings) { this.server = server; this.vaultSettings = vaultSettings; this.settings = settings; diff --git a/main/ui/src/main/resources/fxml/settings.fxml b/main/ui/src/main/resources/fxml/settings.fxml index 708650fb64..794181cf54 100644 --- a/main/ui/src/main/resources/fxml/settings.fxml +++ b/main/ui/src/main/resources/fxml/settings.fxml @@ -41,11 +41,11 @@ -