소스 검색

Merge branch 'openjdk11' into develop

Sebastian Stenzel 6 년 전
부모
커밋
0257802bb0

+ 2 - 1
.idea/encodings.xml

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="Encoding">
+  <component name="Encoding" addBOMForNewFiles="with NO BOM">
     <file url="file://$PROJECT_DIR$/main" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/main/buildkit" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/main/commons" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/main/keychain" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/main/launcher" charset="UTF-8" />

+ 1 - 1
.idea/misc.xml

@@ -8,7 +8,7 @@
       </list>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_10" project-jdk-name="10" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="11" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>

+ 19 - 0
.travis-deploy-release.tmpl.json

@@ -0,0 +1,19 @@
+{
+  "package": {
+	"name": "buildkit",
+	"repo": "cryptomator",
+	"subject": "cryptomator"
+  },
+  "version": {
+	"name": "$TRAVIS_TAG",
+	"desc": "Cryptomator version $TRAVIS_TAG",
+	"released": "$TODAY",
+	"vcs_tag": "$TRAVIS_TAG",
+	"gpgSign": true
+  },
+  "files":
+  [
+	{"includePattern": "main/buildkit/target/(buildkit-[a-z]+\\.deb)", "uploadPattern": "/$1"}
+  ],
+  "publish": true
+}

+ 15 - 0
.travis-deploy-snapshot.json

@@ -0,0 +1,15 @@
+{
+  "package": {
+	"name": "buildkit",
+	"repo": "cryptomator",
+	"subject": "cryptomator"
+  },
+  "version": {
+	"name": "snapshot"
+  },
+  "files":
+  [
+	{"includePattern": "main/buildkit/target/(buildkit-[a-z]+\\.deb)", "uploadPattern": "/$1"}
+  ],
+  "publish": true
+}

+ 12 - 30
.travis.yml

@@ -1,7 +1,7 @@
 language: java
 sudo: false
 jdk:
-- oraclejdk9
+- openjdk11
 cache:
   directories:
   - $HOME/.m2
@@ -34,40 +34,22 @@ before_deploy:
     mvn -fmain/pom.xml org.codehaus.mojo:versions-maven-plugin:set -DnewVersion=SNAPSHOT-$(echo $TRAVIS_COMMIT | head -c7)
   fi
 - mvn -fmain/pom.xml clean package -Prelease -DskipTests
+- TODAY=`date +'%Y-%m-%d` envsubst '$TRAVIS_TAG $TODAY' < .travis-deploy-release.tmpl.json > .travis-deploy-release.json
+- cat .travis-deploy-release.json
 deploy:
-- provider: script # SNAPSHOTS
+- provider: bintray # SNAPSHOTS
+  file: .travis-deploy-snapshot.json
+  user: cryptobot
+  key: $BINTRAY_API_KEY
   skip_cleanup: true
-  script: >-
-    curl -T main/ant-kit/target/antkit.zip
-    -u cryptobot:${BINTRAY_API_KEY}
-    -H "X-Bintray-Package:ant-kit"
-    -H "X-Bintray-Version:continuous"
-    -H "X-Bintray-Override:1"
-    -H "X-Bintray-Publish:1"
-    https://api.bintray.com/content/cryptomator/cryptomator/antkit-continuous.zip
   on:
     repo: cryptomator/cryptomator
     branch: develop
-    condition: $TRAVIS_TAG = ''
-- provider: releases # RELEASE
-  prerelease: false
-  api_key: $GITHUB_API_KEY
-  file:
-  - "main/uber-jar/target/Cryptomator-$TRAVIS_TAG.jar"
+- provider: bintray # RELEASES
+  file: .travis-deploy-release.json
+  user: cryptobot
+  key: $BINTRAY_API_KEY
   skip_cleanup: true
   on:
     repo: cryptomator/cryptomator
-    tags: true
-- provider: script
-  skip_cleanup: true
-  script: >-
-    curl -T main/ant-kit/target/antkit.zip
-    -u cryptobot:${BINTRAY_API_KEY}
-    -H "X-Bintray-Package:ant-kit"
-    -H "X-Bintray-Version:${TRAVIS_TAG}"
-    -H "X-Bintray-Override:1"
-    -H "X-Bintray-Publish:1"
-    https://api.bintray.com/content/cryptomator/cryptomator/antkit-${TRAVIS_TAG}.zip
-  on:
-    repo: cryptomator/cryptomator
-    tags: true
+    tags: true

