Skip to content

Commit

Permalink
Merge branch 'release/1.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
overheadhunter committed Feb 11, 2019
2 parents b33cf5c + 9b2e687 commit 4488ff3
Show file tree
Hide file tree
Showing 23 changed files with 402 additions and 146 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jdk:
env:
global:
- secure: "SvqhJ7cFF4Uir0rvngiZAsxhgYAFCdw1bVHfKtA2MAV5taAuGsN0Uij+kLUP0oxHmrKwbSoOlHmTOG6m6GYOmX9ALAgfVRI41vnZxzhhR6zdHq4Kx84rhIxGHAXhxY8GPJiN+ClyeEr/qf6Jb60XyydU7w1wO8a1y+AYSW/CK0HZ4qORVgHOmfMmP7sCmgaPwCCcNoq/5mW873XHbJUbVh4d0wNn6Pej9oKRgsShWCqb/ihQ4IqNQjSQO+nF9FAuqMVzFJhnoNempuHG6R98QUlHXZ4IERlYfWfwjg6OtXk369QMAbQQ3k8bheozgM7R1mRq/cfIyIWzqY29UjqGVChy918QvXLDpLtVeU8ThF5cPgsle8K2NdaHZutfYXFo7qVosIAAMwkory5WN+RX7W2DqXAFwZjn5SfHvPMTz3tFgvAfVkV3qQg/bdOI6vA1cLghd/ZPRiCoJVJ/EdxwDor/FH5wRW2XFPIkqSWjlv4TnAd8YoAUZ44iO0DyUgyrB6oVdNYhW+0ei0M181rkSLdg5yfDykQF324lIwMwoalDMK4LcTxcgFVdyLSZr0xVtJr9vmr3w2xoJfB18hufHKkqMZQ+kDlhAmAjZApmrAIRR22gqhJJNctTEbX4O2s2BbD93TuKhBQMMDYzfoM8s62NCQ3qUbPtQUECW5HbF+k=" # CODACY_PROJECT_TOKEN
- secure: "Ut9OdUpvJv9VIGQ7XLEhnBF1mvAFyZS32ODm0BuNdFgIYloglwzmpKtFzBTXNI6LxTyIDn+7yO4a3RJUT3np2BUQ2oLK0v2onMXjVpefq8V+Xo1hqYS5v5noBZhECfXD2KSo6oezS2hmFUEswJgLPp0fAGCJcLWhphqbzfBwWb39RorZ7ZHyxIdcx1KoKTzX/YDCl5Uepa3X4dg2Ak66Arhgf1jww3b0wlEkZky3jpqnICeHZVBz5M23kR9C9tj/j6QLT/bOYyMmaQ7niaa1DSmaeUSOQStp7jPwVG3fZvP1lFTIG4AmOxowHuRF+TlHM2PAAuPZrBh6xlshhx/V+6J6MWEtvt2wno1+DHbcIKvwb44No/w4mLhM+mejllv5DcGnEWJCam6qYRbuzXgx8ZX8G5nFLib260/UPt7PHndDEri1WqSUM8NIU8EkxbO6oNznTZ3OxmFPbJmJYutSVQsKwkURPR7ZHIGFHiBaVgT1uQm7rdtgBN7gA+9BjiS7WWAMFwFoxycQgnLvgM0mfJgdAbNzBLshPbSRK5Ea/j6czxKXNfXzl8GYEZwxtXPTDI8pT8fQMlXGOOgB+1SrbYWvlxV7KmOlrz3de+ziDNVDvzigWcm1zTL9RLFDl6K3FP6uer/Xs1KBf6sIlXmMnQ6Pp9afOMAMMKb7vhm8Xn4=" # BINTRAY_API_KEY
- secure: "JrrO+ToZ5UPkT95mNnzX9XmunVO3zIc8s6c7MMDFpBciA/hyaYmK1R4vsyCudiZtuu7VvSmK31YRoxphwWfAD+eEsvjWMMgT0MDz3eOMkI+0/XrFf2Lh9cJ4Ow0OfHvu3w51FGAuf59ZCuA6KlYhJEThRXf8Sp31ecuZRu0CWHDRfXp5+tyARu7Ly0XScy/DNnjSbKOeKKZ28PH6/ZxIptWMk5GLQtnaUCesv4Z3Lg31WsPGkqlDPyXH4P4TF9ttOKpk6Nw4rTzgprOe30ULlT7AuQRQ1KFbHBJe8vKD0mCIPlfir0yr1fFjX8S+wwEDVuCnLRiNUH+HWLOkcUlAlE+Oif0a7bjHNcQH0Y26aLQoOMhzR8lAj0HTk0fIDXXA9JGVOdDetGxHkjxY87Op4gh54WO3HheNO4Tw7RoBGdKy1qSa9bafKr2aGeQrACCMKqZxj0ZepdmfPIuo1uiYPFec3/hXeMMx2a0Qaj5wRrtYvWgrp8UVgT2MJ1L16/dsc77xv815CSoco83Z4cEhILOTAXrQxCzc5B6h725NpfLkoBJSjjbW1JQplWohbYYUvQfwLRIuvlH5ickCpwWNofgXsZBOViXeea6zaJwhezgfUfOR3sXEblQS65gFIOOUcz+BOL2ZYpjmPZ3h7ZPOPM8nXVc1M/zlwCb2BIeD3L0=" # BINTRAY_API_KEY
install:
- curl -o $HOME/.m2/settings.xml https://gist.githubusercontent.com/cryptobot/cf5fbd909c4782aaeeeb7c7f4a1a43da/raw/082261a990b96dcb3e9a3ddb96fc4c2e493f62c0/settings.xml
- mvn dependency:go-offline -Pdependency-check,coverage,release
Expand All @@ -25,4 +25,4 @@ deploy:
repo: cryptomator/fuse-nio-adapter
tags: true
after_deploy:
- "echo '{\"close\": \"1\"}' | curl -v -X POST -u cryptobot:${BINTRAY_API_KEY} https://api.bintray.com/maven_central_sync/cryptomator/maven/fuse-nio-adapter/versions/${TRAVIS_TAG}"
- "echo '{\"close\": \"1\"}' | curl -X POST -u cryptobot:${BINTRAY_API_KEY} https://api.bintray.com/maven_central_sync/cryptomator/maven/fuse-nio-adapter/versions/${TRAVIS_TAG}"
39 changes: 26 additions & 13 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.cryptomator</groupId>
<artifactId>fuse-nio-adapter</artifactId>
<version>1.0.3</version>
<version>1.1.0</version>
<name>FUSE-NIO-Adapter</name>
<description>Access resources at a given NIO path via FUSE.</description>
<url>https://github.com/cryptomator/fuse-nio-adapter</url>
Expand All @@ -16,11 +16,11 @@

