|
@@ -2,10 +2,11 @@ package org.cryptomator.common.mountpoint;
|
|
|
|
|
|
import org.apache.commons.lang3.SystemUtils;
|
|
|
import org.cryptomator.common.Environment;
|
|
|
-import org.cryptomator.common.vaults.Vault;
|
|
|
+import org.cryptomator.common.settings.VaultSettings;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
+import javax.inject.Inject;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.nio.file.Files;
|
|
@@ -20,17 +21,18 @@ public class TemporaryMountPointChooser implements MountPointChooser {
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(TemporaryMountPointChooser.class);
|
|
|
private static final int MAX_TMPMOUNTPOINT_CREATION_RETRIES = 10;
|
|
|
|
|
|
- private final Vault vault;
|
|
|
+ private final VaultSettings vaultSettings;
|
|
|
private final Environment environment;
|
|
|
|
|
|
- public TemporaryMountPointChooser(Vault vault, Environment environment) {
|
|
|
- this.vault = vault;
|
|
|
+ @Inject
|
|
|
+ public TemporaryMountPointChooser(VaultSettings vaultSettings, Environment environment) {
|
|
|
+ this.vaultSettings = vaultSettings;
|
|
|
this.environment = environment;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public boolean isApplicable() {
|
|
|
- if(this.environment.getMountPointsDir().isEmpty()) {
|
|
|
+ if (this.environment.getMountPointsDir().isEmpty()) {
|
|
|
LOG.warn("\"cryptomator.mountPointsDir\" is not set to a valid path!");
|
|
|
return false;
|
|
|
}
|
|
@@ -41,7 +43,7 @@ public class TemporaryMountPointChooser implements MountPointChooser {
|
|
|
public Optional<Path> chooseMountPoint() {
|
|
|
//Shouldn't throw, but let's keep #orElseThrow in case we made a mistake and the check in #isApplicable failed
|
|
|
Path parent = this.environment.getMountPointsDir().orElseThrow();
|
|
|
- String basename = this.vault.getVaultSettings().mountName().get();
|
|
|
+ String basename = this.vaultSettings.mountName().get();
|
|
|
for (int i = 0; i < MAX_TMPMOUNTPOINT_CREATION_RETRIES; i++) {
|
|
|
Path mountPoint = parent.resolve(basename + "_" + i);
|
|
|
if (Files.notExists(mountPoint)) {
|