+ 0 - 99
main/ant-kit/pom.xml

@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.cryptomator</groupId>
-		<artifactId>main</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<artifactId>ant-kit</artifactId>
-	<packaging>pom</packaging>
-	<name>Cryptomator Ant Build Kit</name>
-	<description>Builds a package that can be built with Ant locally</description>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.cryptomator</groupId>
-			<artifactId>launcher</artifactId>
-		</dependency>
-	</dependencies>
-
-	<build>	
-		<plugins>
-			<!-- copy libraries to target/libs/: -->
-			<plugin>
-				<artifactId>maven-dependency-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>copy-libs</id>
-						<phase>prepare-package</phase>
-						<goals>
-							<goal>copy-dependencies</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${project.build.directory}/libs</outputDirectory>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-			<!-- copy resources to target/: -->
-			<plugin>
-				<artifactId>maven-resources-plugin</artifactId>
-				<version>3.0.2</version>
-				<executions>
-					<execution>
-						<id>copy-resources</id>
-						<phase>prepare-package</phase>
-						<goals>
-							<goal>copy-resources</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${project.build.directory}</outputDirectory>
-							<escapeString>\</escapeString>
-							<encoding>UTF-8</encoding>
-							<resources>
-								<resource>
-									<directory>src/main/resources</directory>
-									<filtering>true</filtering>
-									<includes>
-										<include>build.xml</include>
-									</includes>
-								</resource>
-								<resource>
-									<directory>src/main/resources</directory>
-									<filtering>false</filtering>
-									<includes>
-										<include>logback.xml</include>
-									</includes>
-								</resource>
-							</resources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-			<!-- create antkit.zip: -->
-			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<version>3.1.0</version>
-				<executions>
-					<execution>
-						<id>make-assembly</id>
-						<phase>package</phase>
-						<goals>
-							<goal>single</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<descriptors>
-						<descriptor>assembly.xml</descriptor>
-					</descriptors>
-					<appendAssemblyId>false</appendAssemblyId>
-					<finalName>antkit</finalName>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>

+ 0 - 52
main/ant-kit/src/main/resources/build.xml

@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="Cryptomator" default="create-jar" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
-	<taskdef uri="javafx:com.sun.javafx.tools.ant" resource="com/sun/javafx/tools/ant/antlib.xml" classpath="\${java.class.path}:\${java.home}/lib/ant-javafx.jar:." />
-	
-	<!-- Define application to build -->
-	<fx:application id="Cryptomator" name="Cryptomator" version="${project.version}" mainClass="org.cryptomator.launcher.Cryptomator" />
-
-	<!-- Print build environment properties -->
-	<target name="check-env">
-		<echoproperties/>
-	</target>
-	
-	<!-- Create main application jar -->
-	<target name="create-jar" depends="check-env">
-		<fx:jar destfile="antbuild/Cryptomator-${project.version}.jar">
-			<fx:application refid="Cryptomator" />
-			<fx:fileset dir="libs" includes="launcher-${project.version}.jar" />
-			<fx:resources>
-				<fx:fileset dir="libs" type="jar" includes="*.jar" excludes="launcher-${project.version}.jar" />
-			</fx:resources>
-			<fx:manifest>
-				<fx:attribute name="Implementation-Vendor" value="cryptomator.org" />
-				<fx:attribute name="Implementation-Title" value="Cryptomator"/>
-				<fx:attribute name="Implementation-Version" value="${project.version}" />
-			</fx:manifest>
-		</fx:jar>
-	</target>
-
-	<!-- Create Image -->
-	<target name="image" depends="create-jar">
-		<fx:deploy nativeBundles="image" outdir="antbuild" verbose="true">
-			<fx:application refid="Cryptomator" />
-			<fx:info title="Cryptomator" vendor="cryptomator.org" copyright="cryptomator.org" license="GPL" category="Utility"/>
-			<fx:platform j2se="10">
-				<fx:property name="logback.configurationFile" value="\${antbuild.logback.configurationFile}" />
-				<fx:property name="cryptomator.settingsPath" value="\${antbuild.cryptomator.settingsPath}" />
-				<fx:property name="cryptomator.ipcPortPath" value="\${antbuild.cryptomator.ipcPortPath}" />
-				<fx:property name="cryptomator.keychainPath" value="\${antbuild.cryptomator.keychainPath}"/>
-				<fx:jvmarg value="-Xss2m"/>
-				<fx:jvmarg value="-Xmx512m"/>
-			</fx:platform>
-			<fx:resources>
-				<fx:fileset dir="antbuild" type="jar" includes="Cryptomator-${project.version}.jar" />
-				<fx:fileset dir="libs" type="jar" includes="*.jar" excludes="launcher-${project.version}.jar"/>
-			</fx:resources>
-			<fx:permissions elevated="false" />
-			<fx:preferences install="true" />
-			<fx:bundleArgument arg="dropinResourcesRoot" value="\${antbuild.dropinResourcesRoot}"/>
-		</fx:deploy>
-	</target>
-	
-</project>

