Skip to content

Commit a6b6e19

Browse files
Merge branch 'release/0.3.3'
2 parents 16c7b9b + bd9e361 commit a6b6e19

File tree

20 files changed

+38
-27
lines changed

20 files changed

+38
-27
lines changed

jfuse-api/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse-api</artifactId>

jfuse-api/src/main/java/module-info.java

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
requires static org.jetbrains.annotations;
1010

1111
exports org.cryptomator.jfuse.api;
12+
exports org.cryptomator.jfuse.api.platforms to org.cryptomator.jfuse.linux.aarch64, org.cryptomator.jfuse.linux.amd64, org.cryptomator.jfuse.mac, org.cryptomator.jfuse.win;
1213

1314
uses FuseBuilder;
1415
}

jfuse-api/src/main/java/org/cryptomator/jfuse/api/Fuse.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -165,19 +165,24 @@ private int fuseLoop(FuseMount mount) {
165165
/**
166166
* Unmounts (if needed) this fuse file system and frees up system resources.
167167
* <p>
168+
* This method is idempotent and closing multiple times will be no-op.
169+
* <p>
168170
* <strong>Important:</strong> Before closing, a graceful unmount via system tools (e.g. {@code fusermount -u}) should be attempted.
169171
*/
170172
@Override
171173
@Blocking
172174
@MustBeInvokedByOverriders
173-
public void close() throws TimeoutException {
175+
public synchronized void close() throws TimeoutException {
176+
if (!fuseScope.isAlive()) {
177+
return; // already closed
178+
}
174179
try {
175180
var fuseMount = this.mount.getAndSet(UNMOUNTED);
176181
fuseMount.unmount();
177182
executor.shutdown();
178183
boolean exited = executor.awaitTermination(10, TimeUnit.SECONDS);
179184
if (!exited) {
180-
throw new TimeoutException("fuse main loop continued runn");
185+
throw new TimeoutException("fuse main loop continued run");
181186
}
182187
fuseMount.destroy();
183188
} catch (InterruptedException e) {

jfuse-api/src/main/java/org/cryptomator/jfuse/api/FuseBuilder.java

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.cryptomator.jfuse.api;
22

3+
import org.cryptomator.jfuse.api.platforms.Architecture;
4+
import org.cryptomator.jfuse.api.platforms.OperatingSystem;
5+
import org.cryptomator.jfuse.api.platforms.SupportedPlatform;
36
import org.jetbrains.annotations.Nullable;
47

58
import java.util.Arrays;

jfuse-api/src/main/java/org/cryptomator/jfuse/api/Architecture.java jfuse-api/src/main/java/org/cryptomator/jfuse/api/platforms/Architecture.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cryptomator.jfuse.api;
1+
package org.cryptomator.jfuse.api.platforms;
22

33
/**
44
* CPU architecture

jfuse-api/src/main/java/org/cryptomator/jfuse/api/OperatingSystem.java jfuse-api/src/main/java/org/cryptomator/jfuse/api/platforms/OperatingSystem.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cryptomator.jfuse.api;
1+
package org.cryptomator.jfuse.api.platforms;
22

33
/**
44
* Operating System

jfuse-api/src/main/java/org/cryptomator/jfuse/api/SupportedPlatform.java jfuse-api/src/main/java/org/cryptomator/jfuse/api/platforms/SupportedPlatform.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
package org.cryptomator.jfuse.api;
1+
package org.cryptomator.jfuse.api.platforms;
2+
3+
import org.cryptomator.jfuse.api.FuseBuilder;
24

35
import java.lang.annotation.Documented;
46
import java.lang.annotation.ElementType;

jfuse-api/src/main/java/org/cryptomator/jfuse/api/SupportedPlatforms.java jfuse-api/src/main/java/org/cryptomator/jfuse/api/platforms/SupportedPlatforms.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cryptomator.jfuse.api;
1+
package org.cryptomator.jfuse.api.platforms;
22

33
import java.lang.annotation.Documented;
44
import java.lang.annotation.ElementType;

jfuse-examples/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse-examples</artifactId>

jfuse-linux-aarch64/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>jfuse-parent</artifactId>
77
<groupId>org.cryptomator</groupId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse-linux-aarch64</artifactId>

jfuse-linux-aarch64/src/main/java/org/cryptomator/jfuse/linux/aarch64/LinuxFuseBuilder.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package org.cryptomator.jfuse.linux.aarch64;
22

3-
import org.cryptomator.jfuse.api.Architecture;
43
import org.cryptomator.jfuse.api.Errno;
54
import org.cryptomator.jfuse.api.Fuse;
65
import org.cryptomator.jfuse.api.FuseBuilder;
76
import org.cryptomator.jfuse.api.FuseOperations;
8-
import org.cryptomator.jfuse.api.OperatingSystem;
9-
import org.cryptomator.jfuse.api.SupportedPlatform;
7+
import org.cryptomator.jfuse.api.platforms.Architecture;
8+
import org.cryptomator.jfuse.api.platforms.OperatingSystem;
9+
import org.cryptomator.jfuse.api.platforms.SupportedPlatform;
1010

1111
/**
1212
* Builds FUSE file system instances on Linux (aarch64).

jfuse-linux-amd64/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse-linux-amd64</artifactId>

jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/LinuxFuseBuilder.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package org.cryptomator.jfuse.linux.amd64;
22

3-
import org.cryptomator.jfuse.api.Architecture;
43
import org.cryptomator.jfuse.api.Errno;
54
import org.cryptomator.jfuse.api.Fuse;
65
import org.cryptomator.jfuse.api.FuseBuilder;
76
import org.cryptomator.jfuse.api.FuseOperations;
8-
import org.cryptomator.jfuse.api.OperatingSystem;
9-
import org.cryptomator.jfuse.api.SupportedPlatform;
7+
import org.cryptomator.jfuse.api.platforms.Architecture;
8+
import org.cryptomator.jfuse.api.platforms.OperatingSystem;
9+
import org.cryptomator.jfuse.api.platforms.SupportedPlatform;
1010

1111
/**
1212
* Builds FUSE file system instances on Linux (x86_64).

jfuse-mac/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse-mac</artifactId>

jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/MacFuseBuilder.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package org.cryptomator.jfuse.mac;
22

3-
import org.cryptomator.jfuse.api.Architecture;
43
import org.cryptomator.jfuse.api.Errno;
54
import org.cryptomator.jfuse.api.Fuse;
65
import org.cryptomator.jfuse.api.FuseBuilder;
76
import org.cryptomator.jfuse.api.FuseOperations;
8-
import org.cryptomator.jfuse.api.OperatingSystem;
9-
import org.cryptomator.jfuse.api.SupportedPlatform;
7+
import org.cryptomator.jfuse.api.platforms.Architecture;
8+
import org.cryptomator.jfuse.api.platforms.OperatingSystem;
9+
import org.cryptomator.jfuse.api.platforms.SupportedPlatform;
1010

1111
import java.nio.file.Files;
1212
import java.nio.file.Path;

jfuse-tests/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse-tests</artifactId>

jfuse-win/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse-win</artifactId>

jfuse-win/src/main/java/org/cryptomator/jfuse/win/WinFuseBuilder.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package org.cryptomator.jfuse.win;
22

3-
import org.cryptomator.jfuse.api.Architecture;
43
import org.cryptomator.jfuse.api.Errno;
54
import org.cryptomator.jfuse.api.Fuse;
65
import org.cryptomator.jfuse.api.FuseBuilder;
76
import org.cryptomator.jfuse.api.FuseOperations;
8-
import org.cryptomator.jfuse.api.OperatingSystem;
9-
import org.cryptomator.jfuse.api.SupportedPlatform;
7+
import org.cryptomator.jfuse.api.platforms.Architecture;
8+
import org.cryptomator.jfuse.api.platforms.OperatingSystem;
9+
import org.cryptomator.jfuse.api.platforms.SupportedPlatform;
1010

1111
/**
1212
* Builds FUSE file system instances on Windows.

jfuse/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
8-
<version>0.3.2</version>
8+
<version>0.3.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>jfuse</artifactId>

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>org.cryptomator</groupId>
77
<artifactId>jfuse-parent</artifactId>
88
<packaging>pom</packaging>
9-
<version>0.3.2</version>
9+
<version>0.3.3</version>
1010
<name>jFUSE</name>
1111
<description>Java bindings for FUSE using foreign functions &amp; memory API</description>
1212
<url>https://github.com/cryptomator/jfuse</url>

0 commit comments

Comments
 (0)