diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 555d6b7..ed68fbf 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,27 +10,21 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
- java-version: 21
+ java-version: 22
distribution: 'zulu'
cache: 'maven'
- name: Ensure to use tagged version
if: startsWith(github.ref, 'refs/tags/')
- run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
+ run: mvn -B versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
- name: Build and Test
id: buildAndTest
- run: mvn -B clean install jacoco:report -Pcoverage,dependency-check
- - name: Upload code coverage report
- id: codacyCoverageReporter
- run: bash <(curl -Ls https://coverage.codacy.com/get.sh)
- env:
- CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
- continue-on-error: true
- - uses: actions/upload-artifact@v3
+ run: mvn -B clean install jacoco:report -Pcoverage
+ - uses: actions/upload-artifact@v4
with:
name: artifacts
path: target/*.jar
- name: Create Release
- uses: softprops/action-gh-release@v1
+ uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
prerelease: true
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 3d22e02..4a72a3c 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -20,14 +20,14 @@ jobs:
fetch-depth: 2
- uses: actions/setup-java@v4
with:
- java-version: 21
+ java-version: 22
distribution: 'zulu'
cache: 'maven'
- name: Initialize CodeQL
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v3
with:
languages: java
- name: Build
run: mvn -B compile
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
\ No newline at end of file
+ uses: github/codeql-action/analyze@v3
\ No newline at end of file
diff --git a/.github/workflows/dependency-check.yml b/.github/workflows/dependency-check.yml
new file mode 100644
index 0000000..85c0490
--- /dev/null
+++ b/.github/workflows/dependency-check.yml
@@ -0,0 +1,20 @@
+name: OWASP Maven Dependency Check
+on:
+ schedule:
+ - cron: '0 9 * * 0'
+ push:
+ branches:
+ - 'release/**'
+ workflow_dispatch:
+
+
+jobs:
+ check-dependencies:
+ uses: skymatic/workflows/.github/workflows/run-dependency-check.yml@v1
+ with:
+ runner-os: 'ubuntu-latest'
+ java-distribution: 'zulu'
+ java-version: 22
+ secrets:
+ nvd-api-key: ${{ secrets.NVD_API_KEY }}
+ slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
diff --git a/.github/workflows/publish-central.yml b/.github/workflows/publish-central.yml
index d4c8e14..68de332 100644
--- a/.github/workflows/publish-central.yml
+++ b/.github/workflows/publish-central.yml
@@ -15,7 +15,7 @@ jobs:
ref: "refs/tags/${{ github.event.inputs.tag }}"
- uses: actions/setup-java@v4
with:
- java-version: 21
+ java-version: 22
distribution: 'zulu'
cache: 'maven'
server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml
diff --git a/.github/workflows/publish-github.yml b/.github/workflows/publish-github.yml
index 5b9df1c..0ab2eec 100644
--- a/.github/workflows/publish-github.yml
+++ b/.github/workflows/publish-github.yml
@@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
- java-version: 21
+ java-version: 22
distribution: 'zulu'
cache: 'maven'
gpg-private-key: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 7fb4876..ea62868 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -8,5 +8,5 @@
-
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/Mirror.xml b/.idea/runConfigurations/Mirror.xml
index f705a84..e07961a 100644
--- a/.idea/runConfigurations/Mirror.xml
+++ b/.idea/runConfigurations/Mirror.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/pom.xml b/pom.xml
index 91f291a..b874136 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
org.cryptomator
fuse-nio-adapter
- 4.0.0
+ 5.0.0
FUSE-NIO-Adapter
Access resources at a given NIO path via FUSE.
https://github.com/cryptomator/fuse-nio-adapter
@@ -17,23 +17,23 @@
UTF-8
- 21
+ 22
- 1.3.0
- 0.6.3
- 2.0.9
+ 1.3.1
+ 0.7.0
+ 2.0.13
3.1.8
- 5.10.0
- 5.6.0
- 2.6.7
+ 5.10.2
+ 5.11.0
+ 2.6.9
- 8.4.2
+ 9.1.0
3.1.1
- 0.8.11
+ 0.8.12
@@ -152,15 +152,25 @@
maven-compiler-plugin
- 3.11.0
+ 3.13.0
true
${project.build.jdk}
-
- --enable-preview
-
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.6.1
+
+
+ jar-paths-to-properties
+
+ properties
+
+
+
+
org.jacoco
jacoco-maven-plugin
@@ -179,19 +189,19 @@
maven-surefire-plugin
- 3.2.1
+ 3.2.5
- @{surefire.jacoco.args} --enable-preview --enable-native-access=ALL-UNNAMED
+ @{surefire.jacoco.args} -javaagent:${net.bytebuddy:byte-buddy-agent:jar}
org.apache.maven.plugins
maven-jar-plugin
- 3.3.0
+ 3.4.1
maven-source-plugin
- 3.3.0
+ 3.3.1
attach-sources
@@ -203,7 +213,7 @@
maven-javadoc-plugin
- 3.6.0
+ 3.6.3
attach-javadocs
@@ -236,19 +246,19 @@
dependency-check-maven
${dependency-check.version}
- 24
+ 24
0
true
true
-
- suppression.xml
-
+ suppression.xml
+ NVD_API_KEY
check
+ validate
@@ -282,7 +292,7 @@
maven-gpg-plugin
- 3.1.0
+ 3.2.4
sign-artifacts
diff --git a/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java b/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java
index 49c3248..ddeb7d4 100644
--- a/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java
+++ b/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java
@@ -182,7 +182,7 @@ protected int checkAccess(Path path, Set requiredAccessModes, Set requiredAccessModes) {
@Override
public int mkdir(String path, int mode) {
try (PathLock pathLock = lockManager.lockForWriting(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(fileNameTranscoder.fuseToNio(path));
LOG.trace("mkdir {} ({})", path, mode);
Files.createDirectory(node);
@@ -105,7 +105,7 @@ public int mkdir(String path, int mode) {
@Override
public int removexattr(String path, String name) {
try (PathLock pathLock = lockManager.lockForReading(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(path);
LOG.trace("removexattr {} {}", path, name);
var xattr = Files.getFileAttributeView(node, UserDefinedFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
@@ -124,7 +124,7 @@ public int removexattr(String path, String name) {
@Override
public int setxattr(String path, String name, ByteBuffer value, int flags) {
try (PathLock pathLock = lockManager.lockForReading(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(path);
LOG.trace("setxattr {} {}", path, name);
var xattr = Files.getFileAttributeView(node, UserDefinedFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
@@ -143,7 +143,7 @@ public int setxattr(String path, String name, ByteBuffer value, int flags) {
@Override
public int symlink(String targetPath, String linkPath) {
try (PathLock pathLock = lockManager.lockForWriting(linkPath);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path link = resolvePath(fileNameTranscoder.fuseToNio(linkPath));
Path target = link.getFileSystem().getPath(fileNameTranscoder.fuseToNio(targetPath));
LOG.trace("symlink {} -> {}", linkPath, targetPath);
@@ -163,7 +163,7 @@ public int symlink(String targetPath, String linkPath) {
@Override
public int create(String path, int mode, FileInfo fi) {
try (PathLock pathLock = lockManager.lockForWriting(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(fileNameTranscoder.fuseToNio(path));
var flags = fi.getOpenFlags();
LOG.trace("create {} with flags {}", path, flags);
@@ -194,7 +194,7 @@ public int chown(String path, int uid, int gid, FileInfo fi) {
@Override
public int chmod(String path, int mode, FileInfo fi) {
try (PathLock pathLock = lockManager.lockForReading(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(fileNameTranscoder.fuseToNio(path));
LOG.trace("chmod {} ({})", path, mode);
Files.setPosixFilePermissions(node, FileAttributesUtil.octalModeToPosixPermissions(mode));
@@ -216,7 +216,7 @@ public int chmod(String path, int mode, FileInfo fi) {
@Override
public int unlink(String path) {
try (PathLock pathLock = lockManager.lockForWriting(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(fileNameTranscoder.fuseToNio(path));
if (Files.isDirectory(node, LinkOption.NOFOLLOW_LINKS)) {
LOG.warn("unlink {} failed, node is a directory.", path);
@@ -237,7 +237,7 @@ public int unlink(String path) {
@Override
public int rmdir(String path) {
try (PathLock pathLock = lockManager.lockForWriting(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(fileNameTranscoder.fuseToNio(path));
if (!Files.isDirectory(node, LinkOption.NOFOLLOW_LINKS)) {
throw new NotDirectoryException(path);
@@ -306,7 +306,7 @@ public int rename(String oldPath, String newPath, int flags) {
@Override
public int utimens(String path, TimeSpec atime, TimeSpec mtime, FileInfo fi) {
try (PathLock pathLock = lockManager.lockForReading(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(fileNameTranscoder.fuseToNio(path));
LOG.trace("utimens {} (last modification {}, last access {})", path, mtime, atime);
fileHandler.utimens(node, mtime, atime);
@@ -323,7 +323,7 @@ public int utimens(String path, TimeSpec atime, TimeSpec mtime, FileInfo fi) {
@Override
public int write(String path, ByteBuffer buf, long size, long offset, FileInfo fi) {
try (PathLock pathLock = lockManager.lockForReading(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
LOG.trace("write {} bytes to file {} starting at {}...", size, path, offset);
int written = fileHandler.write(buf, size, offset, fi);
LOG.trace("wrote {} bytes to file {}.", written, path);
@@ -340,7 +340,7 @@ public int write(String path, ByteBuffer buf, long size, long offset, FileInfo f
@Override
public int truncate(String path, long size, FileInfo fi) {
try (PathLock pathLock = lockManager.lockForReading(path);
- DataLock dataLock = pathLock.lockDataForWriting()) {
+ DataLock _ = pathLock.lockDataForWriting()) {
Path node = resolvePath(fileNameTranscoder.fuseToNio(path));
LOG.trace("truncate {} {}", path, size);
if (fi != null) {