From 7f4a9c13dc24984ba273941ef5113e8d0ce2846d Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 9 Jun 2021 18:33:08 +0200 Subject: [PATCH 01/27] update easybind --- pom.xml | 4 ++-- src/main/resources/license/THIRD-PARTY.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 61bae548b..f60923d59 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ 16 3.11 3.15.0 - 2.1.0 + 2.2 30.1.1-jre 2.35.1 2.8.6 @@ -221,7 +221,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 + 3.0.0-M5 org.codehaus.mojo diff --git a/src/main/resources/license/THIRD-PARTY.txt b/src/main/resources/license/THIRD-PARTY.txt index 4c7ff5c1c..0e1c229df 100644 --- a/src/main/resources/license/THIRD-PARTY.txt +++ b/src/main/resources/license/THIRD-PARTY.txt @@ -85,7 +85,7 @@ Cryptomator uses 47 third-party dependencies under the following licenses: - Checker Qual (org.checkerframework:checker-qual:3.8.0 - https://checkerframework.org) - SLF4J API Module (org.slf4j:slf4j-api:1.7.30 - http://www.slf4j.org) The BSD 2-Clause License: - - EasyBind (com.tobiasdiez:easybind:2.1.0 - https://github.com/tobiasdiez/EasyBind) + - EasyBind (com.tobiasdiez:easybind:2.2 - https://github.com/tobiasdiez/EasyBind) Cryptomator uses other third-party assets under the following licenses: SIL OFL 1.1 License: From 52940d6a19c000330c80b9f5c79eb96ef65638b9 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 9 Jun 2021 18:34:16 +0200 Subject: [PATCH 02/27] add module-info [ci skip] due to split package in jnr-fuse --- pom.xml | 6 ++++ src/main/java/module-info.java | 63 ++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/main/java/module-info.java diff --git a/pom.xml b/pom.xml index f60923d59..15df379fd 100644 --- a/pom.xml +++ b/pom.xml @@ -130,6 +130,12 @@ java-jwt ${jwt.version} + + com.fasterxml.jackson.core + jackson-databind + 2.11.0 + + diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java new file mode 100644 index 000000000..519c6199e --- /dev/null +++ b/src/main/java/module-info.java @@ -0,0 +1,63 @@ +import org.cryptomator.integrations.autostart.AutoStartProvider; +import org.cryptomator.integrations.keychain.KeychainAccessProvider; +import org.cryptomator.integrations.tray.TrayIntegrationProvider; +import org.cryptomator.integrations.uiappearance.UiAppearanceProvider; + +module org.cryptomator.desktop { + requires org.cryptomator.cryptofs; + requires org.cryptomator.frontend.dokany; + requires org.cryptomator.frontend.fuse; + requires org.cryptomator.frontend.webdav; + requires org.cryptomator.integrations.api; + requires java.rmi; + requires java.desktop; + requires java.net.http; + requires javafx.base; + requires javafx.graphics; + requires javafx.controls; + requires javafx.fxml; + requires com.tobiasdiez.easybind; + requires com.google.common; + requires com.google.gson; // really? + requires org.slf4j; + requires org.apache.commons.lang3; + + /* TODO: filename-based modules: */ + requires dagger; + requires static javax.inject; /* ugly dagger/guava crap */ + requires static jsr305; /* ugly dagger/guava crap */ + requires java.jwt; + requires com.fasterxml.jackson.databind; // TODO: tmp fix, waiting for https://github.com/auth0/java-jwt/pull/484 + requires zxcvbn; + requires logback.classic; + requires logback.core; + + uses AutoStartProvider; + uses KeychainAccessProvider; + uses TrayIntegrationProvider; + uses UiAppearanceProvider; + + opens org.cryptomator.common.settings to com.google.gson; + + opens org.cryptomator.launcher to java.rmi; + + opens org.cryptomator.common to javafx.fxml; + opens org.cryptomator.common.vaults to javafx.fxml; + opens org.cryptomator.ui.addvaultwizard to javafx.fxml; + opens org.cryptomator.ui.changepassword to javafx.fxml; + opens org.cryptomator.ui.common to javafx.fxml; + opens org.cryptomator.ui.controls to javafx.fxml; + opens org.cryptomator.ui.forgetPassword to javafx.fxml; + opens org.cryptomator.ui.fxapp to javafx.fxml; + opens org.cryptomator.ui.keyloading.masterkeyfile to javafx.fxml; + opens org.cryptomator.ui.mainwindow to javafx.fxml; + opens org.cryptomator.ui.migration to javafx.fxml; + opens org.cryptomator.ui.preferences to javafx.fxml; + opens org.cryptomator.ui.quit to javafx.fxml; + opens org.cryptomator.ui.recoverykey to javafx.fxml; + opens org.cryptomator.ui.removevault to javafx.fxml; + opens org.cryptomator.ui.stats to javafx.fxml; + opens org.cryptomator.ui.unlock to javafx.fxml; + opens org.cryptomator.ui.vaultoptions to javafx.fxml; + opens org.cryptomator.ui.wrongfilealert to javafx.fxml; +} \ No newline at end of file From 0e924e74293f594ec7d3efd02e2e12e0fdd60158 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 9 Jun 2021 18:38:44 +0200 Subject: [PATCH 03/27] disable fuse for now --- pom.xml | 10 +++++----- src/main/java/module-info.java | 2 +- .../vaults/{FuseVolume.java => FuseVolume.java.txt} | 0 .../org/cryptomator/common/vaults/VaultModule.java | 6 +++--- .../java/org/cryptomator/common/vaults/Volume.java | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) rename src/main/java/org/cryptomator/common/vaults/{FuseVolume.java => FuseVolume.java.txt} (100%) diff --git a/pom.xml b/pom.xml index 15df379fd..899d1b393 100644 --- a/pom.xml +++ b/pom.xml @@ -57,11 +57,11 @@ cryptofs ${cryptomator.cryptofs.version} - - org.cryptomator - fuse-nio-adapter - ${cryptomator.fuse.version} - + + + + + org.cryptomator dokany-nio-adapter diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 519c6199e..5825e5b15 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -6,7 +6,7 @@ import org.cryptomator.integrations.uiappearance.UiAppearanceProvider; module org.cryptomator.desktop { requires org.cryptomator.cryptofs; requires org.cryptomator.frontend.dokany; - requires org.cryptomator.frontend.fuse; + // requires org.cryptomator.frontend.fuse; requires org.cryptomator.frontend.webdav; requires org.cryptomator.integrations.api; requires java.rmi; diff --git a/src/main/java/org/cryptomator/common/vaults/FuseVolume.java b/src/main/java/org/cryptomator/common/vaults/FuseVolume.java.txt similarity index 100% rename from src/main/java/org/cryptomator/common/vaults/FuseVolume.java rename to src/main/java/org/cryptomator/common/vaults/FuseVolume.java.txt diff --git a/src/main/java/org/cryptomator/common/vaults/VaultModule.java b/src/main/java/org/cryptomator/common/vaults/VaultModule.java index 901ee7f42..756fa5aa8 100644 --- a/src/main/java/org/cryptomator/common/vaults/VaultModule.java +++ b/src/main/java/org/cryptomator/common/vaults/VaultModule.java @@ -48,12 +48,12 @@ public class VaultModule { } @Provides - public Volume provideVolume(Settings settings, WebDavVolume webDavVolume, FuseVolume fuseVolume, DokanyVolume dokanyVolume) { + public Volume provideVolume(Settings settings, WebDavVolume webDavVolume, DokanyVolume dokanyVolume) { VolumeImpl preferredImpl = settings.preferredVolumeImpl().get(); if (VolumeImpl.DOKANY == preferredImpl && dokanyVolume.isSupported()) { return dokanyVolume; - } else if (VolumeImpl.FUSE == preferredImpl && fuseVolume.isSupported()) { - return fuseVolume; +// } else if (VolumeImpl.FUSE == preferredImpl && fuseVolume.isSupported()) { +// return fuseVolume; } else { if (VolumeImpl.WEBDAV != preferredImpl) { LOG.warn("Using WebDAV, because {} is not supported.", preferredImpl.getDisplayName()); diff --git a/src/main/java/org/cryptomator/common/vaults/Volume.java b/src/main/java/org/cryptomator/common/vaults/Volume.java index f608122bf..f57f913e4 100644 --- a/src/main/java/org/cryptomator/common/vaults/Volume.java +++ b/src/main/java/org/cryptomator/common/vaults/Volume.java @@ -66,7 +66,7 @@ public interface Volume { return Stream.of(VolumeImpl.values()).filter(impl -> switch (impl) { case WEBDAV -> WebDavVolume.isSupportedStatic(); case DOKANY -> DokanyVolume.isSupportedStatic(); - case FUSE -> FuseVolume.isSupportedStatic(); + case FUSE -> false; // FuseVolume.isSupportedStatic(); }).toArray(VolumeImpl[]::new); } From 6f3c90465c53b47e9b68d3f1ba94c1f568dfc41b Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 9 Jun 2021 21:25:00 +0200 Subject: [PATCH 04/27] adjust fxml loading to modular setup --- .../cryptomator/ui/common/FxmlLoaderFactory.java | 15 +++++---------- .../resources/fxml/addvault_new_password.fxml | 2 +- .../resources/fxml/addvault_new_recoverykey.fxml | 2 +- src/main/resources/fxml/addvault_welcome.fxml | 2 +- src/main/resources/fxml/changepassword.fxml | 2 +- src/main/resources/fxml/health_check_list.fxml | 2 +- src/main/resources/fxml/main_window.fxml | 8 ++++---- src/main/resources/fxml/preferences.fxml | 10 +++++----- src/main/resources/fxml/preferences_about.fxml | 2 +- .../fxml/recoverykey_reset_password.fxml | 2 +- src/main/resources/fxml/recoverykey_success.fxml | 2 +- .../resources/fxml/unlock_enter_password.fxml | 10 +++++----- src/main/resources/fxml/vault_detail_welcome.fxml | 2 +- src/main/resources/fxml/vault_options.fxml | 8 ++++---- 14 files changed, 32 insertions(+), 37 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/common/FxmlLoaderFactory.java b/src/main/java/org/cryptomator/ui/common/FxmlLoaderFactory.java index cf8940cc2..9a4f5d012 100644 --- a/src/main/java/org/cryptomator/ui/common/FxmlLoaderFactory.java +++ b/src/main/java/org/cryptomator/ui/common/FxmlLoaderFactory.java @@ -5,7 +5,6 @@ import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import java.io.IOException; -import java.io.InputStream; import java.io.UncheckedIOException; import java.util.Map; import java.util.ResourceBundle; @@ -26,11 +25,9 @@ public class FxmlLoaderFactory { /** * @return A new FXMLLoader instance */ - public FXMLLoader construct() { - FXMLLoader loader = new FXMLLoader(); - loader.setControllerFactory(this::constructController); - loader.setResources(resourceBundle); - return loader; + private FXMLLoader construct(String fxmlResourceName) { + var url = getClass().getResource(fxmlResourceName); + return new FXMLLoader(url, resourceBundle, null, this::constructController); } /** @@ -41,10 +38,8 @@ public class FxmlLoaderFactory { * @throws IOException if an error occurs while loading the FXML file */ public FXMLLoader load(String fxmlResourceName) throws IOException { - FXMLLoader loader = construct(); - try (InputStream in = getClass().getResourceAsStream(fxmlResourceName)) { - loader.load(in); - } + FXMLLoader loader = construct(fxmlResourceName); + loader.load(); return loader; } diff --git a/src/main/resources/fxml/addvault_new_password.fxml b/src/main/resources/fxml/addvault_new_password.fxml index 4b62f9b78..0bb0a3b3f 100644 --- a/src/main/resources/fxml/addvault_new_password.fxml +++ b/src/main/resources/fxml/addvault_new_password.fxml @@ -23,7 +23,7 @@ - + diff --git a/src/main/resources/fxml/addvault_new_recoverykey.fxml b/src/main/resources/fxml/addvault_new_recoverykey.fxml index 956461fe9..b04677bc3 100644 --- a/src/main/resources/fxml/addvault_new_recoverykey.fxml +++ b/src/main/resources/fxml/addvault_new_recoverykey.fxml @@ -18,7 +18,7 @@ - + diff --git a/src/main/resources/fxml/addvault_welcome.fxml b/src/main/resources/fxml/addvault_welcome.fxml index 750a574a2..7d7244973 100644 --- a/src/main/resources/fxml/addvault_welcome.fxml +++ b/src/main/resources/fxml/addvault_welcome.fxml @@ -21,7 +21,7 @@ - + diff --git a/src/main/resources/fxml/changepassword.fxml b/src/main/resources/fxml/changepassword.fxml index 3f077df5d..eaab7b06a 100644 --- a/src/main/resources/fxml/changepassword.fxml +++ b/src/main/resources/fxml/changepassword.fxml @@ -25,7 +25,7 @@ - + diff --git a/src/main/resources/fxml/health_check_list.fxml b/src/main/resources/fxml/health_check_list.fxml index a3a9c2f93..407627891 100644 --- a/src/main/resources/fxml/health_check_list.fxml +++ b/src/main/resources/fxml/health_check_list.fxml @@ -32,7 +32,7 @@ - + diff --git a/src/main/resources/fxml/main_window.fxml b/src/main/resources/fxml/main_window.fxml index b960f3ed1..ff8e65292 100644 --- a/src/main/resources/fxml/main_window.fxml +++ b/src/main/resources/fxml/main_window.fxml @@ -13,11 +13,11 @@ fx:controller="org.cryptomator.ui.mainwindow.MainWindowController" styleClass="main-window"> - + - - + + @@ -33,5 +33,5 @@ - + diff --git a/src/main/resources/fxml/preferences.fxml b/src/main/resources/fxml/preferences.fxml index 643b31176..4eaf3d45c 100644 --- a/src/main/resources/fxml/preferences.fxml +++ b/src/main/resources/fxml/preferences.fxml @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -43,7 +43,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/src/main/resources/fxml/preferences_about.fxml b/src/main/resources/fxml/preferences_about.fxml index 1c2b7119f..287e91da3 100644 --- a/src/main/resources/fxml/preferences_about.fxml +++ b/src/main/resources/fxml/preferences_about.fxml @@ -18,7 +18,7 @@ - + diff --git a/src/main/resources/fxml/recoverykey_reset_password.fxml b/src/main/resources/fxml/recoverykey_reset_password.fxml index 085554965..b43706673 100644 --- a/src/main/resources/fxml/recoverykey_reset_password.fxml +++ b/src/main/resources/fxml/recoverykey_reset_password.fxml @@ -17,7 +17,7 @@ - + diff --git a/src/main/resources/fxml/recoverykey_success.fxml b/src/main/resources/fxml/recoverykey_success.fxml index 0e9cd2bce..8d9dee3ef 100644 --- a/src/main/resources/fxml/recoverykey_success.fxml +++ b/src/main/resources/fxml/recoverykey_success.fxml @@ -17,7 +17,7 @@ - + diff --git a/src/main/resources/fxml/unlock_enter_password.fxml b/src/main/resources/fxml/unlock_enter_password.fxml index 5fb55dd01..48dcf5451 100644 --- a/src/main/resources/fxml/unlock_enter_password.fxml +++ b/src/main/resources/fxml/unlock_enter_password.fxml @@ -26,23 +26,23 @@ - + - + - + - + - + diff --git a/src/main/resources/fxml/vault_detail_welcome.fxml b/src/main/resources/fxml/vault_detail_welcome.fxml index 59b2596d9..b2cbce7fa 100644 --- a/src/main/resources/fxml/vault_detail_welcome.fxml +++ b/src/main/resources/fxml/vault_detail_welcome.fxml @@ -11,7 +11,7 @@ spacing="24"> - + diff --git a/src/main/resources/fxml/vault_options.fxml b/src/main/resources/fxml/vault_options.fxml index 4808209b2..994853b96 100644 --- a/src/main/resources/fxml/vault_options.fxml +++ b/src/main/resources/fxml/vault_options.fxml @@ -17,7 +17,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -33,7 +33,7 @@ - + @@ -41,7 +41,7 @@ - + From be6b6e4541626950be5faedab876b0334a435a6a Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 10 Jun 2021 10:35:02 +0200 Subject: [PATCH 05/27] adjusted launcher scripts to use the module path --- src/package/launcher-linux.sh | 4 ++-- src/package/launcher-mac.sh | 4 ++-- src/package/launcher-win.bat | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/package/launcher-linux.sh b/src/package/launcher-linux.sh index 6ceb933b0..4ce8e6670 100644 --- a/src/package/launcher-linux.sh +++ b/src/package/launcher-linux.sh @@ -1,7 +1,7 @@ #!/bin/sh cd $(dirname $0) java \ - -cp "libs/*" \ + -p "libs" \ -Dcryptomator.settingsPath="~/.config/Cryptomator/settings.json" \ -Dcryptomator.ipcPortPath="~/.config/Cryptomator/ipcPort.bin" \ -Dcryptomator.logDir="~/.local/share/Cryptomator/logs" \ @@ -9,4 +9,4 @@ java \ -Djdk.gtk.version=2 \ -Xss2m \ -Xmx512m \ - org.cryptomator.launcher.Cryptomator + -m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator diff --git a/src/package/launcher-mac.sh b/src/package/launcher-mac.sh index 2c06efab2..100c975b5 100644 --- a/src/package/launcher-mac.sh +++ b/src/package/launcher-mac.sh @@ -1,11 +1,11 @@ #!/bin/sh cd $(dirname $0) java \ - -cp "libs/*" \ + -p "libs" \ -Dcryptomator.settingsPath="~/Library/Application Support/Cryptomator/settings.json" \ -Dcryptomator.ipcPortPath="~/Library/Application Support/Cryptomator/ipcPort.bin" \ -Dcryptomator.logDir="~/Library/Logs/Cryptomator" \ -Dcryptomator.mountPointsDir="/Volumes" \ -Xss20m \ -Xmx512m \ - org.cryptomator.launcher.Cryptomator \ No newline at end of file + -m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator \ No newline at end of file diff --git a/src/package/launcher-win.bat b/src/package/launcher-win.bat index d385d7e28..b809b3b04 100644 --- a/src/package/launcher-win.bat +++ b/src/package/launcher-win.bat @@ -1,6 +1,6 @@ @echo off java ^ - -cp "libs/*" ^ + -p "libs" ^ -Dcryptomator.settingsPath="~/AppData/Roaming/Cryptomator/settings.json" ^ -Dcryptomator.ipcPortPath="~/AppData/Roaming/Cryptomator/ipcPort.bin" ^ -Dcryptomator.logDir="~/AppData/Roaming/Cryptomator" ^ @@ -8,4 +8,4 @@ java ^ -Dcryptomator.keychainPath="~/AppData/Roaming/Cryptomator/keychain.json" ^ -Xss20m ^ -Xmx512m ^ - org.cryptomator.launcher.Cryptomator \ No newline at end of file + -m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator \ No newline at end of file From 4f3cd2f47cb5424813f5926d6cc99fbb87c1c87f Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 18 Jun 2021 15:16:57 +0200 Subject: [PATCH 06/27] replace JSR-305 Nullable annotation --- src/main/java/module-info.java | 1 - src/main/java/org/cryptomator/common/Nullable.java | 8 ++++++++ .../org/cryptomator/common/settings/VaultSettings.java | 2 +- .../org/cryptomator/common/vaults/VaultComponent.java | 2 +- .../java/org/cryptomator/common/vaults/VaultModule.java | 2 +- .../java/org/cryptomator/ui/common/ErrorComponent.java | 2 +- .../java/org/cryptomator/ui/common/ErrorController.java | 3 ++- 7 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 src/main/java/org/cryptomator/common/Nullable.java diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 5825e5b15..f0d61b987 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -25,7 +25,6 @@ module org.cryptomator.desktop { /* TODO: filename-based modules: */ requires dagger; requires static javax.inject; /* ugly dagger/guava crap */ - requires static jsr305; /* ugly dagger/guava crap */ requires java.jwt; requires com.fasterxml.jackson.databind; // TODO: tmp fix, waiting for https://github.com/auth0/java-jwt/pull/484 requires zxcvbn; diff --git a/src/main/java/org/cryptomator/common/Nullable.java b/src/main/java/org/cryptomator/common/Nullable.java new file mode 100644 index 000000000..cb0d9e887 --- /dev/null +++ b/src/main/java/org/cryptomator/common/Nullable.java @@ -0,0 +1,8 @@ +package org.cryptomator.common; + +/** + * Replacement for JSR-305 to avoid runtime dependencies. Used in Dagger components. + */ +public @interface Nullable { + +} diff --git a/src/main/java/org/cryptomator/common/settings/VaultSettings.java b/src/main/java/org/cryptomator/common/settings/VaultSettings.java index 10a023806..b3d4bb674 100644 --- a/src/main/java/org/cryptomator/common/settings/VaultSettings.java +++ b/src/main/java/org/cryptomator/common/settings/VaultSettings.java @@ -43,7 +43,7 @@ public class VaultSettings { private static final Random RNG = new Random(); private final String id; - private final ObjectProperty path = new SimpleObjectProperty(); + private final ObjectProperty path = new SimpleObjectProperty<>(); private final StringProperty displayName = new SimpleStringProperty(); private final StringProperty winDriveLetter = new SimpleStringProperty(); private final BooleanProperty unlockAfterStartup = new SimpleBooleanProperty(DEFAULT_UNLOCK_AFTER_STARTUP); diff --git a/src/main/java/org/cryptomator/common/vaults/VaultComponent.java b/src/main/java/org/cryptomator/common/vaults/VaultComponent.java index 47be62520..588ff64cd 100644 --- a/src/main/java/org/cryptomator/common/vaults/VaultComponent.java +++ b/src/main/java/org/cryptomator/common/vaults/VaultComponent.java @@ -7,10 +7,10 @@ package org.cryptomator.common.vaults; import dagger.BindsInstance; import dagger.Subcomponent; +import org.cryptomator.common.Nullable; import org.cryptomator.common.mountpoint.MountPointChooserModule; import org.cryptomator.common.settings.VaultSettings; -import javax.annotation.Nullable; import javax.inject.Named; @PerVault diff --git a/src/main/java/org/cryptomator/common/vaults/VaultModule.java b/src/main/java/org/cryptomator/common/vaults/VaultModule.java index 756fa5aa8..55ba2e020 100644 --- a/src/main/java/org/cryptomator/common/vaults/VaultModule.java +++ b/src/main/java/org/cryptomator/common/vaults/VaultModule.java @@ -8,6 +8,7 @@ package org.cryptomator.common.vaults; import dagger.Module; import dagger.Provides; import org.apache.commons.lang3.SystemUtils; +import org.cryptomator.common.Nullable; import org.cryptomator.common.settings.Settings; import org.cryptomator.common.settings.VaultSettings; import org.cryptomator.common.settings.VolumeImpl; @@ -15,7 +16,6 @@ import org.cryptomator.cryptofs.CryptoFileSystem; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nullable; import javax.inject.Named; import javafx.beans.binding.Bindings; import javafx.beans.binding.StringBinding; diff --git a/src/main/java/org/cryptomator/ui/common/ErrorComponent.java b/src/main/java/org/cryptomator/ui/common/ErrorComponent.java index 285270b4c..92276f5bd 100644 --- a/src/main/java/org/cryptomator/ui/common/ErrorComponent.java +++ b/src/main/java/org/cryptomator/ui/common/ErrorComponent.java @@ -2,8 +2,8 @@ package org.cryptomator.ui.common; import dagger.BindsInstance; import dagger.Subcomponent; +import org.cryptomator.common.Nullable; -import javax.annotation.Nullable; import javafx.application.Platform; import javafx.scene.Scene; import javafx.stage.Stage; diff --git a/src/main/java/org/cryptomator/ui/common/ErrorController.java b/src/main/java/org/cryptomator/ui/common/ErrorController.java index c7f19a9e6..85b335b15 100644 --- a/src/main/java/org/cryptomator/ui/common/ErrorController.java +++ b/src/main/java/org/cryptomator/ui/common/ErrorController.java @@ -1,6 +1,7 @@ package org.cryptomator.ui.common; -import javax.annotation.Nullable; +import org.cryptomator.common.Nullable; + import javax.inject.Inject; import javax.inject.Named; import javafx.fxml.FXML; From 458a466c7f8ae24688481198b991fcd1a559e48e Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 18 Jun 2021 15:17:38 +0200 Subject: [PATCH 07/27] updated and excluded dependencies --- pom.xml | 31 ++++++++++++++++--- src/main/java/module-info.java | 6 ++-- src/main/resources/license/THIRD-PARTY.txt | 35 ++++------------------ 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/pom.xml b/pom.xml index 899d1b393..5ab5593eb 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ 1.0.0-beta1 1.3.1 1.3.1 - 1.2.2 + 1.2.3 16 @@ -39,8 +39,9 @@ 3.15.0 2.2 30.1.1-jre - 2.35.1 + 2.37 2.8.6 + 1.5.2 1.7.30 1.2.3 @@ -136,7 +137,6 @@ 2.11.0 - com.tobiasdiez @@ -148,7 +148,7 @@ com.nulab-inc zxcvbn - 1.3.0 + ${zxcvbn.version} @@ -156,6 +156,29 @@ com.google.guava guava ${guava.version} + + + + com.google.guava + listenablefuture + + + com.google.code.findbugs + jsr305 + + + org.checkerframework + checker-qual + + + com.google.errorprone + error_prone_annotations + + + com.google.j2objc + j2objc-annotations + + com.google.dagger diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index f0d61b987..41b0056cb 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -18,16 +18,16 @@ module org.cryptomator.desktop { requires javafx.fxml; requires com.tobiasdiez.easybind; requires com.google.common; - requires com.google.gson; // really? + requires com.google.gson; + requires com.nulabinc.zxcvbn; requires org.slf4j; requires org.apache.commons.lang3; + requires dagger; /* TODO: filename-based modules: */ - requires dagger; requires static javax.inject; /* ugly dagger/guava crap */ requires java.jwt; requires com.fasterxml.jackson.databind; // TODO: tmp fix, waiting for https://github.com/auth0/java-jwt/pull/484 - requires zxcvbn; requires logback.classic; requires logback.core; diff --git a/src/main/resources/license/THIRD-PARTY.txt b/src/main/resources/license/THIRD-PARTY.txt index 0e1c229df..1407c0713 100644 --- a/src/main/resources/license/THIRD-PARTY.txt +++ b/src/main/resources/license/THIRD-PARTY.txt @@ -11,20 +11,15 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. -Cryptomator uses 47 third-party dependencies under the following licenses: +Cryptomator uses 31 third-party dependencies under the following licenses: Apache License v2.0: - - jffi (com.github.jnr:jffi:1.2.23 - http://github.com/jnr/jffi) - - jnr-a64asm (com.github.jnr:jnr-a64asm:1.0.0 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-a64asm) - - jnr-constants (com.github.jnr:jnr-constants:0.9.15 - http://github.com/jnr/jnr-constants) - - jnr-ffi (com.github.jnr:jnr-ffi:2.1.12 - http://github.com/jnr/jnr-ffi) - - FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.2 - http://findbugs.sourceforge.net/) + - Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.11.0 - http://github.com/FasterXML/jackson) + - Jackson-core (com.fasterxml.jackson.core:jackson-core:2.11.0 - https://github.com/FasterXML/jackson-core) + - jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.11.0 - http://github.com/FasterXML/jackson) - Gson (com.google.code.gson:gson:2.8.6 - https://github.com/google/gson/gson) - - Dagger (com.google.dagger:dagger:2.35.1 - https://github.com/google/dagger) - - error-prone annotations (com.google.errorprone:error_prone_annotations:2.5.1 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations) + - Dagger (com.google.dagger:dagger:2.37 - https://github.com/google/dagger) - Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess) - Guava: Google Core Libraries for Java (com.google.guava:guava:30.1.1-jre - https://github.com/google/guava/guava) - - Guava ListenableFuture only (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava - https://github.com/google/guava/listenablefuture) - - J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.3 - https://github.com/google/j2objc/) - Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/) - javax.inject (javax.inject:javax.inject:1 - http://code.google.com/p/atinject/) - Java Native Access (net.java.dev.jna:jna:5.7.0 - https://github.com/java-native-access/jna) @@ -38,15 +33,7 @@ Cryptomator uses 47 third-party dependencies under the following licenses: - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.2 - https://eclipse.org/jetty/jetty-server) - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.2 - https://eclipse.org/jetty/jetty-servlet) - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.2 - https://eclipse.org/jetty/jetty-util) - - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:10.0.2 - https://eclipse.org/jetty/jetty-webapp) - - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:10.0.2 - https://eclipse.org/jetty/jetty-xml) - Jetty :: Servlet API and Schemas for JPMS and OSGi (org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 - https://eclipse.org/jetty/jetty-servlet-api) - BSD: - - asm (org.ow2.asm:asm:7.1 - http://asm.ow2.org/) - - asm-analysis (org.ow2.asm:asm-analysis:7.1 - http://asm.ow2.org/) - - asm-commons (org.ow2.asm:asm-commons:7.1 - http://asm.ow2.org/) - - asm-tree (org.ow2.asm:asm-tree:7.1 - http://asm.ow2.org/) - - asm-util (org.ow2.asm:asm-util:7.1 - http://asm.ow2.org/) Eclipse Public License - Version 1.0: - Jetty :: Servlet API and Schemas for JPMS and OSGi (org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 - https://eclipse.org/jetty/jetty-servlet-api) Eclipse Public License - Version 2.0: @@ -56,33 +43,23 @@ Cryptomator uses 47 third-party dependencies under the following licenses: - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.2 - https://eclipse.org/jetty/jetty-server) - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.2 - https://eclipse.org/jetty/jetty-servlet) - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.2 - https://eclipse.org/jetty/jetty-util) - - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:10.0.2 - https://eclipse.org/jetty/jetty-webapp) - - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:10.0.2 - https://eclipse.org/jetty/jetty-xml) Eclipse Public License - v 1.0: - Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic) - Logback Core Module (ch.qos.logback:logback-core:1.2.3 - http://logback.qos.ch/logback-core) - Eclipse Public License - v 2.0: - - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GNU Lesser General Public License: - Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic) - Logback Core Module (ch.qos.logback:logback-core:1.2.3 - http://logback.qos.ch/logback-core) - GPLv2: - - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GPLv2+CE: - javafx-base (org.openjfx:javafx-base:16 - https://openjdk.java.net/projects/openjfx/javafx-base/) - javafx-controls (org.openjfx:javafx-controls:16 - https://openjdk.java.net/projects/openjfx/javafx-controls/) - javafx-fxml (org.openjfx:javafx-fxml:16 - https://openjdk.java.net/projects/openjfx/javafx-fxml/) - javafx-graphics (org.openjfx:javafx-graphics:16 - https://openjdk.java.net/projects/openjfx/javafx-graphics/) LGPL 2.1: - - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) - Java Native Access (net.java.dev.jna:jna:5.7.0 - https://github.com/java-native-access/jna) - Java Native Access Platform (net.java.dev.jna:jna-platform:5.7.0 - https://github.com/java-native-access/jna) MIT License: - java jwt (com.auth0:java-jwt:3.15.0 - https://github.com/auth0/java-jwt) - - jnr-x86asm (com.github.jnr:jnr-x86asm:1.0.2 - http://github.com/jnr/jnr-x86asm) - - jnr-fuse (com.github.serceman:jnr-fuse:0.5.5 - https://github.com/SerCeMan/jnr-fuse) - - zxcvbn4j (com.nulab-inc:zxcvbn:1.3.0 - https://github.com/nulab/zxcvbn4j) - - Checker Qual (org.checkerframework:checker-qual:3.8.0 - https://checkerframework.org) + - zxcvbn4j (com.nulab-inc:zxcvbn:1.5.2 - https://github.com/nulab/zxcvbn4j) - SLF4J API Module (org.slf4j:slf4j-api:1.7.30 - http://www.slf4j.org) The BSD 2-Clause License: - EasyBind (com.tobiasdiez:easybind:2.2 - https://github.com/tobiasdiez/EasyBind) From 94e26da693d30c4a5615fd999c8455fa8dfcac33 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Tue, 22 Jun 2021 16:32:19 +0200 Subject: [PATCH 08/27] Re-enable FUSE This reverts commit 0e924e74293f594ec7d3efd02e2e12e0fdd60158. --- assembly-linux.xml | 9 ++++- assembly-mac.xml | 9 ++++- assembly-win.xml | 9 ++++- pom.xml | 36 +++++++++++++------ src/main/java/module-info.java | 2 +- .../{FuseVolume.java.txt => FuseVolume.java} | 0 .../common/vaults/VaultModule.java | 6 ++-- .../org/cryptomator/common/vaults/Volume.java | 2 +- src/main/resources/license/THIRD-PARTY.txt | 19 +++++++++- src/package/launcher-linux.sh | 3 +- src/package/launcher-mac.sh | 3 +- src/package/launcher-win.bat | 3 +- 12 files changed, 79 insertions(+), 22 deletions(-) rename src/main/java/org/cryptomator/common/vaults/{FuseVolume.java.txt => FuseVolume.java} (100%) diff --git a/assembly-linux.xml b/assembly-linux.xml index d8d224d67..1de114820 100644 --- a/assembly-linux.xml +++ b/assembly-linux.xml @@ -34,7 +34,14 @@ cryptomator-*.jar - libs + mods + + + target/mods + + *.jar + + mods target/libs diff --git a/assembly-mac.xml b/assembly-mac.xml index cf044be12..95b8adb21 100644 --- a/assembly-mac.xml +++ b/assembly-mac.xml @@ -34,7 +34,14 @@ cryptomator-*.jar - libs + mods + + + target/mods + + *.jar + + mods target/libs diff --git a/assembly-win.xml b/assembly-win.xml index e04495220..c64a34b05 100644 --- a/assembly-win.xml +++ b/assembly-win.xml @@ -34,7 +34,14 @@ cryptomator-*.jar - libs + mods + + + target/mods + + *.jar + + mods target/libs diff --git a/pom.xml b/pom.xml index 5ab5593eb..287f03f8a 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,9 @@ UTF-8 16 + + com.github.serceman,com.github.jnr,org.ow2.asm,net.java.dev.jna,org.apache.jackrabbit,org.apache.httpcomponents + 2.1.0-beta6 1.0.0-rc1 @@ -58,11 +61,11 @@ cryptofs ${cryptomator.cryptofs.version} - - - - - + + org.cryptomator + fuse-nio-adapter + ${cryptomator.fuse.version} + org.cryptomator dokany-nio-adapter @@ -240,7 +243,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.1.2 + 3.2.0 org.apache.maven.plugins @@ -339,6 +342,19 @@ org.apache.maven.plugins maven-dependency-plugin + + copy-mods + prepare-package + + copy-dependencies + + + runtime + ${project.build.directory}/mods + linux,mac,win + ${nonModularGroupIds} + + copy-libs prepare-package @@ -348,7 +364,7 @@ runtime ${project.build.directory}/libs - linux,mac,win + ${nonModularGroupIds} @@ -492,7 +508,7 @@ copy-dependencies - ${project.build.directory}/libs + ${project.build.directory}/mods org.openjfx mac @@ -554,7 +570,7 @@ copy-dependencies - ${project.build.directory}/libs + ${project.build.directory}/mods org.openjfx linux @@ -615,7 +631,7 @@ copy-dependencies - ${project.build.directory}/libs + ${project.build.directory}/mods org.openjfx win diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 41b0056cb..9bd600695 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -6,7 +6,7 @@ import org.cryptomator.integrations.uiappearance.UiAppearanceProvider; module org.cryptomator.desktop { requires org.cryptomator.cryptofs; requires org.cryptomator.frontend.dokany; - // requires org.cryptomator.frontend.fuse; + requires org.cryptomator.frontend.fuse; requires org.cryptomator.frontend.webdav; requires org.cryptomator.integrations.api; requires java.rmi; diff --git a/src/main/java/org/cryptomator/common/vaults/FuseVolume.java.txt b/src/main/java/org/cryptomator/common/vaults/FuseVolume.java similarity index 100% rename from src/main/java/org/cryptomator/common/vaults/FuseVolume.java.txt rename to src/main/java/org/cryptomator/common/vaults/FuseVolume.java diff --git a/src/main/java/org/cryptomator/common/vaults/VaultModule.java b/src/main/java/org/cryptomator/common/vaults/VaultModule.java index 55ba2e020..d254ec0dd 100644 --- a/src/main/java/org/cryptomator/common/vaults/VaultModule.java +++ b/src/main/java/org/cryptomator/common/vaults/VaultModule.java @@ -48,12 +48,12 @@ public class VaultModule { } @Provides - public Volume provideVolume(Settings settings, WebDavVolume webDavVolume, DokanyVolume dokanyVolume) { + public Volume provideVolume(Settings settings, WebDavVolume webDavVolume, FuseVolume fuseVolume, DokanyVolume dokanyVolume) { VolumeImpl preferredImpl = settings.preferredVolumeImpl().get(); if (VolumeImpl.DOKANY == preferredImpl && dokanyVolume.isSupported()) { return dokanyVolume; -// } else if (VolumeImpl.FUSE == preferredImpl && fuseVolume.isSupported()) { -// return fuseVolume; + } else if (VolumeImpl.FUSE == preferredImpl && fuseVolume.isSupported()) { + return fuseVolume; } else { if (VolumeImpl.WEBDAV != preferredImpl) { LOG.warn("Using WebDAV, because {} is not supported.", preferredImpl.getDisplayName()); diff --git a/src/main/java/org/cryptomator/common/vaults/Volume.java b/src/main/java/org/cryptomator/common/vaults/Volume.java index f57f913e4..f608122bf 100644 --- a/src/main/java/org/cryptomator/common/vaults/Volume.java +++ b/src/main/java/org/cryptomator/common/vaults/Volume.java @@ -66,7 +66,7 @@ public interface Volume { return Stream.of(VolumeImpl.values()).filter(impl -> switch (impl) { case WEBDAV -> WebDavVolume.isSupportedStatic(); case DOKANY -> DokanyVolume.isSupportedStatic(); - case FUSE -> false; // FuseVolume.isSupportedStatic(); + case FUSE -> FuseVolume.isSupportedStatic(); }).toArray(VolumeImpl[]::new); } diff --git a/src/main/resources/license/THIRD-PARTY.txt b/src/main/resources/license/THIRD-PARTY.txt index 1407c0713..e97424589 100644 --- a/src/main/resources/license/THIRD-PARTY.txt +++ b/src/main/resources/license/THIRD-PARTY.txt @@ -11,11 +11,15 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. -Cryptomator uses 31 third-party dependencies under the following licenses: +Cryptomator uses 43 third-party dependencies under the following licenses: Apache License v2.0: - Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.11.0 - http://github.com/FasterXML/jackson) - Jackson-core (com.fasterxml.jackson.core:jackson-core:2.11.0 - https://github.com/FasterXML/jackson-core) - jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.11.0 - http://github.com/FasterXML/jackson) + - jffi (com.github.jnr:jffi:1.2.23 - http://github.com/jnr/jffi) + - jnr-a64asm (com.github.jnr:jnr-a64asm:1.0.0 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-a64asm) + - jnr-constants (com.github.jnr:jnr-constants:0.9.15 - http://github.com/jnr/jnr-constants) + - jnr-ffi (com.github.jnr:jnr-ffi:2.1.12 - http://github.com/jnr/jnr-ffi) - Gson (com.google.code.gson:gson:2.8.6 - https://github.com/google/gson/gson) - Dagger (com.google.dagger:dagger:2.37 - https://github.com/google/dagger) - Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess) @@ -34,6 +38,12 @@ Cryptomator uses 31 third-party dependencies under the following licenses: - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.2 - https://eclipse.org/jetty/jetty-servlet) - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.2 - https://eclipse.org/jetty/jetty-util) - Jetty :: Servlet API and Schemas for JPMS and OSGi (org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 - https://eclipse.org/jetty/jetty-servlet-api) + BSD: + - asm (org.ow2.asm:asm:7.1 - http://asm.ow2.org/) + - asm-analysis (org.ow2.asm:asm-analysis:7.1 - http://asm.ow2.org/) + - asm-commons (org.ow2.asm:asm-commons:7.1 - http://asm.ow2.org/) + - asm-tree (org.ow2.asm:asm-tree:7.1 - http://asm.ow2.org/) + - asm-util (org.ow2.asm:asm-util:7.1 - http://asm.ow2.org/) Eclipse Public License - Version 1.0: - Jetty :: Servlet API and Schemas for JPMS and OSGi (org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 - https://eclipse.org/jetty/jetty-servlet-api) Eclipse Public License - Version 2.0: @@ -46,19 +56,26 @@ Cryptomator uses 31 third-party dependencies under the following licenses: Eclipse Public License - v 1.0: - Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic) - Logback Core Module (ch.qos.logback:logback-core:1.2.3 - http://logback.qos.ch/logback-core) + Eclipse Public License - v 2.0: + - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GNU Lesser General Public License: - Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic) - Logback Core Module (ch.qos.logback:logback-core:1.2.3 - http://logback.qos.ch/logback-core) + GPLv2: + - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GPLv2+CE: - javafx-base (org.openjfx:javafx-base:16 - https://openjdk.java.net/projects/openjfx/javafx-base/) - javafx-controls (org.openjfx:javafx-controls:16 - https://openjdk.java.net/projects/openjfx/javafx-controls/) - javafx-fxml (org.openjfx:javafx-fxml:16 - https://openjdk.java.net/projects/openjfx/javafx-fxml/) - javafx-graphics (org.openjfx:javafx-graphics:16 - https://openjdk.java.net/projects/openjfx/javafx-graphics/) LGPL 2.1: + - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) - Java Native Access (net.java.dev.jna:jna:5.7.0 - https://github.com/java-native-access/jna) - Java Native Access Platform (net.java.dev.jna:jna-platform:5.7.0 - https://github.com/java-native-access/jna) MIT License: - java jwt (com.auth0:java-jwt:3.15.0 - https://github.com/auth0/java-jwt) + - jnr-x86asm (com.github.jnr:jnr-x86asm:1.0.2 - http://github.com/jnr/jnr-x86asm) + - jnr-fuse (com.github.serceman:jnr-fuse:0.5.5 - https://github.com/SerCeMan/jnr-fuse) - zxcvbn4j (com.nulab-inc:zxcvbn:1.5.2 - https://github.com/nulab/zxcvbn4j) - SLF4J API Module (org.slf4j:slf4j-api:1.7.30 - http://www.slf4j.org) The BSD 2-Clause License: diff --git a/src/package/launcher-linux.sh b/src/package/launcher-linux.sh index 4ce8e6670..a14ed7e24 100644 --- a/src/package/launcher-linux.sh +++ b/src/package/launcher-linux.sh @@ -1,7 +1,8 @@ #!/bin/sh cd $(dirname $0) java \ - -p "libs" \ + -p "mods" \ + -cp "libs/*" \ -Dcryptomator.settingsPath="~/.config/Cryptomator/settings.json" \ -Dcryptomator.ipcPortPath="~/.config/Cryptomator/ipcPort.bin" \ -Dcryptomator.logDir="~/.local/share/Cryptomator/logs" \ diff --git a/src/package/launcher-mac.sh b/src/package/launcher-mac.sh index 100c975b5..54bae32d5 100644 --- a/src/package/launcher-mac.sh +++ b/src/package/launcher-mac.sh @@ -1,7 +1,8 @@ #!/bin/sh cd $(dirname $0) java \ - -p "libs" \ + -p "mods" \ + -cp "libs/*" \ -Dcryptomator.settingsPath="~/Library/Application Support/Cryptomator/settings.json" \ -Dcryptomator.ipcPortPath="~/Library/Application Support/Cryptomator/ipcPort.bin" \ -Dcryptomator.logDir="~/Library/Logs/Cryptomator" \ diff --git a/src/package/launcher-win.bat b/src/package/launcher-win.bat index b809b3b04..385e01555 100644 --- a/src/package/launcher-win.bat +++ b/src/package/launcher-win.bat @@ -1,6 +1,7 @@ @echo off java ^ - -p "libs" ^ + -p "mods" ^ + -cp "libs/*" ^ -Dcryptomator.settingsPath="~/AppData/Roaming/Cryptomator/settings.json" ^ -Dcryptomator.ipcPortPath="~/AppData/Roaming/Cryptomator/ipcPort.bin" ^ -Dcryptomator.logDir="~/AppData/Roaming/Cryptomator" ^ From 97222d3d67c77a95fb868a0d5555e27ae067c01a Mon Sep 17 00:00:00 2001 From: Zane Campbell Date: Tue, 6 Jul 2021 02:52:16 -0400 Subject: [PATCH 09/27] Updated README.md Co-authored-by: Zane Campbell --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bcff4c978..5e847208c 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Download native binaries of Cryptomator on [cryptomator.org](https://cryptomator - File names get encrypted - Folder structure gets obfuscated - Use as many vaults in your Dropbox as you want, each having individual passwords -- Two thousand commits for the security of your data!! :tada: +- Three thousand commits for the security of your data!! :tada: ### Privacy From 755eb70ae8ee6051044b1468bf68ad1862994ff1 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Tue, 13 Jul 2021 18:18:38 +0200 Subject: [PATCH 10/27] Use UNIX Sockets for IPC --- .idea/runConfigurations/Cryptomator_Linux.xml | 2 +- .../Cryptomator_Linux_Dev.xml | 2 +- .../runConfigurations/Cryptomator_Windows.xml | 2 +- .../Cryptomator_Windows_Dev.xml | 2 +- .idea/runConfigurations/Cryptomator_macOS.xml | 2 +- .../Cryptomator_macOS_Dev.xml | 2 +- .../org/cryptomator/common/Environment.java | 6 +- src/main/java/org/cryptomator/ipc/Client.java | 63 +++++ .../ipc/HandleLaunchArgsMessage.java | 30 ++ .../org/cryptomator/ipc/IpcCommunicator.java | 73 +++++ .../java/org/cryptomator/ipc/IpcMessage.java | 68 +++++ .../cryptomator/ipc/IpcMessageListener.java | 19 ++ .../cryptomator/ipc/LoopbackCommunicator.java | 50 ++++ .../ipc/RevealRunningAppMessage.java | 20 ++ src/main/java/org/cryptomator/ipc/Server.java | 81 ++++++ .../org/cryptomator/launcher/Cryptomator.java | 28 +- .../launcher/FileOpenRequestHandler.java | 7 +- .../org/cryptomator/launcher/IpcFactory.java | 258 ------------------ ...otocolImpl.java => IpcMessageHandler.java} | 13 +- .../org/cryptomator/launcher/IpcProtocol.java | 17 -- .../cryptomator/common/EnvironmentTest.java | 4 +- .../ipc/HandleLaunchArgsMessageTest.java | 46 ++++ .../cryptomator/ipc/IpcCommunicatorTest.java | 46 ++++ .../ipc/LoopbackCommunicatorTest.java | 37 +++ .../ipc/RevealRunningAppMessageTest.java | 30 ++ .../launcher/FileOpenRequestHandlerTest.java | 7 +- .../cryptomator/launcher/IpcFactoryTest.java | 71 ----- 27 files changed, 606 insertions(+), 380 deletions(-) create mode 100644 src/main/java/org/cryptomator/ipc/Client.java create mode 100644 src/main/java/org/cryptomator/ipc/HandleLaunchArgsMessage.java create mode 100644 src/main/java/org/cryptomator/ipc/IpcCommunicator.java create mode 100644 src/main/java/org/cryptomator/ipc/IpcMessage.java create mode 100644 src/main/java/org/cryptomator/ipc/IpcMessageListener.java create mode 100644 src/main/java/org/cryptomator/ipc/LoopbackCommunicator.java create mode 100644 src/main/java/org/cryptomator/ipc/RevealRunningAppMessage.java create mode 100644 src/main/java/org/cryptomator/ipc/Server.java delete mode 100644 src/main/java/org/cryptomator/launcher/IpcFactory.java rename src/main/java/org/cryptomator/launcher/{IpcProtocolImpl.java => IpcMessageHandler.java} (60%) delete mode 100644 src/main/java/org/cryptomator/launcher/IpcProtocol.java create mode 100644 src/test/java/org/cryptomator/ipc/HandleLaunchArgsMessageTest.java create mode 100644 src/test/java/org/cryptomator/ipc/IpcCommunicatorTest.java create mode 100644 src/test/java/org/cryptomator/ipc/LoopbackCommunicatorTest.java create mode 100644 src/test/java/org/cryptomator/ipc/RevealRunningAppMessageTest.java delete mode 100644 src/test/java/org/cryptomator/launcher/IpcFactoryTest.java diff --git a/.idea/runConfigurations/Cryptomator_Linux.xml b/.idea/runConfigurations/Cryptomator_Linux.xml index 242dc0c56..735f60069 100644 --- a/.idea/runConfigurations/Cryptomator_Linux.xml +++ b/.idea/runConfigurations/Cryptomator_Linux.xml @@ -2,7 +2,7 @@