Attempt to update to JDK 11.
Also updated to errorprone usages as a java plugin.
Test: ./gradlew assembleDebug
Change-Id: I6b558ec6e89dd1c67fff6fd3a5638779d9313f3d
diff --git a/.idea/misc.xml b/.idea/misc.xml
index fa7a06b..cecc580 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -49,7 +49,7 @@
</value>
</option>
</component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
diff --git a/build.gradle b/build.gradle
index 30df614..8df231c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,13 +17,6 @@
import androidx.build.AndroidXPlugin
import androidx.build.SdkHelperKt
-def currentJvmVersion = org.gradle.api.JavaVersion.current()
-if (currentJvmVersion.getMajorVersion() != "8") {
- throw new Exception("Unsupported java version '" + currentJvmVersion.toString() + "'. Please install java 8.\n" +
-"\n" +
-"If you have already installed java 8, you can instruct Gradle to use it by setting the environment variable JAVA_HOME equal to its file path.")
-}
-
buildscript {
ext.supportRootFolder = project.projectDir
apply from: 'buildSrc/repos.gradle'
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index fea6f0d..03ecf8d 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -48,7 +48,6 @@
compileOnly(findGradleKotlinDsl())
implementation build_libs.agp
implementation build_libs.dex_member_list
- implementation build_libs.error_prone_gradle
implementation build_libs.dokka_gradle
implementation build_libs.kotlin.gradle_plugin
implementation build_libs.kotlinpoet
diff --git a/buildSrc/build_dependencies.gradle b/buildSrc/build_dependencies.gradle
index 886c31c..055d696 100644
--- a/buildSrc/build_dependencies.gradle
+++ b/buildSrc/build_dependencies.gradle
@@ -49,7 +49,6 @@
tests: "com.android.tools.lint:lint-tests:${build_versions.lint}"
]
-build_libs.error_prone_gradle = 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.13'
build_libs.kotlin = [
stdlib: "org.jetbrains.kotlin:kotlin-stdlib:${build_versions.kotlin}",
gradle_plugin: "org.jetbrains.kotlin:kotlin-gradle-plugin:${build_versions.kotlin}"
diff --git a/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt b/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt
index 304e824..f6eae52 100644
--- a/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt
@@ -44,8 +44,6 @@
import org.gradle.api.tasks.javadoc.Javadoc
import org.gradle.api.tasks.util.PatternSet
import java.io.File
-import java.net.URLClassLoader
-import javax.tools.ToolProvider
import kotlin.collections.set
private const val DOCLAVA_DEPENDENCY = "com.android:doclava:1.0.6"
@@ -90,7 +88,7 @@
val doclavaConfiguration = root.configurations.create("doclava")
doclavaConfiguration.dependencies.add(root.dependencies.create(DOCLAVA_DEPENDENCY))
doclavaConfiguration.dependencies.add(root.dependencies.create(root.files(
- (ToolProvider.getSystemToolClassLoader() as URLClassLoader).urLs)))
+ SupportConfig.getJavaToolsJarPath())))
// Pulls in the :fakeannotations project, which provides modified annotations required to
// generate SDK API stubs in Doclava from Metalava-generated platform SDK stubs.
diff --git a/buildSrc/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt b/buildSrc/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
index 131b173..3101ca4 100644
--- a/buildSrc/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
@@ -18,60 +18,74 @@
import com.android.build.gradle.api.BaseVariant
import com.android.builder.core.BuilderConstants
-import net.ltgt.gradle.errorprone.ErrorProneBasePlugin
-import net.ltgt.gradle.errorprone.ErrorProneToolChain
import org.gradle.api.DomainObjectSet
import org.gradle.api.Project
+import org.gradle.api.artifacts.Configuration
import org.gradle.api.logging.Logging
import org.gradle.api.plugins.JavaPlugin.COMPILE_JAVA_TASK_NAME
+import org.gradle.api.tasks.SourceSetContainer
import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.JavaCompile
-import org.gradle.kotlin.dsl.apply
+import org.gradle.kotlin.dsl.exclude
+import org.gradle.kotlin.dsl.get
+import org.gradle.kotlin.dsl.getByName
const val ERROR_PRONE_TASK = "runErrorProne"
+private const val ERROR_PRONE_CONFIGURATION = "errorprone"
private const val ERROR_PRONE_VERSION = "com.google.errorprone:error_prone_core:2.3.3"
private val log = Logging.getLogger("ErrorProneConfiguration")
fun Project.configureErrorProneForJava() {
- val toolChain = createErrorProneToolChain()
+ val errorProneConfiguration = createErrorProneConfiguration()
+ project.extensions.getByName<SourceSetContainer>("sourceSets").configureEach {
+ project.configurations[it.annotationProcessorConfigurationName].extendsFrom(
+ errorProneConfiguration
+ )
+ }
val javaCompileProvider = project.tasks.named(COMPILE_JAVA_TASK_NAME, JavaCompile::class.java)
log.info("Configuring error-prone for ${project.path}")
- makeErrorProneTask(javaCompileProvider, toolChain)
+ makeErrorProneTask(javaCompileProvider)
}
fun Project.configureErrorProneForAndroid(variants: DomainObjectSet<out BaseVariant>) {
- val toolChain = createErrorProneToolChain()
+ val errorProneConfiguration = createErrorProneConfiguration()
variants.all { variant ->
// Using getName() instead of name due to b/150427408
if (variant.buildType.getName() == BuilderConstants.DEBUG) {
val task = variant.javaCompileProvider
+ (variant as BaseVariant).annotationProcessorConfiguration.extendsFrom(
+ errorProneConfiguration
+ )
log.info("Configuring error-prone for ${variant.name}'s java compile")
- makeErrorProneTask(task, toolChain)
+ makeErrorProneTask(task)
}
}
}
-private fun Project.createErrorProneToolChain(): ErrorProneToolChain {
- apply<ErrorProneBasePlugin>()
-
- val toolChain = ErrorProneToolChain.create(this)
- // Pin a specific version of the compiler. By default a dependency wildcard is used.
- dependencies.add(ErrorProneBasePlugin.CONFIGURATION_NAME, ERROR_PRONE_VERSION)
- return toolChain
+private fun Project.createErrorProneConfiguration(): Configuration {
+ val errorProneConfiguration = configurations.create(ERROR_PRONE_CONFIGURATION) {
+ it.isVisible = false
+ it.isCanBeConsumed = false
+ it.isCanBeResolved = true
+ it.exclude(group = "com.google.errorprone", module = "javac")
+ }
+ dependencies.add(ERROR_PRONE_CONFIGURATION, ERROR_PRONE_VERSION)
+ return errorProneConfiguration
}
-// Given an existing JavaCompile task, reconfigures the task to use the ErrorProne compiler
-private fun JavaCompile.configureWithErrorProne(toolChain: ErrorProneToolChain) {
- this.toolChain = toolChain
-
+// Given an existing JavaCompile task, reconfigures the task to use the ErrorProne compiler plugin
+private fun JavaCompile.configureWithErrorProne() {
val compilerArgs = this.options.compilerArgs
compilerArgs += listOf(
- // Tell error-prone that we are running it on android compatible libraries
- "-XDandroidCompatible=true",
+ // Tell error-prone that we are running it on android compatible libraries
+ "-XDandroidCompatible=true",
- "-XDcompilePolicy=simple", // Workaround for b/36098770
+ "-XDcompilePolicy=simple", // Workaround for b/36098770
+ listOf(
+ "-Xplugin:ErrorProne",
+
"-XepExcludedPaths:.*/(build/generated|build/errorProne|external)/.*",
// Disable the following checks.
@@ -124,6 +138,7 @@
"-XepIgnoreUnknownCheckNames", // https://github.com/uber/NullAway/issues/25
"-Xep:NullAway:ERROR",
"-XepOpt:NullAway:AnnotatedPackages=android.arch,android.support,androidx"
+ ).joinToString(" ")
)
}
@@ -132,8 +147,7 @@
* settings.
*/
private fun Project.makeErrorProneTask(
- compileTaskProvider: TaskProvider<JavaCompile>,
- toolChain: ErrorProneToolChain
+ compileTaskProvider: TaskProvider<JavaCompile>
) {
val errorProneTaskProvider = maybeRegister<JavaCompile>(
name = ERROR_PRONE_TASK,
@@ -148,7 +162,7 @@
it.options.bootstrapClasspath = compileTask.options.bootstrapClasspath
it.sourceCompatibility = compileTask.sourceCompatibility
it.targetCompatibility = compileTask.targetCompatibility
- it.configureWithErrorProne(toolChain)
+ it.configureWithErrorProne()
it.dependsOn(compileTask.dependsOn)
},
onRegister = { errorProneProvider ->
diff --git a/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt b/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
index a86f850..4adb762 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
@@ -80,4 +80,7 @@
@JvmStatic
fun isUiProject() = System.getenv("DIST_SUBDIR") == "/ui"
+
+ @JvmStatic
+ fun getJavaToolsJarPath() = System.getenv("JAVA_TOOLS_JAR")
}
diff --git a/compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCompilerTest.kt b/compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCompilerTest.kt
index 1f8e64f..0a323d6 100644
--- a/compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCompilerTest.kt
+++ b/compose/compose-compiler-hosted/integration-tests/src/test/java/androidx/compose/plugins/kotlin/AbstractCompilerTest.kt
@@ -245,7 +245,11 @@
}
private fun systemClassLoaderJars(): List<File> {
- val result = (ClassLoader.getSystemClassLoader() as? URLClassLoader)?.urLs?.filter {
+ val classpath = System.getProperty("java.class.path")!!.split(
+ System.getProperty("path.separator")!!
+ )
+ val urls = classpath.map { URL("file://$it") }
+ val result = URLClassLoader(urls.toTypedArray()).urLs?.filter {
it.protocol == "file"
}?.map {
File(it.path)
diff --git a/gradlew b/gradlew
index 45ff842..c9e89fe 100755
--- a/gradlew
+++ b/gradlew
@@ -104,7 +104,8 @@
# setup from each lint module.
export ANDROID_HOME="$APP_HOME/../../prebuilts/fullsdk-$plat"
# override JAVA_HOME, because CI machines have it and it points to very old JDK
-export JAVA_HOME="$APP_HOME/../../prebuilts/jdk/jdk8/$plat-x86"
+export JAVA_HOME="$APP_HOME/../../prebuilts/jdk/jdk11/$plat-x86"
+export JAVA_TOOLS_JAR="$APP_HOME/../../prebuilts/jdk/jdk8/$plat-x86/lib/tools.jar"
export STUDIO_JDK=$JAVA_HOME
# ----------------------------------------------------------------------------
diff --git a/lifecycle/lifecycle-compiler/build.gradle b/lifecycle/lifecycle-compiler/build.gradle
index a28c269..0b6e05d 100644
--- a/lifecycle/lifecycle-compiler/build.gradle
+++ b/lifecycle/lifecycle-compiler/build.gradle
@@ -1,3 +1,4 @@
+
import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.CompilationTarget
import androidx.build.LibraryGroups
@@ -24,7 +25,6 @@
implementation(JAVAPOET)
testImplementation(GOOGLE_COMPILE_TESTING)
testImplementation(JSR250)
- testImplementation files(org.gradle.internal.jvm.Jvm.current().getToolsJar())
}
// we actually need to compile :lifecycle:lifecycle-common, but compileJava is easier
diff --git a/media/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java b/media/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java
index b43ef4b..f91712c 100644
--- a/media/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java
+++ b/media/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java
@@ -1226,6 +1226,7 @@
sendRequest(SERVICE_MSG_ON_CONNECT_FAILED, null);
}
+ @SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void onLoadChildren(String mediaId, List<MediaBrowserCompat.MediaItem> list,
Bundle options, Bundle notifyChildrenChangedOptions) throws RemoteException {
@@ -1250,7 +1251,7 @@
}
@RequiresApi(21)
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"rawtypes", "unchecked"})
static class ResultWrapper<T> {
MediaBrowserService.Result mResultFwk;
diff --git a/navigation/navigation-safe-args-generator/build.gradle b/navigation/navigation-safe-args-generator/build.gradle
index d1fcfbd..ee82964 100644
--- a/navigation/navigation-safe-args-generator/build.gradle
+++ b/navigation/navigation-safe-args-generator/build.gradle
@@ -14,13 +14,9 @@
* limitations under the License.
*/
-
-import org.gradle.internal.jvm.Jvm
-
import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.CompilationTarget
import androidx.build.LibraryGroups
-import androidx.build.LibraryVersions
import androidx.build.SupportConfig
import androidx.build.AndroidXExtension
import androidx.build.SdkHelperKt
@@ -45,7 +41,6 @@
include : "android.jar")
testImplementation fileTree(dir: "${new File(project(":navigation:navigation-common").buildDir, "libJar")}",
include : "*.jar")
- testImplementation files(Jvm.current().getToolsJar())
}
tasks.findByName("test").doFirst {
diff --git a/paging/integration-tests/testapp/build.gradle b/paging/integration-tests/testapp/build.gradle
index 93073da..43e7c93 100644
--- a/paging/integration-tests/testapp/build.gradle
+++ b/paging/integration-tests/testapp/build.gradle
@@ -41,3 +41,10 @@
implementation("androidx.appcompat:appcompat:1.1.0")
implementation(KOTLIN_STDLIB)
}
+
+kapt {
+ javacOptions {
+ option("-source", "8")
+ option("-target", "8")
+ }
+}
\ No newline at end of file
diff --git a/room/compiler/build.gradle b/room/compiler/build.gradle
index a5aad3a..646b5ed 100644
--- a/room/compiler/build.gradle
+++ b/room/compiler/build.gradle
@@ -14,13 +14,9 @@
* limitations under the License.
*/
-
-import org.gradle.internal.jvm.Jvm
-
import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.CompilationTarget
import androidx.build.LibraryGroups
-import androidx.build.LibraryVersions
import androidx.build.SupportConfig
import androidx.build.AndroidXExtension
import androidx.build.SdkHelperKt
@@ -67,7 +63,6 @@
include : "*.jar")
testImplementation fileTree(dir: "${new File(project(":sqlite:sqlite").buildDir, "libJar")}",
include : "*.jar")
- testImplementation files(Jvm.current().getToolsJar())
}
def generateAntlrTask = task('generateAntlrGrammar', type: JavaExec) {
diff --git a/room/compiler/src/main/kotlin/androidx/room/ext/element_ext.kt b/room/compiler/src/main/kotlin/androidx/room/ext/element_ext.kt
index b817e36..20c9cee 100644
--- a/room/compiler/src/main/kotlin/androidx/room/ext/element_ext.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/ext/element_ext.kt
@@ -166,6 +166,7 @@
fun <T : Annotation> Element.toAnnotationBox(cl: KClass<T>) =
MoreElements.getAnnotationMirror(this, cl.java).orNull()?.box(cl.java)
+@Suppress("DEPRECATION")
private class ListVisitor<T : Annotation>(private val annotationClass: Class<T>) :
SimpleAnnotationValueVisitor6<Array<AnnotationBox<T>>, Void?>() {
override fun visitArray(
@@ -177,6 +178,7 @@
}
}
+@Suppress("DEPRECATION")
private class AnnotationClassVisitor<T : Annotation>(private val annotationClass: Class<T>) :
SimpleAnnotationValueVisitor6<AnnotationBox<T>?, Void?>() {
override fun visitAnnotation(a: AnnotationMirror?, v: Void?) = a?.box(annotationClass)
@@ -184,6 +186,7 @@
// code below taken from dagger2
// compiler/src/main/java/dagger/internal/codegen/ConfigurationAnnotations.java
+@Suppress("DEPRECATION")
private val TO_LIST_OF_TYPES = object :
SimpleAnnotationValueVisitor6<List<TypeMirror>, Void?>() {
override fun visitArray(values: MutableList<out AnnotationValue>?, p: Void?): List<TypeMirror> {
@@ -198,6 +201,7 @@
}
}
+@Suppress("DEPRECATION")
private val TO_TYPE = object : SimpleAnnotationValueVisitor6<TypeMirror, Void>() {
override fun visitType(t: TypeMirror, p: Void?): TypeMirror {
@@ -223,12 +227,14 @@
MoreTypes.isTypeOf(java.util.Set::class.java, this))
}
+@Suppress("DEPRECATION")
private val ANNOTATION_VALUE_TO_INT_VISITOR = object : SimpleAnnotationValueVisitor6<Int?, Void>() {
override fun visitInt(i: Int, p: Void?): Int? {
return i
}
}
+@Suppress("DEPRECATION")
private val ANNOTATION_VALUE_TO_BOOLEAN_VISITOR = object :
SimpleAnnotationValueVisitor6<Boolean?, Void>() {
override fun visitBoolean(b: Boolean, p: Void?): Boolean? {
@@ -236,6 +242,7 @@
}
}
+@Suppress("DEPRECATION")
private val ANNOTATION_VALUE_TO_STRING_VISITOR = object :
SimpleAnnotationValueVisitor6<String?, Void>() {
override fun visitString(s: String?, p: Void?): String? {
@@ -243,6 +250,7 @@
}
}
+@Suppress("DEPRECATION")
private val ANNOTATION_VALUE_STRING_ARR_VISITOR = object :
SimpleAnnotationValueVisitor6<List<String>, Void>() {
override fun visitArray(vals: MutableList<out AnnotationValue>?, p: Void?): List<String> {
@@ -252,6 +260,7 @@
}
}
+@Suppress("DEPRECATION")
private val ANNOTATION_VALUE_INT_ARR_VISITOR = object :
SimpleAnnotationValueVisitor6<List<Int>, Void>() {
override fun visitArray(vals: MutableList<out AnnotationValue>?, p: Void?): List<Int> {
@@ -281,7 +290,7 @@
return ANNOTATION_VALUE_STRING_ARR_VISITOR.visit(this)
}
-@Suppress("UNCHECKED_CAST")
+@Suppress("UNCHECKED_CAST", "DEPRECATION")
private fun <T : Enum<*>> AnnotationValue.getAsEnum(enumClass: Class<T>): T {
return object : SimpleAnnotationValueVisitor6<T, Void>() {
override fun visitEnumConstant(value: VariableElement?, p: Void?): T {
diff --git a/room/compiler/src/main/kotlin/androidx/room/kotlin/JvmDescriptorUtils.kt b/room/compiler/src/main/kotlin/androidx/room/kotlin/JvmDescriptorUtils.kt
index 031cb96..1020aa2 100644
--- a/room/compiler/src/main/kotlin/androidx/room/kotlin/JvmDescriptorUtils.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/kotlin/JvmDescriptorUtils.kt
@@ -112,6 +112,7 @@
*
* For reference, see the [JVM specification, section 4.3](http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.3).
*/
+@Suppress("DEPRECATION")
internal object JvmDescriptorTypeVisitor : AbstractTypeVisitor6<String, Types>() {
override fun visitNoType(t: NoType, typeUtils: Types): String = t.descriptor
diff --git a/room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt b/room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
index f570457..cb2c637 100644
--- a/room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
@@ -258,26 +258,36 @@
// don't force the @NonNull annotation since SQLite will automatically generate IDs.
// 2. If a key is autogenerate, we generate NOT NULL in table spec, but we don't require
// @NonNull annotation on the field itself.
- candidates.filter { candidate -> !candidate.autoGenerateId }
- .map { candidate ->
- candidate.fields.map { field ->
- if (candidate.fields.size > 1 ||
- (candidate.fields.size == 1 &&
- field.affinity != SQLTypeAffinity.INTEGER)) {
- context.checker.check(field.nonNull, field.element,
- ProcessorErrors.primaryKeyNull(field.getPath()))
- // Validate parents for nullability
- var parent = field.parent
- while (parent != null) {
- val parentField = parent.field
- context.checker.check(parentField.nonNull,
- parentField.element,
- ProcessorErrors.primaryKeyNull(parentField.getPath()))
- parent = parentField.parent
- }
+ val verifiedFields = mutableSetOf<Field>() // track verified fields to not over report
+ candidates.filterNot { it.autoGenerateId }.forEach { candidate ->
+ candidate.fields.forEach { field ->
+ if (candidate.fields.size > 1 ||
+ (candidate.fields.size == 1 && field.affinity != SQLTypeAffinity.INTEGER)) {
+ if (!verifiedFields.contains(field)) {
+ context.checker.check(
+ field.nonNull,
+ field.element,
+ ProcessorErrors.primaryKeyNull(field.getPath())
+ )
+ verifiedFields.add(field)
+ }
+ // Validate parents for nullability
+ var parent = field.parent
+ while (parent != null) {
+ val parentField = parent.field
+ if (!verifiedFields.contains(parentField)) {
+ context.checker.check(
+ parentField.nonNull,
+ parentField.element,
+ ProcessorErrors.primaryKeyNull(parentField.getPath())
+ )
+ verifiedFields.add(parentField)
}
+ parent = parentField.parent
}
}
+ }
+ }
if (candidates.size == 1) {
// easy :)
diff --git a/room/compiler/src/test/data/daoWriter/output/ComplexDao.java b/room/compiler/src/test/data/daoWriter/output/ComplexDao.java
index ba5d420..d45f3a8 100644
--- a/room/compiler/src/test/data/daoWriter/output/ComplexDao.java
+++ b/room/compiler/src/test/data/daoWriter/output/ComplexDao.java
@@ -19,7 +19,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
-import javax.annotation.Generated;
+import javax.annotation.processing.Generated;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
diff --git a/room/compiler/src/test/data/daoWriter/output/DeletionDao.java b/room/compiler/src/test/data/daoWriter/output/DeletionDao.java
index dffd414..713442b 100644
--- a/room/compiler/src/test/data/daoWriter/output/DeletionDao.java
+++ b/room/compiler/src/test/data/daoWriter/output/DeletionDao.java
@@ -17,7 +17,7 @@
import java.lang.Void;
import java.util.List;
import java.util.concurrent.Callable;
-import javax.annotation.Generated;
+import javax.annotation.processing.Generated;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
diff --git a/room/compiler/src/test/data/daoWriter/output/UpdateDao.java b/room/compiler/src/test/data/daoWriter/output/UpdateDao.java
index aa7a252..973ebca 100644
--- a/room/compiler/src/test/data/daoWriter/output/UpdateDao.java
+++ b/room/compiler/src/test/data/daoWriter/output/UpdateDao.java
@@ -15,7 +15,7 @@
import java.lang.Void;
import java.util.List;
import java.util.concurrent.Callable;
-import javax.annotation.Generated;
+import javax.annotation.processing.Generated;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
diff --git a/room/compiler/src/test/data/daoWriter/output/WriterDao.java b/room/compiler/src/test/data/daoWriter/output/WriterDao.java
index 92fee52..a3871dd 100644
--- a/room/compiler/src/test/data/daoWriter/output/WriterDao.java
+++ b/room/compiler/src/test/data/daoWriter/output/WriterDao.java
@@ -23,7 +23,7 @@
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.List;
-import javax.annotation.Generated;
+import javax.annotation.processing.Generated;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
diff --git a/room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java b/room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
index 9f4ac84..31ca838 100644
--- a/room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
+++ b/room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
@@ -21,7 +21,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
-import javax.annotation.Generated;
+import javax.annotation.processing.Generated;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
diff --git a/room/compiler/src/test/kotlin/androidx/room/kotlin/KotlinMetadataElementTest.kt b/room/compiler/src/test/kotlin/androidx/room/kotlin/KotlinMetadataElementTest.kt
index 98c2661..d261941 100644
--- a/room/compiler/src/test/kotlin/androidx/room/kotlin/KotlinMetadataElementTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/kotlin/KotlinMetadataElementTest.kt
@@ -81,7 +81,7 @@
}
private fun getMetadataElement(invocation: TestInvocation) =
- invocation.typeElement(TestData::class.java.canonicalName).let {
+ invocation.typeElement(TestData::class.java.canonicalName!!).let {
it to KotlinMetadataElement.createFor(Context(invocation.processingEnv), it)!!
}
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
index 93a6611..b77665f 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
@@ -75,7 +75,9 @@
}
}
.processedWith(TestProcessor.builder()
- .forAnnotations(androidx.room.Entity::class,
+ .forAnnotations(
+ java.lang.SuppressWarnings::class,
+ androidx.room.Entity::class,
androidx.room.PrimaryKey::class,
androidx.room.Ignore::class,
Embedded::class,
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
index b9333aa..1cc4998 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
@@ -313,7 +313,9 @@
}
}
.processedWith(TestProcessor.builder()
- .forAnnotations(androidx.room.Dao::class,
+ .forAnnotations(
+ java.lang.SuppressWarnings::class,
+ androidx.room.Dao::class,
androidx.room.Entity::class,
androidx.room.Relation::class,
androidx.room.Transaction::class,
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
index e51aad4..2afa385 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
@@ -1327,11 +1327,11 @@
@Test
fun dataClass_primaryConstructor() {
listOf(
- TestData.AllDefaultVals::class.java.canonicalName,
- TestData.AllDefaultVars::class.java.canonicalName,
- TestData.SomeDefaultVals::class.java.canonicalName,
- TestData.SomeDefaultVars::class.java.canonicalName,
- TestData.WithJvmOverloads::class.java.canonicalName
+ TestData.AllDefaultVals::class.java.canonicalName!!,
+ TestData.AllDefaultVars::class.java.canonicalName!!,
+ TestData.SomeDefaultVals::class.java.canonicalName!!,
+ TestData.SomeDefaultVars::class.java.canonicalName!!,
+ TestData.WithJvmOverloads::class.java.canonicalName!!
).forEach {
simpleRun { invocation ->
PojoProcessor.createFor(
@@ -1350,7 +1350,7 @@
PojoProcessor.createFor(
context = invocation.context,
element = invocation.typeElement(
- TestData.WithJvmOverloads::class.java.canonicalName
+ TestData.WithJvmOverloads::class.java.canonicalName!!
),
bindingScope = FieldProcessor.BindingScope.READ_FROM_CURSOR,
parent = null
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
index 1f46899..900a4b9 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
@@ -778,8 +778,8 @@
""", listOf("MAX(age)", "name")) { _, _, _ ->
}?.failsToCompile()
?.withErrorContaining("no such column: age")
- ?.and()
- ?.withErrorCount(1)
+ ?.and()?.withErrorContaining(cannotFindQueryResultAdapter("foo.bar.MyClass.Pojo"))
+ ?.and()?.withErrorCount(2)
?.withWarningCount(0)
}
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
index 2b82d06..652abe7 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
@@ -197,7 +197,7 @@
fun suspendUnit() {
simpleRun { invocation ->
val daoElement =
- invocation.typeElement(RawQuerySuspendUnitDao::class.java.canonicalName)
+ invocation.typeElement(RawQuerySuspendUnitDao::class.java.canonicalName!!)
val daoFunctionElement = ElementFilter.methodsIn(daoElement.enclosedElements).first()
RawQueryMethodProcessor(
baseContext = invocation.context,
diff --git a/room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt b/room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
index 0598a0a..72384a4 100644
--- a/room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
@@ -24,7 +24,7 @@
import javax.lang.model.element.TypeElement
import kotlin.reflect.KClass
-@SupportedSourceVersion(SourceVersion.RELEASE_8) // test are compiled w/ J_8
+@SupportedSourceVersion(SourceVersion.RELEASE_11) // test are compiled w/ J_11
class TestProcessor(
val handlers: List<(TestInvocation) -> Boolean>,
val annotations: MutableSet<String>
@@ -55,7 +55,7 @@
}
fun forAnnotations(vararg klasses: KClass<*>): Builder {
- annotations.addAll(klasses.map { it.java.canonicalName })
+ annotations.addAll(klasses.map { it.java.canonicalName!! })
return this
}
diff --git a/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt b/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
index 8e2c368..f17dd65 100644
--- a/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
@@ -250,8 +250,8 @@
}
private fun getSystemClasspathFiles(): Set<File> {
- val pathSeparator = System.getProperty("path.separator")
- return System.getProperty("java.class.path").split(pathSeparator).map { File(it) }.toSet()
+ val pathSeparator = System.getProperty("path.separator")!!
+ return System.getProperty("java.class.path")!!.split(pathSeparator).map { File(it) }.toSet()
}
fun String.toJFO(qName: String): JavaFileObject = JavaFileObjects.forSourceLines(qName, this)
\ No newline at end of file
diff --git a/room/compiler/src/test/kotlin/androidx/room/writer/EntityCursorConverterWriterTest.kt b/room/compiler/src/test/kotlin/androidx/room/writer/EntityCursorConverterWriterTest.kt
index d02dc49..7eae18a 100644
--- a/room/compiler/src/test/kotlin/androidx/room/writer/EntityCursorConverterWriterTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/writer/EntityCursorConverterWriterTest.kt
@@ -33,7 +33,7 @@
package foo.bar;
import android.database.Cursor;
import java.lang.SuppressWarnings;
- import javax.annotation.Generated;
+ import javax.annotation.processing.Generated;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
public class MyContainerClass {
diff --git a/serialization/serialization-compiler/build.gradle b/serialization/serialization-compiler/build.gradle
index 196ea38..76b14b0 100644
--- a/serialization/serialization-compiler/build.gradle
+++ b/serialization/serialization-compiler/build.gradle
@@ -20,8 +20,6 @@
import androidx.build.LibraryGroups
import androidx.build.Publish
-import org.gradle.internal.jvm.Jvm
-
plugins {
id("AndroidXPlugin")
id("kotlin")
@@ -48,7 +46,6 @@
testImplementation("androidx.annotation:annotation:1.1.0")
testImplementation(project(":serialization:serialization-runtime"))
- testImplementation(files(Jvm.current().getToolsJar()))
testImplementation(GOOGLE_COMPILE_TESTING)
testImplementation(JSR250)
testImplementation(JUNIT)
diff --git a/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/AnnotationMirrorExt.kt b/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/AnnotationMirrorExt.kt
index 962e3bc..e8cf3d7 100644
--- a/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/AnnotationMirrorExt.kt
+++ b/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/AnnotationMirrorExt.kt
@@ -21,6 +21,7 @@
import javax.lang.model.element.AnnotationValue
/** Get an annotation value by Java property name. */
+@Suppress("DEPRECATION")
internal operator fun AnnotationMirror.get(name: String): AnnotationValue {
return AnnotationMirrors.getAnnotationValue(this, name)
}
diff --git a/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/ElementExt.kt b/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/ElementExt.kt
index 1d802b3..3d918d1 100644
--- a/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/ElementExt.kt
+++ b/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/processing/ElementExt.kt
@@ -50,6 +50,7 @@
return accept(IsVisibleToPackageVisitor, null)
}
+@Suppress("DEPRECATION")
private object IsVisibleToPackageVisitor : SimpleElementVisitor6<Boolean, Nothing?>() {
override fun visitPackage(e: PackageElement, p: Nothing?): Boolean {
return true
diff --git a/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/schema/TypeNameExt.kt b/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/schema/TypeNameExt.kt
index 52cab76..285a73c 100644
--- a/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/schema/TypeNameExt.kt
+++ b/serialization/serialization-compiler/src/main/kotlin/androidx/serialization/compiler/schema/TypeNameExt.kt
@@ -26,6 +26,7 @@
return this.accept(TypeNameVisitor, mutableListOf())
}
+@Suppress("DEPRECATION")
private object TypeNameVisitor : SimpleElementVisitor6<TypeName, MutableList<String>>() {
override fun visitType(e: TypeElement, p: MutableList<String>): TypeName {
p += e.simpleName.toString()