+ 3 - 16
main/ant-kit/assembly.xml

@@ -15,24 +15,11 @@
 			<outputDirectory>libs</outputDirectory>
 		</fileSet>
 		<fileSet>
-			<directory>target/fixed-binaries</directory>
-			<filtered>false</filtered>
-			<outputDirectory>fixed-binaries</outputDirectory>
-			<fileMode>755</fileMode>
-		</fileSet>
-		<fileSet>
-			<directory>target/package</directory>
-			<filtered>false</filtered>
-			<outputDirectory>package</outputDirectory>
-		</fileSet>
-		<fileSet>
-			<directory>target</directory>
+			<directory>target/linux-libs</directory>
 			<includes>
-				<include>build.xml</include>
-				<include>logback.xml</include>
+				<include>*.jar</include>
 			</includes>
-			<filtered>false</filtered>
-			<outputDirectory>.</outputDirectory>
+			<outputDirectory>libs</outputDirectory>
 		</fileSet>
 	</fileSets>
 </assembly>

+ 25 - 0
main/buildkit/assembly-mac.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
+	<id>tarball</id>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<fileSets>
+		<fileSet>
+			<directory>target/libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<directory>target/mac-libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 25 - 0
main/buildkit/assembly-win.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
+	<id>tarball</id>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<fileSets>
+		<fileSet>
+			<directory>target/libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<directory>target/win-libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 129 - 0
main/buildkit/pom.xml

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.cryptomator</groupId>
+		<artifactId>main</artifactId>
+		<version>1.5.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>buildkit</artifactId>
+	<packaging>pom</packaging>
+	<name>Cryptomator Build Kit</name>
+	<description>Builds a package that can be built with Ant locally</description>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.cryptomator</groupId>
+			<artifactId>launcher</artifactId>
+		</dependency>
+	</dependencies>
+
+	<build>	
+		<plugins>
+			<!-- copy libraries to target/libs/: -->
+			<plugin>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<version>3.1.1</version>
+				<executions>
+					<execution>
+						<id>copy-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/libs</outputDirectory>
+							<excludeClassifiers>linux,mac,win</excludeClassifiers>
+						</configuration>
+					</execution>
+					<execution>
+						<id>copy-linux-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/linux-libs</outputDirectory>
+							<includeGroupIds>org.openjfx</includeGroupIds>
+							<classifier>linux</classifier>
+						</configuration>
+					</execution>
+					<execution>
+						<id>copy-mac-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/mac-libs</outputDirectory>
+							<includeGroupIds>org.openjfx</includeGroupIds>
+							<classifier>mac</classifier>
+						</configuration>
+					</execution>
+					<execution>
+						<id>copy-win-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/win-libs</outputDirectory>
+							<includeGroupIds>org.openjfx</includeGroupIds>
+							<classifier>win</classifier>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- create buildkit.zip: -->
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>3.1.1</version>
+				<executions>
+					<execution>
+						<id>assemble-linux</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<descriptors>
+								<descriptor>assembly-linux.xml</descriptor>
+							</descriptors>
+							<appendAssemblyId>false</appendAssemblyId>
+							<finalName>buildkit-linux</finalName>
+						</configuration>
+					</execution>
+					<execution>
+						<id>assemble-mac</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<descriptors>
+								<descriptor>assembly-mac.xml</descriptor>
+							</descriptors>
+							<appendAssemblyId>false</appendAssemblyId>
+							<finalName>buildkit-mac</finalName>
+						</configuration>
+					</execution>
+					<execution>
+						<id>assemble-win</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<descriptors>
+								<descriptor>assembly-win.xml</descriptor>
+							</descriptors>
+							<appendAssemblyId>false</appendAssemblyId>
+							<finalName>buildkit-win</finalName>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>

