Merge branch 'java-8-language-features' into 'master'

Support Java 8 language features

See merge request !620
This commit is contained in:
Torsten Grote
2017-11-21 12:09:27 +00:00
16 changed files with 150 additions and 74 deletions

View File

@@ -6,8 +6,19 @@ cache:
- .gradle/caches - .gradle/caches
before_script: before_script:
- set -e
- export GRADLE_USER_HOME=$PWD/.gradle - export GRADLE_USER_HOME=$PWD/.gradle
- echo y | /opt/android-sdk/tools/bin/sdkmanager "build-tools;23.0.3" # Install the Android support repository
# TODO: Remove this when we upgrade the support library
- echo y | /opt/android-sdk/tools/bin/sdkmanager 'extras;android;m2repository'
# Download OpenJDK 6 so we can compile against its standard library
- JDK_FILE=openjdk-6-jre-headless_6b38-1.13.10-1~deb7u1_amd64.deb
- if [ ! -d openjdk ]
- then
- wget -q http://ftp.uk.debian.org/debian/pool/main/o/openjdk-6/$JDK_FILE
- dpkg-deb -x $JDK_FILE openjdk
- fi
- export JAVA_6_HOME=$PWD/openjdk/usr/lib/jvm/java-6-openjdk-amd64
test: test:
script: script:

View File

@@ -6,8 +6,8 @@ apply plugin: 'witness'
apply plugin: 'de.undercouch.download' apply plugin: 'de.undercouch.download'
android { android {
compileSdkVersion 23 compileSdkVersion 26
buildToolsVersion '25.0.0' buildToolsVersion '26.0.2'
defaultConfig { defaultConfig {
minSdkVersion 14 minSdkVersion 14
@@ -18,14 +18,17 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_8
} }
} }
dependencies { dependencies {
compile project(path: ':bramble-core', configuration: 'default') compile project(path: ':bramble-core', configuration: 'default')
compile fileTree(dir: 'libs', include: '*.jar') compile fileTree(dir: 'libs', include: '*.jar')
annotationProcessor 'com.google.dagger:dagger-compiler:2.0.2'
provided 'javax.annotation:jsr250-api:1.0' provided 'javax.annotation:jsr250-api:1.0'
} }

View File

