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" ^