+ 6 - 0
main/commons/pom.xml

@@ -11,6 +11,12 @@
 	<description>Shared utilities</description>
 
 	<dependencies>
+		<!-- JavaFx -->
+		<dependency>
+			<groupId>org.openjfx</groupId>
+			<artifactId>javafx-base</artifactId>
+		</dependency>
+
 		<!-- Libs -->
 		<dependency>
 			<groupId>com.google.guava</groupId>

+ 21 - 3
main/pom.xml

@@ -31,6 +31,8 @@
 		<cryptomator.dokany.version>1.1.3</cryptomator.dokany.version>
 		<cryptomator.webdav.version>1.0.7</cryptomator.webdav.version>
 
+		<javafx.version>11.0.2</javafx.version>
+
 		<commons-io.version>2.6</commons-io.version>
 		<commons-lang3.version>3.8.1</commons-lang3.version>
 
@@ -122,6 +124,23 @@
 				<version>${cryptomator.jni.version}</version>
 			</dependency>
 
+			<!-- JavaFX -->
+			<dependency>
+				<groupId>org.openjfx</groupId>
+				<artifactId>javafx-base</artifactId>
+				<version>${javafx.version}</version>
+			</dependency>
+			<dependency>
+			  <groupId>org.openjfx</groupId>
+			  <artifactId>javafx-controls</artifactId>
+			  <version>${javafx.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.openjfx</groupId>
+				<artifactId>javafx-fxml</artifactId>
+				<version>${javafx.version}</version>
+			</dependency>
+
 			<!-- Logging -->
 			<dependency>
 				<groupId>org.slf4j</groupId>
@@ -249,8 +268,7 @@
 		<profile>
 			<id>release</id>
 			<modules>
-				<module>uber-jar</module>
-				<module>ant-kit</module>
+				<module>buildkit</module>
 			</modules>
 		</profile>
 		<profile>
@@ -317,7 +335,7 @@
 				<artifactId>maven-compiler-plugin</artifactId>
 				<version>3.8.0</version>
 				<configuration>
-					<release>9</release>
+					<release>11</release>
 					<annotationProcessorPaths>
 						<path>
 							<groupId>com.google.dagger</groupId>

+ 0 - 48
main/uber-jar/pom.xml

@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.cryptomator</groupId>
-		<artifactId>main</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<artifactId>uber-jar</artifactId>
-	<name>Single über jar with all dependencies</name>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.cryptomator</groupId>
-			<artifactId>launcher</artifactId>
-		</dependency>
-	</dependencies>
-
-	<build>
-		<plugins>
-			<plugin>
-				<artifactId>maven-shade-plugin</artifactId>
-				<version>3.0.0</version>
-				<executions>
-					<execution>
-						<id>make-assembly</id>
-						<phase>package</phase>
-						<goals>
-							<goal>shade</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<finalName>Cryptomator-${project.version}</finalName>
-					<createDependencyReducedPom>false</createDependencyReducedPom>
-					<transformers>
-						<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-							<manifestEntries>
-								<Main-Class>org.cryptomator.launcher.Cryptomator</Main-Class>
-								<Implementation-Version>${project.version}</Implementation-Version>
-							</manifestEntries>
-						</transformer>
-					</transformers>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>

+ 0 - 20
main/uber-jar/src/main/resources/logback.xml

@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE xml>
-<!-- log config used during unit tests and starts from IDE. For production please specify -Dlogback.configurationFile=/path/to/config -->
-<configuration>
-
-	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
-		</encoder>
-	</appender>
-
-	<logger name="org.cryptomator" level="DEBUG" />
-	<logger name="org.eclipse.jetty" level="INFO" />
-	<logger name="org.eclipse.jetty.server.Server" level="INFO" />
-	<logger name="org.apache" level="INFO" />
-
-	<root level="INFO">
-		<appender-ref ref="STDOUT" />
-	</root>
-</configuration>

+ 10 - 0
main/ui/pom.xml

@@ -46,6 +46,16 @@
 			<artifactId>cryptolib</artifactId>
 		</dependency>
 		
+		<!-- JavaFx -->
+		<dependency>
+			<groupId>org.openjfx</groupId>
+			<artifactId>javafx-controls</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.openjfx</groupId>
+			<artifactId>javafx-fxml</artifactId>
+		</dependency>
+
 		<!-- EasyBind -->
 		<dependency>
 			<groupId>org.fxmisc.easybind</groupId>