@@ -1,12 +1,11 @@
apply plugin: 'java' apply plugin: 'java'
sourceCompatibility = 1.6 sourceCompatibility = 1.8
targetCompatibility = 1.6 targetCompatibility = 1.8
apply plugin: 'witness' apply plugin: 'witness'
dependencies { dependencies {
compile "com.google.dagger:dagger:2.0.2" compile "com.google.dagger:dagger:2.0.2"
compile 'com.google.dagger:dagger-compiler:2.0.2'
compile 'com.google.code.findbugs:jsr305:3.0.2' compile 'com.google.code.findbugs:jsr305:3.0.2'
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
@@ -20,11 +19,8 @@ dependencies {
dependencyVerification { dependencyVerification {
verify = [ verify = [
'com.google.dagger:dagger:84c0282ed8be73a29e0475d639da030b55dee72369e58dd35ae7d4fe6243dcf9', 'com.google.dagger:dagger:84c0282ed8be73a29e0475d639da030b55dee72369e58dd35ae7d4fe6243dcf9',
'com.google.dagger:dagger-compiler:b74bc9de063dd4c6400b232231f2ef5056145b8fbecbf5382012007dd1c071b3',
'com.google.code.findbugs:jsr305:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.code.findbugs:jsr305:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
'com.google.dagger:dagger-producers:99ec15e8a0507ba569e7655bc1165ee5e5ca5aa914b3c8f7e2c2458f724edd6b',
'com.google.guava:guava:d664fbfc03d2e5ce9cab2a44fb01f1d0bf9dfebeccc1a473b1f9ea31f79f6f99',
] ]
} }
@@ -39,3 +35,8 @@ task jarTest(type: Jar, dependsOn: testClasses) {
artifacts { artifacts {
testOutput jarTest testOutput jarTest
} }
// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
tasks.withType(JavaCompile) {
useJava6StandardLibrary(it)
}

View File

@@ -1,12 +1,9 @@
plugins { apply plugin: 'java'
id 'java' sourceCompatibility = 1.8
id 'net.ltgt.apt' version '0.9' targetCompatibility = 1.8
id 'idea'
}
sourceCompatibility = 1.6
targetCompatibility = 1.6
apply plugin: 'net.ltgt.apt'
apply plugin: 'idea'
apply plugin: 'witness' apply plugin: 'witness'
dependencies { dependencies {
@@ -15,7 +12,11 @@ dependencies {
compile 'com.h2database:h2:1.4.192' // This is the last version that supports Java 1.6 compile 'com.h2database:h2:1.4.192' // This is the last version that supports Java 1.6
compile 'org.bitlet:weupnp:0.1.4' compile 'org.bitlet:weupnp:0.1.4'
apt 'com.google.dagger:dagger-compiler:2.0.2'
testCompile project(path: ':bramble-api', configuration: 'testOutput') testCompile project(path: ':bramble-api', configuration: 'testOutput')
testApt 'com.google.dagger:dagger-compiler:2.0.2'
} }
dependencyVerification { dependencyVerification {
@@ -37,3 +38,8 @@ task jarTest(type: Jar, dependsOn: testClasses) {
artifacts { artifacts {
testOutput jarTest testOutput jarTest
} }
// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
tasks.withType(JavaCompile) {
useJava6StandardLibrary(it)
}

View File

@@ -1,7 +1,9 @@
apply plugin: 'java' apply plugin: 'java'
sourceCompatibility = 1.7 sourceCompatibility = 1.8
targetCompatibility = 1.7 targetCompatibility = 1.8
apply plugin: 'net.ltgt.apt'
apply plugin: 'idea'
apply plugin: 'witness' apply plugin: 'witness'
dependencies { dependencies {
@@ -10,6 +12,8 @@ dependencies {
compile 'net.java.dev.jna:jna:4.4.0' compile 'net.java.dev.jna:jna:4.4.0'
compile 'net.java.dev.jna:jna-platform:4.4.0' compile 'net.java.dev.jna:jna-platform:4.4.0'
apt 'com.google.dagger:dagger-compiler:2.0.2'
testCompile project(path: ':bramble-core', configuration: 'testOutput') testCompile project(path: ':bramble-core', configuration: 'testOutput')
} }

View File

@@ -2,9 +2,11 @@ apply plugin: 'com.android.application'
apply plugin: 'witness' apply plugin: 'witness'
dependencies { dependencies {
def supportVersion = '23.2.1'
compile project(path: ':briar-core', configuration: 'default') compile project(path: ':briar-core', configuration: 'default')
compile project(path: ':bramble-core', configuration: 'default')
compile project(path: ':bramble-android', configuration: 'default') compile project(path: ':bramble-android', configuration: 'default')
def supportVersion = '23.2.1'
compile "com.android.support:support-v4:$supportVersion" compile "com.android.support:support-v4:$supportVersion"
compile("com.android.support:appcompat-v7:$supportVersion") { compile("com.android.support:appcompat-v7:$supportVersion") {
exclude module: 'support-v4' exclude module: 'support-v4'
@@ -23,6 +25,7 @@ dependencies {
exclude module: 'support-v4' exclude module: 'support-v4'
exclude module: 'support-annotations' exclude module: 'support-annotations'
} }
compile 'info.guardianproject.panic:panic:0.5' compile 'info.guardianproject.panic:panic:0.5'
compile 'info.guardianproject.trustedintents:trustedintents:0.2' compile 'info.guardianproject.trustedintents:trustedintents:0.2'
compile 'de.hdodenhof:circleimageview:2.1.0' compile 'de.hdodenhof:circleimageview:2.1.0'
@@ -31,10 +34,12 @@ dependencies {
compile 'com.github.bumptech.glide:glide:3.8.0' compile 'com.github.bumptech.glide:glide:3.8.0'
compile 'uk.co.samuelwall:material-tap-target-prompt:1.9.2' compile 'uk.co.samuelwall:material-tap-target-prompt:1.9.2'
annotationProcessor 'com.google.dagger:dagger-compiler:2.0.2'
provided 'javax.annotation:jsr250-api:1.0' provided 'javax.annotation:jsr250-api:1.0'
testCompile project(path: ':bramble-core', configuration: 'testOutput') testCompile project(path: ':bramble-core', configuration: 'testOutput')
testCompile 'org.robolectric:robolectric:3.0' testCompile 'org.robolectric:robolectric:3.5.1'
testCompile 'org.robolectric:shadows-support-v4:3.0' testCompile 'org.robolectric:shadows-support-v4:3.0'
testCompile 'org.mockito:mockito-core:2.8.9' testCompile 'org.mockito:mockito-core:2.8.9'
} }
@@ -76,8 +81,8 @@ def getGitHash = { ->
} }
android { android {
compileSdkVersion 23 compileSdkVersion 26
buildToolsVersion '25.0.0' buildToolsVersion '26.0.2'
defaultConfig { defaultConfig {
minSdkVersion 14 minSdkVersion 14
@@ -107,8 +112,14 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests {
includeAndroidResources = true
}
} }
aaptOptions { aaptOptions {

View File

@@ -9,7 +9,6 @@ import org.briarproject.bramble.api.identity.Author;
import org.briarproject.bramble.api.identity.AuthorId; import org.briarproject.bramble.api.identity.AuthorId;
import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.bramble.test.TestUtils; import org.briarproject.bramble.test.TestUtils;
import org.briarproject.briar.BuildConfig;
import org.briarproject.briar.android.TestBriarApplication; import org.briarproject.briar.android.TestBriarApplication;
import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler; import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.briar.android.threaded.ThreadItemAdapter; import org.briarproject.briar.android.threaded.ThreadItemAdapter;
@@ -22,7 +21,7 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Captor; import org.mockito.Captor;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import java.util.Arrays; import java.util.Arrays;
@@ -34,9 +33,8 @@ import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_PUBLIC_K
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
@RunWith(RobolectricGradleTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, @Config(sdk = 21, application = TestBriarApplication.class,
application = TestBriarApplication.class,
packageName = "org.briarproject.briar") packageName = "org.briarproject.briar")
public class ForumActivityTest { public class ForumActivityTest {
@@ -89,8 +87,8 @@ public class ForumActivityTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra("briar.GROUP_ID", TestUtils.getRandomId()); intent.putExtra("briar.GROUP_ID", TestUtils.getRandomId());
forumActivity = Robolectric.buildActivity(TestForumActivity.class) forumActivity = Robolectric.buildActivity(TestForumActivity.class,
.withIntent(intent).create().start().resume().get(); intent).create().start().resume().get();
} }
private ThreadItemList<ForumItem> getDummyData() { private ThreadItemList<ForumItem> getDummyData() {

View File

@@ -4,7 +4,6 @@ import android.support.design.widget.TextInputLayout;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import org.briarproject.briar.BuildConfig;
import org.briarproject.briar.R; import org.briarproject.briar.R;
import org.briarproject.briar.android.TestBriarApplication; import org.briarproject.briar.android.TestBriarApplication;
import org.briarproject.briar.android.controller.handler.ResultHandler; import org.briarproject.briar.android.controller.handler.ResultHandler;
@@ -18,7 +17,7 @@ import org.mockito.Mock;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertEquals;
@@ -33,9 +32,8 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@RunWith(RobolectricGradleTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, @Config(sdk = 21, application = TestBriarApplication.class,
application = TestBriarApplication.class,
packageName = "org.briarproject.briar") packageName = "org.briarproject.briar")
public class ChangePasswordActivityTest { public class ChangePasswordActivityTest {

View File

@@ -5,7 +5,6 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import org.briarproject.briar.BuildConfig;
import org.briarproject.briar.R; import org.briarproject.briar.R;
import org.briarproject.briar.android.TestBriarApplication; import org.briarproject.briar.android.TestBriarApplication;
import org.junit.Before; import org.junit.Before;
@@ -13,7 +12,7 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertEquals;
@@ -28,9 +27,8 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import static org.robolectric.shadows.support.v4.SupportFragmentTestUtil.startFragment; import static org.robolectric.shadows.support.v4.SupportFragmentTestUtil.startFragment;
@RunWith(RobolectricGradleTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, @Config(sdk = 21, application = TestBriarApplication.class,
application = TestBriarApplication.class,
packageName = "org.briarproject.briar") packageName = "org.briarproject.briar")
public class PasswordFragmentTest { public class PasswordFragmentTest {

View File

@@ -3,10 +3,6 @@ package org.briarproject.briar.android.login;
import android.support.design.widget.TextInputLayout; import android.support.design.widget.TextInputLayout;
import android.widget.EditText; import android.widget.EditText;
import com.google.common.base.Strings;
import org.briarproject.bramble.api.identity.AuthorConstants;
import org.briarproject.briar.BuildConfig;
import org.briarproject.briar.R; import org.briarproject.briar.R;
import org.briarproject.briar.android.TestBriarApplication; import org.briarproject.briar.android.TestBriarApplication;
import org.junit.Assert; import org.junit.Assert;
@@ -15,14 +11,29 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertEquals;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.NONE;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_STRONG;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_WEAK;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.STRONG;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.WEAK;
import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
import static org.briarproject.bramble.util.StringUtils.getRandomString;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricGradleTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, @Config(sdk = 21, application = TestBriarApplication.class,
application = TestBriarApplication.class,
packageName = "org.briarproject.briar") packageName = "org.briarproject.briar")
public class SetupActivityTest { public class SetupActivityTest {
@@ -43,9 +54,7 @@ public class SetupActivityTest {
@Test @Test
public void testNicknameUI() { public void testNicknameUI() {
Assert.assertNotNull(setupActivity); Assert.assertNotNull(setupActivity);
String longNick = String longNick = getRandomString(MAX_AUTHOR_NAME_LENGTH + 1);
Strings.padEnd("*", AuthorConstants.MAX_AUTHOR_NAME_LENGTH + 1,
'*');
nicknameEntry.setText(longNick); nicknameEntry.setText(longNick);
// Nickname should be too long // Nickname should be too long
assertEquals(nicknameEntryWrapper.getError(), assertEquals(nicknameEntryWrapper.getError(),

View File

@@ -1,9 +1,12 @@
apply plugin: 'java' apply plugin: 'java'
sourceCompatibility = 1.6 sourceCompatibility = 1.8
targetCompatibility = 1.6 targetCompatibility = 1.8
apply plugin: 'witness'
dependencies { dependencies {
compile project(path: ':bramble-api', configuration: 'default') compile project(path: ':bramble-api', configuration: 'default')
} }
// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
tasks.withType(JavaCompile) {
useJava6StandardLibrary(it)
}

View File

@@ -1,12 +1,9 @@
plugins { apply plugin: 'java'
id 'java' sourceCompatibility = 1.8
id 'net.ltgt.apt' version '0.9' targetCompatibility = 1.8
id 'idea'
}
sourceCompatibility = 1.6
targetCompatibility = 1.6
apply plugin: 'net.ltgt.apt'
apply plugin: 'idea'
apply plugin: 'witness' apply plugin: 'witness'
dependencies { dependencies {
@@ -16,10 +13,14 @@ dependencies {
compile 'com.squareup.okhttp3:okhttp:3.8.0' compile 'com.squareup.okhttp3:okhttp:3.8.0'
compile 'org.jsoup:jsoup:1.10.3' compile 'org.jsoup:jsoup:1.10.3'
apt 'com.google.dagger:dagger-compiler:2.0.2'
testCompile project(path: ':bramble-core', configuration: 'default') testCompile project(path: ':bramble-core', configuration: 'default')
testCompile project(path: ':bramble-core', configuration: 'testOutput') testCompile project(path: ':bramble-core', configuration: 'testOutput')
testCompile project(path: ':bramble-api', configuration: 'testOutput') testCompile project(path: ':bramble-api', configuration: 'testOutput')
testCompile 'net.jodah:concurrentunit:0.4.2' testCompile 'net.jodah:concurrentunit:0.4.2'
testApt 'com.google.dagger:dagger-compiler:2.0.2'
} }
dependencyVerification { dependencyVerification {
@@ -32,3 +33,8 @@ dependencyVerification {
'com.squareup.okio:okio:734269c3ebc5090e3b23566db558f421f0b4027277c79ad5d176b8ec168bb850', 'com.squareup.okio:okio:734269c3ebc5090e3b23566db558f421f0b4027277c79ad5d176b8ec168bb850',
] ]
} }
// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
tasks.withType(JavaCompile) {
useJava6StandardLibrary(it)
}

View File

@@ -8,7 +8,7 @@
</configuration> </configuration>
</facet> </facet>
</component> </component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true"> <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
<exclude-output /> <exclude-output />
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" /> <excludeFolder url="file://$MODULE_DIR$/.gradle" />

View File

@@ -14,12 +14,40 @@ buildscript {
repositories { repositories {
jcenter() jcenter()
mavenLocal() mavenLocal()
maven {
url "https://plugins.gradle.org/m2/"
}
google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:2.3.3' classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath 'net.ltgt.gradle:gradle-apt-plugin:0.9'
classpath 'de.undercouch:gradle-download-task:3.2.0' classpath 'de.undercouch:gradle-download-task:3.2.0'
classpath files('libs/gradle-witness.jar') classpath files('libs/gradle-witness.jar')
} }
} }
// If a Java 6 JRE is available, check we're not using any Java 7 or 8 APIs
ext.useJava6StandardLibrary = { task ->
def home = System.env.JAVA_6_HOME;
if (home != null && !home.isEmpty()) {
println "Setting Java 6 bootstrap classpath for ${task.name}"
task.dependsOn createJavaLangInvokeJar
task.options.bootstrapClasspath = files(
"${project.rootDir}/build/invoke.jar",
"${home}/jre/lib/rt.jar",
"${home}/jre/lib/jsse.jar"
)
}
}
// Create a jar containing the java.lang.invoke classes for the Java 6 bootstrap classpath
task createJavaLangInvokeJar(type: Zip) {
archiveName 'invoke.jar'
destinationDir file("${project.rootDir}/build")
from zipTree("${System.getProperty('java.home')}/lib/rt.jar").matching {
include 'java/lang/invoke/*'
}
include '**/*'
}

View File

@@ -1,7 +1,6 @@
#Wed Aug 24 10:55:42 BST 2016
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip
distributionSha256Sum=d84bf6b6113da081d0082bcb63bd8547824c6967fe68704d1e3a6fde822b7212 distributionSha256Sum=c5b67330a8a211539d713852c56a6a80fdea365d8902df92d1759d913d18fa2d

View File

@@ -1,5 +1,6 @@
include ':bramble-api', ':bramble-android' include ':bramble-api'
include ':bramble-core' include ':bramble-core'
include ':bramble-android'
include ':bramble-j2se' include ':bramble-j2se'
include ':briar-api' include ':briar-api'
include ':briar-core' include ':briar-core'