<properties>
<jnrfuse.version>0.5.2.1</jnrfuse.version>
<dagger.version>2.19</dagger.version>
<dagger.version>2.20</dagger.version>
<guava.version>27.0-jre</guava.version>
<slf4j.version>1.7.25</slf4j.version>
<junit.jupiter.version>5.3.1</junit.jupiter.version>
<mockito.version>2.23.0</mockito.version>
<junit.jupiter.version>5.4.0</junit.jupiter.version>
<mockito.version>2.24.0</mockito.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Expand Down Expand Up @@ -64,12 +64,6 @@
<artifactId>dagger</artifactId>
<version>${dagger.version}</version>
</dependency>
<dependency>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>${dagger.version}</version>
<scope>provided</scope>
</dependency>

<!-- Guava -->
<dependency>
Expand All @@ -92,6 +86,12 @@
</dependency>

<!-- Testing -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
Expand Down Expand Up @@ -120,11 +120,18 @@
<configuration>
<release>9</release>
<showWarnings>true</showWarnings>
<annotationProcessorPaths>
<path>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>${dagger.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<version>2.22.1</version>
</plugin>
</plugins>
</build>
Expand All @@ -137,7 +144,7 @@
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>3.3.4</version>
<version>4.0.2</version>
<configuration>
<cveValidForHours>24</cveValidForHours>
<failBuildOnCVSS>0</failBuildOnCVSS>
Expand Down Expand Up @@ -166,14 +173,20 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<version>0.8.3</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@ private AdapterFactory() {
}

public static FuseNioAdapter createReadOnlyAdapter(Path root) {
FuseNioAdapterModule module = new FuseNioAdapterModule(root);
FuseNioAdapterComponent comp = DaggerFuseNioAdapterComponent.builder().fuseNioAdapterModule(module).build();
FuseNioAdapterComponent comp = DaggerFuseNioAdapterComponent.builder().root(root).build();
return comp.readOnlyAdapter();
}

public static FuseNioAdapter createReadWriteAdapter(Path root) {
FuseNioAdapterModule module = new FuseNioAdapterModule(root);
FuseNioAdapterComponent comp = DaggerFuseNioAdapterComponent.builder().fuseNioAdapterModule(module).build();
FuseNioAdapterComponent comp = DaggerFuseNioAdapterComponent.builder().root(root).build();
return comp.readWriteAdapter();
}
}
37 changes: 24 additions & 13 deletions src/main/java/org/cryptomator/frontend/fuse/FileAttributesUtil.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package org.cryptomator.frontend.fuse;

