diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2019-06-04 17:23:09 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-06-04 17:23:09 +0000 |
commit | 032065fa1470140b8cc92df73ebaac6479d2e2a6 (patch) | |
tree | 2b9d08c34ce2bc55100eafaa7ea5fd0ea041fcc6 | |
parent | 264c719a1870f297c34088f231969aea2ffc1338 (diff) | |
parent | f99c45dd65082650e6ffd74fdbf69e0c613bfcb1 (diff) | |
download | support-032065fa1470140b8cc92df73ebaac6479d2e2a6.tar.gz |
Merge "Move alpha libraries to target Java 8." into androidx-master-dev
36 files changed, 148 insertions, 47 deletions
diff --git a/activity/activity-ktx/build.gradle b/activity/activity-ktx/build.gradle index b1fca11d19a..3a5baa1842b 100644 --- a/activity/activity-ktx/build.gradle +++ b/activity/activity-ktx/build.gradle @@ -26,6 +26,10 @@ plugins { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } buildTypes { debug { testCoverageEnabled = false // Breaks Kotlin compiler. diff --git a/activity/activity/build.gradle b/activity/activity/build.gradle index 243ef372b96..a9892e90a11 100644 --- a/activity/activity/build.gradle +++ b/activity/activity/build.gradle @@ -10,6 +10,10 @@ plugins { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } lintOptions { fatal("UnknownNullness") } diff --git a/appcompat/build.gradle b/appcompat/build.gradle index 44170fd202e..ccd933d03c6 100644 --- a/appcompat/build.gradle +++ b/appcompat/build.gradle @@ -35,6 +35,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } defaultConfig { // This disables the builds tools automatic vector -> PNG generation generatedDensities = [] diff --git a/appcompat/resources/build.gradle b/appcompat/resources/build.gradle index 3de0eaa3e21..38192e899f1 100644 --- a/appcompat/resources/build.gradle +++ b/appcompat/resources/build.gradle @@ -45,6 +45,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } defaultConfig { // This disables the builds tools automatic vector -> PNG generation generatedDensities = [] diff --git a/arch/core-common/build.gradle b/arch/core-common/build.gradle index a7e3a2bfcdc..b62149449f1 100644 --- a/arch/core-common/build.gradle +++ b/arch/core-common/build.gradle @@ -32,6 +32,9 @@ dependencies { testCompile(MOCKITO_CORE) } +sourceCompatibility = JavaVersion.VERSION_1_7 +targetCompatibility = JavaVersion.VERSION_1_7 + androidx { name = "Android Arch-Common" publish = Publish.SNAPSHOT_AND_RELEASE diff --git a/arch/core-runtime/build.gradle b/arch/core-runtime/build.gradle index 48d1997da55..7b6cf5ac78a 100644 --- a/arch/core-runtime/build.gradle +++ b/arch/core-runtime/build.gradle @@ -30,6 +30,13 @@ dependencies { api(project(":arch:core-common")) } +android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } +} + androidx { name = "Android Arch-Runtime" publish = Publish.SNAPSHOT_AND_RELEASE diff --git a/arch/core-testing/build.gradle b/arch/core-testing/build.gradle index fd4218b472b..e1a8dd08f82 100644 --- a/arch/core-testing/build.gradle +++ b/arch/core-testing/build.gradle @@ -40,6 +40,13 @@ dependencies { androidTestImplementation(ESPRESSO_CORE) } +android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } +} + androidx { name = "Android Core-Testing" publish = Publish.SNAPSHOT_AND_RELEASE diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt index 75969be4f11..bda8f7e1b46 100644 --- a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt +++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt @@ -50,6 +50,7 @@ import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.TestedExtension import com.android.build.gradle.api.ApkVariant import org.gradle.api.DefaultTask +import org.gradle.api.JavaVersion import org.gradle.api.JavaVersion.VERSION_1_7 import org.gradle.api.JavaVersion.VERSION_1_8 import org.gradle.api.Plugin @@ -107,10 +108,18 @@ class AndroidXPlugin : Plugin<Project> { is JavaLibraryPlugin -> { project.configureErrorProneForJava() project.configureSourceJarForJava() - project.convention.getPlugin<JavaPluginConvention>().apply { - sourceCompatibility = VERSION_1_7 - targetCompatibility = VERSION_1_7 + val convention = project.convention.getPlugin<JavaPluginConvention>() + convention.apply { + sourceCompatibility = VERSION_1_8 + targetCompatibility = VERSION_1_8 } + project.afterEvaluate { + verifyJava7Targeting( + project.version as String, + convention.sourceCompatibility + ) + } + project.hideJavadocTask() val verifyDependencyVersionsTask = project.createVerifyDependencyVersionsTask() verifyDependencyVersionsTask.configure { task -> @@ -344,6 +353,11 @@ class AndroidXPlugin : Plugin<Project> { project: Project, androidXExtension: AndroidXExtension ) { + compileOptions.apply { + sourceCompatibility = VERSION_1_8 + targetCompatibility = VERSION_1_8 + } + // Force AGP to use our version of JaCoCo jacoco.version = Jacoco.VERSION compileSdkVersion(COMPILE_SDK_VERSION) @@ -474,13 +488,22 @@ class AndroidXPlugin : Plugin<Project> { } } + private fun verifyJava7Targeting(libraryVersion: String, javaVersion: JavaVersion) { + if (javaVersion == VERSION_1_7) { + if (libraryVersion.contains("alpha")) { + throw IllegalStateException("You moved a library that was targeting " + + "Java 7 to alpha version. Please remove " + + "`sourceCompatibility = VERSION_1_7` from build.gradle") + } + } + } + private fun LibraryExtension.configureAndroidLibraryOptions( project: Project, androidXExtension: AndroidXExtension ) { - compileOptions.apply { - sourceCompatibility = VERSION_1_7 - targetCompatibility = VERSION_1_7 + project.afterEvaluate { + verifyJava7Targeting(project.version as String, compileOptions.sourceCompatibility) } project.configurations.all { config -> @@ -502,16 +525,6 @@ class AndroidXPlugin : Plugin<Project> { } project.afterEvaluate { - // Java 8 is only fully supported on API 24+ and not all Java 8 features are - // binary compatible with API < 24 - val compilesAgainstJava8 = compileOptions.sourceCompatibility > VERSION_1_7 || - compileOptions.targetCompatibility > VERSION_1_7 - val minSdkLessThan24 = defaultConfig.minSdkVersion.apiLevel < 24 - if (compilesAgainstJava8 && minSdkLessThan24) { - throw IllegalArgumentException( - "Libraries can only support Java 8 if minSdkVersion is 24 or higher") - } - libraryVariants.all { libraryVariant -> if (libraryVariant.buildType.name == "debug") { libraryVariant.javaCompileProvider.configure { javaCompile -> @@ -533,11 +546,6 @@ class AndroidXPlugin : Plugin<Project> { versionName = "1.0" } - compileOptions.apply { - sourceCompatibility = VERSION_1_8 - targetCompatibility = VERSION_1_8 - } - lintOptions.apply { isAbortOnError = true diff --git a/car/cluster/build.gradle b/car/cluster/build.gradle index 62b60ebae97..dbb7149eeec 100644 --- a/car/cluster/build.gradle +++ b/car/cluster/build.gradle @@ -45,11 +45,6 @@ android { minSdkVersion 26 } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - sourceSets { main.res.srcDirs 'res', 'res-public' } diff --git a/car/core/build.gradle b/car/core/build.gradle index 9d75c7c3179..938eb3a572f 100644 --- a/car/core/build.gradle +++ b/car/core/build.gradle @@ -41,11 +41,6 @@ android { minSdkVersion 24 } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - sourceSets { main.res.srcDirs 'res', 'res-public' } diff --git a/car/moderator/build.gradle b/car/moderator/build.gradle index 391960b963e..70a21f249ab 100644 --- a/car/moderator/build.gradle +++ b/car/moderator/build.gradle @@ -43,10 +43,6 @@ android { defaultConfig { minSdkVersion 26 } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } sourceSets { main.res.srcDirs 'res', 'res-public' } diff --git a/concurrent/futures/build.gradle b/concurrent/futures/build.gradle index 22b0b5d4b33..7398b6b6cab 100644 --- a/concurrent/futures/build.gradle +++ b/concurrent/futures/build.gradle @@ -32,6 +32,9 @@ dependencies { testCompile(TRUTH) } +sourceCompatibility = JavaVersion.VERSION_1_7 +targetCompatibility = JavaVersion.VERSION_1_7 + androidx { name = "AndroidX Futures" publish = Publish.SNAPSHOT_AND_RELEASE diff --git a/concurrent/listenablefuture-callback/build.gradle b/concurrent/listenablefuture-callback/build.gradle index 10c76f5b326..6125c533e6f 100644 --- a/concurrent/listenablefuture-callback/build.gradle +++ b/concurrent/listenablefuture-callback/build.gradle @@ -32,6 +32,9 @@ dependencies { testCompile(TRUTH) } +sourceCompatibility = JavaVersion.VERSION_1_7 +targetCompatibility = JavaVersion.VERSION_1_7 + androidx { name = "ListenableFuture Callback Adapter" publish = Publish.SNAPSHOT_AND_RELEASE diff --git a/concurrent/listenablefuture/build.gradle b/concurrent/listenablefuture/build.gradle index 4a19d4d057c..e0ca091496f 100644 --- a/concurrent/listenablefuture/build.gradle +++ b/concurrent/listenablefuture/build.gradle @@ -29,6 +29,9 @@ dependencies { compile("androidx.annotation:annotation:1.0.0") } +sourceCompatibility = JavaVersion.VERSION_1_7 +targetCompatibility = JavaVersion.VERSION_1_7 + androidx { name = "ListenableFuture" publish = Publish.SNAPSHOT_AND_RELEASE diff --git a/coordinatorlayout/build.gradle b/coordinatorlayout/build.gradle index c7495c3b05a..80fc5460510 100644 --- a/coordinatorlayout/build.gradle +++ b/coordinatorlayout/build.gradle @@ -29,6 +29,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } sourceSets { main.res.srcDirs = [ 'src/main/res', diff --git a/fragment/build.gradle b/fragment/build.gradle index 2af1906bc93..caeaf627eeb 100644 --- a/fragment/build.gradle +++ b/fragment/build.gradle @@ -41,6 +41,13 @@ dependencies { } } +android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } +} + androidx { name = "Android Support Library fragment" publish = Publish.SNAPSHOT_AND_RELEASE diff --git a/fragment/ktx/build.gradle b/fragment/ktx/build.gradle index fdff4f8155e..425d3276a98 100644 --- a/fragment/ktx/build.gradle +++ b/fragment/ktx/build.gradle @@ -26,6 +26,10 @@ plugins { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } buildTypes { debug { testCoverageEnabled = false // Breaks Kotlin compiler. diff --git a/fragment/testing/build.gradle b/fragment/testing/build.gradle index 6906fd84dc0..e6bd6b3e4bb 100644 --- a/fragment/testing/build.gradle +++ b/fragment/testing/build.gradle @@ -26,6 +26,10 @@ plugins { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } buildTypes { debug { testCoverageEnabled = false // Breaks Kotlin compiler. diff --git a/graphics/drawable/animated/build.gradle b/graphics/drawable/animated/build.gradle index 78b38fdcee8..3003dfdd494 100644 --- a/graphics/drawable/animated/build.gradle +++ b/graphics/drawable/animated/build.gradle @@ -21,6 +21,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } defaultConfig { // This disables the builds tools automatic vector -> PNG generation generatedDensities = [] diff --git a/graphics/drawable/static/build.gradle b/graphics/drawable/static/build.gradle index d89fa8239f8..48934cf8459 100644 --- a/graphics/drawable/static/build.gradle +++ b/graphics/drawable/static/build.gradle @@ -20,6 +20,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } defaultConfig { // This disables the builds tools automatic vector -> PNG generation generatedDensities = [] diff --git a/jetifier/jetifier/core/build.gradle b/jetifier/jetifier/core/build.gradle index 8cc0e3aad54..0662cc0d86d 100644 --- a/jetifier/jetifier/core/build.gradle +++ b/jetifier/jetifier/core/build.gradle @@ -25,6 +25,9 @@ plugins { } +sourceCompatibility = JavaVersion.VERSION_1_7 +targetCompatibility = JavaVersion.VERSION_1_7 + dependencies { compile("com.google.code.gson:gson:2.8.0") compile(KOTLIN_STDLIB) diff --git a/jetifier/jetifier/preprocessor/build.gradle b/jetifier/jetifier/preprocessor/build.gradle index 61a7ade9525..c38d52f0fd0 100644 --- a/jetifier/jetifier/preprocessor/build.gradle +++ b/jetifier/jetifier/preprocessor/build.gradle @@ -20,6 +20,9 @@ plugins { id("application") } +sourceCompatibility = JavaVersion.VERSION_1_7 +targetCompatibility = JavaVersion.VERSION_1_7 + mainClassName = "com.android.tools.build.jetifier.preprocessor.MainKt" dependencies { diff --git a/jetifier/jetifier/processor/build.gradle b/jetifier/jetifier/processor/build.gradle index e79f95db5ac..fd7d9c67f0b 100644 --- a/jetifier/jetifier/processor/build.gradle +++ b/jetifier/jetifier/processor/build.gradle @@ -24,6 +24,9 @@ plugins { id("kotlin") } +sourceCompatibility = JavaVersion.VERSION_1_7 +targetCompatibility = JavaVersion.VERSION_1_7 + dependencies { compile project(':jetifier-core') compile("org.ow2.asm:asm:6.0") diff --git a/lifecycle/common-java8/build.gradle b/lifecycle/common-java8/build.gradle index 3a680fdfe64..38f166fe2ba 100644 --- a/lifecycle/common-java8/build.gradle +++ b/lifecycle/common-java8/build.gradle @@ -25,9 +25,6 @@ plugins { id("java") } -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 - dependencies { compile(project(":lifecycle:lifecycle-common")) compile("androidx.annotation:annotation:1.1.0-rc01") diff --git a/media/build.gradle b/media/build.gradle index c81ca57bf40..c7c7f170726 100644 --- a/media/build.gradle +++ b/media/build.gradle @@ -21,6 +21,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } sourceSets { main.java.srcDirs += [ ] diff --git a/media2/common/build.gradle b/media2/common/build.gradle index 522fcc278cb..5ab9b4f9835 100644 --- a/media2/common/build.gradle +++ b/media2/common/build.gradle @@ -24,6 +24,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } defaultConfig { minSdkVersion 19 } diff --git a/media2/media2-exoplayer/build.gradle b/media2/media2-exoplayer/build.gradle index 7953ea830ca..f0ef504c144 100644 --- a/media2/media2-exoplayer/build.gradle +++ b/media2/media2-exoplayer/build.gradle @@ -26,6 +26,10 @@ plugins { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } buildTypes.all { consumerProguardFiles 'proguard-rules.pro' } diff --git a/media2/player/build.gradle b/media2/player/build.gradle index 6fdcfcc5de5..619b299413e 100644 --- a/media2/player/build.gradle +++ b/media2/player/build.gradle @@ -29,6 +29,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } lintOptions { // Lint bug causes the BanTargetApiAnnotation lint check to crash in this project. // remove when b/120615476 is fixed. diff --git a/media2/session/build.gradle b/media2/session/build.gradle index 4ea98ff08f9..95cf8ffbca4 100644 --- a/media2/session/build.gradle +++ b/media2/session/build.gradle @@ -27,6 +27,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } defaultConfig { minSdkVersion 19 } diff --git a/mediarouter/build.gradle b/mediarouter/build.gradle index 460f70725cc..24f50b3b169 100644 --- a/mediarouter/build.gradle +++ b/mediarouter/build.gradle @@ -22,6 +22,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } sourceSets { main.java.srcDirs += [ 'jellybean', diff --git a/preference/build.gradle b/preference/build.gradle index b3391320924..a444849e410 100644 --- a/preference/build.gradle +++ b/preference/build.gradle @@ -46,6 +46,10 @@ dependencies { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } sourceSets { main.res.srcDirs = [ 'res', diff --git a/preference/ktx/build.gradle b/preference/ktx/build.gradle index 733437fd9a5..6852755fc04 100644 --- a/preference/ktx/build.gradle +++ b/preference/ktx/build.gradle @@ -28,6 +28,10 @@ plugins { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } buildTypes { debug { testCoverageEnabled = false // Breaks Kotlin compiler. diff --git a/remotecallback/processor/build.gradle b/remotecallback/processor/build.gradle index 3b09cefec4f..7bf917f5a75 100644 --- a/remotecallback/processor/build.gradle +++ b/remotecallback/processor/build.gradle @@ -26,9 +26,6 @@ plugins { id("java") } -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 - dependencies { compile(JAVAPOET) } diff --git a/room/common-java8/build.gradle b/room/common-java8/build.gradle index 39bff66b3c8..3bad3c900ea 100644 --- a/room/common-java8/build.gradle +++ b/room/common-java8/build.gradle @@ -17,7 +17,7 @@ import static androidx.build.dependencies.DependenciesKt.* import androidx.build.LibraryGroups import androidx.build.LibraryVersions -import androidx.build.AndroidXExtension; +import androidx.build.AndroidXExtension import androidx.build.Publish plugins { @@ -25,9 +25,6 @@ plugins { id("java") } -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 - dependencies { compile(ANDROIDX_ANNOTATION) } diff --git a/savedstate/build.gradle b/savedstate/build.gradle index 542be2eb2fb..a8977eda5c5 100644 --- a/savedstate/build.gradle +++ b/savedstate/build.gradle @@ -10,6 +10,10 @@ plugins { } android { + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } lintOptions { fatal("UnknownNullness") } diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java index 9672c142051..3cc8194f2dc 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java @@ -1370,7 +1370,8 @@ public class WorkManagerImplTest { @Test @LargeTest public void testCancelAllWork_updatesLastCancelAllTime() { - Preferences preferences = new Preferences(ApplicationProvider.getApplicationContext()); + Preferences preferences = new Preferences( + (Context) ApplicationProvider.getApplicationContext()); preferences.setLastCancelAllTimeMillis(0L); OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(TestWorker.class).build(); @@ -1384,7 +1385,8 @@ public class WorkManagerImplTest { @LargeTest @SuppressWarnings("unchecked") public void testCancelAllWork_updatesLastCancelAllTimeLiveData() throws InterruptedException { - Preferences preferences = new Preferences(ApplicationProvider.getApplicationContext()); + Preferences preferences = new Preferences( + (Context) ApplicationProvider.getApplicationContext()); preferences.setLastCancelAllTimeMillis(0L); TestLifecycleOwner testLifecycleOwner = new TestLifecycleOwner(); |