import jnr.posix.util.Platform;
import ru.serce.jnrfuse.flags.AccessConstants;
import ru.serce.jnrfuse.struct.FileStat;

import javax.inject.Inject;
import java.nio.file.AccessMode;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.PosixFilePermission;
import java.util.EnumSet;
import java.util.Set;

import javax.inject.Inject;

import jnr.posix.util.Platform;
import ru.serce.jnrfuse.flags.AccessConstants;
import ru.serce.jnrfuse.struct.FileStat;

@PerAdapter
public class FileAttributesUtil {

Expand Down Expand Up @@ -49,17 +48,13 @@ public Set<PosixFilePermission> octalModeToPosixPermissions(long mode) {
return result;
}

public FileStat basicFileAttributesToFileStat(BasicFileAttributes attrs) {
FileStat stat = new FileStat(jnr.ffi.Runtime.getSystemRuntime());
copyBasicFileAttributesFromNioToFuse(attrs, stat);
return stat;
}

public void copyBasicFileAttributesFromNioToFuse(BasicFileAttributes attrs, FileStat stat) {
if (attrs.isDirectory()) {
stat.st_mode.set(stat.st_mode.longValue() | FileStat.S_IFDIR);
} else {
} else if (attrs.isRegularFile()) {
stat.st_mode.set(stat.st_mode.longValue() | FileStat.S_IFREG);
} else if (attrs.isSymbolicLink()) {
stat.st_mode.set(stat.st_mode.longValue() | FileStat.S_IFLNK);
}
stat.st_uid.set(DUMMY_UID);
stat.st_gid.set(DUMMY_GID);
Expand All @@ -83,4 +78,20 @@ public void copyBasicFileAttributesFromNioToFuse(BasicFileAttributes attrs, File
}
}

public long posixPermissionsToOctalMode(Set<PosixFilePermission> permissions) {
long mode = 0;
// @formatter:off
if (permissions.contains(PosixFilePermission.OWNER_READ)) mode = mode | FileStat.S_IRUSR;
if (permissions.contains(PosixFilePermission.GROUP_READ)) mode = mode | FileStat.S_IRGRP;
if (permissions.contains(PosixFilePermission.OTHERS_READ)) mode = mode | FileStat.S_IROTH;
if (permissions.contains(PosixFilePermission.OWNER_WRITE)) mode = mode | FileStat.S_IWUSR;
if (permissions.contains(PosixFilePermission.GROUP_WRITE)) mode = mode | FileStat.S_IWGRP;
if (permissions.contains(PosixFilePermission.OTHERS_WRITE)) mode = mode | FileStat.S_IWOTH;
if (permissions.contains(PosixFilePermission.OWNER_EXECUTE)) mode = mode | FileStat.S_IXUSR;
if (permissions.contains(PosixFilePermission.GROUP_EXECUTE)) mode = mode | FileStat.S_IXGRP;
if (permissions.contains(PosixFilePermission.OTHERS_EXECUTE)) mode = mode | FileStat.S_IXOTH;
// @formatter:on
return mode;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,11 @@

public interface FuseNioAdapter extends FuseFS, AutoCloseable {

boolean isMounted();

/**
* Sets mounted to false. Other than in {@link FuseFS#umount()} this will not actually attempt to unmount the device.
*/
@Override
void umount();
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package org.cryptomator.frontend.fuse;

import dagger.BindsInstance;
import dagger.Component;

import javax.inject.Named;
import java.nio.file.Path;

@PerAdapter
@Component(modules = {FuseNioAdapterModule.class})
public interface FuseNioAdapterComponent {
Expand All @@ -10,4 +14,14 @@ public interface FuseNioAdapterComponent {

ReadWriteAdapter readWriteAdapter();

@Component.Builder
interface Builder {

@BindsInstance
Builder root(@Named("root") Path root);

FuseNioAdapterComponent build();
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,9 @@
@Module
class FuseNioAdapterModule {

private final Path root;

FuseNioAdapterModule(Path root) {
this.root = root;
}

@Provides
@PerAdapter
@Named("root")
public Path provideRootPath() {
return root;
}

@Provides
@PerAdapter
protected FileStore provideRootFileStore() {
protected FileStore provideRootFileStore(@Named("root") Path root) {
try {
return Files.getFileStore(root);
} catch (IOException e) {
Expand Down
Loading

0 comments on commit 4488ff3

Please sign in to comment.