Enable Room Kotlin codegen by default on KSP
For various room-compiler tests, Kotlin codegen was turn off since it would produce extra warning due to nullable collection return types. For other projects, abstract property DAO 'getter' was migrated to a function. Finally, for projects that turned ON Kotlin codegen explicitly, the argument code block was removed.
Bug: 330748742
Test: Existing
Change-Id: I646310d4e7dcaab46388b65597648bc76a67836e
diff --git a/paging/integration-tests/testapp/build.gradle b/paging/integration-tests/testapp/build.gradle
index 8b420e1..f198a5e 100644
--- a/paging/integration-tests/testapp/build.gradle
+++ b/paging/integration-tests/testapp/build.gradle
@@ -67,3 +67,7 @@
tasks.withType(JavaCompile) {
options.compilerArgs << "-parameters"
}
+
+ksp {
+ arg('room.generateKotlin', 'false')
+}
diff --git a/room/integration-tests/incremental-annotation-processing/src/test/kotlin/androidx/room/gradle/RoomIncrementalAnnotationProcessingTest.kt b/room/integration-tests/incremental-annotation-processing/src/test/kotlin/androidx/room/gradle/RoomIncrementalAnnotationProcessingTest.kt
index 603cead..ae26317 100644
--- a/room/integration-tests/incremental-annotation-processing/src/test/kotlin/androidx/room/gradle/RoomIncrementalAnnotationProcessingTest.kt
+++ b/room/integration-tests/incremental-annotation-processing/src/test/kotlin/androidx/room/gradle/RoomIncrementalAnnotationProcessingTest.kt
@@ -161,6 +161,7 @@
ksp {
arg('room.incremental', '$withIncrementalRoom')
arg('room.schemaLocation', '${projectRoot.resolve(GEN_RES_DIR).canonicalPath}')
+ arg('room.generateKotlin', 'false')
}
""".trimIndent()
} else {
diff --git a/room/integration-tests/multiplatformtestapp/build.gradle b/room/integration-tests/multiplatformtestapp/build.gradle
index 2ec523d..a10ab82 100644
--- a/room/integration-tests/multiplatformtestapp/build.gradle
+++ b/room/integration-tests/multiplatformtestapp/build.gradle
@@ -129,5 +129,4 @@
schemaDirectory(
provider { layout.projectDirectory.dir("schemas-ksp").getAsFile().getAbsolutePath() }
)
- generateKotlin = true
}
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/processor/Context.kt b/room/room-compiler/src/main/kotlin/androidx/room/processor/Context.kt
index 16cce2b..1e6377a 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/processor/Context.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/processor/Context.kt
@@ -31,7 +31,6 @@
import androidx.room.verifier.DatabaseVerifier
import androidx.room.vo.BuiltInConverterFlags
import androidx.room.vo.Warning
-import javax.tools.Diagnostic
class Context private constructor(
val processingEnv: XProcessingEnv,
@@ -86,17 +85,16 @@
}
val codeLanguage: CodeLanguage by lazy {
- if (BooleanProcessorOptions.GENERATE_KOTLIN.getValue(processingEnv)) {
- if (processingEnv.backend == XProcessingEnv.Backend.KSP) {
+ if (processingEnv.backend == XProcessingEnv.Backend.KSP) {
+ if (BooleanProcessorOptions.GENERATE_KOTLIN.getValue(processingEnv)) {
CodeLanguage.KOTLIN
} else {
- processingEnv.messager.printMessage(
- Diagnostic.Kind.ERROR,
- "${BooleanProcessorOptions.GENERATE_KOTLIN.argName} can only be enabled in KSP."
- )
CodeLanguage.JAVA
}
} else {
+ if (BooleanProcessorOptions.GENERATE_KOTLIN.getInputValue(processingEnv) == true) {
+ logger.e(ProcessorErrors.INVALID_KOTLIN_CODE_GEN_IN_JAVAC)
+ }
CodeLanguage.JAVA
}
}
@@ -287,7 +285,7 @@
INCREMENTAL("room.incremental", defaultValue = true),
EXPAND_PROJECTION("room.expandProjection", defaultValue = false),
USE_NULL_AWARE_CONVERTER("room.useNullAwareTypeAnalysis", defaultValue = false),
- GENERATE_KOTLIN("room.generateKotlin", defaultValue = false),
+ GENERATE_KOTLIN("room.generateKotlin", defaultValue = true),
EXPORT_SCHEMA_RESOURCE("room.exportSchemaResource", defaultValue = false);
/**
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt b/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
index 78e4106..2cdf066 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
@@ -1158,4 +1158,7 @@
val INVALID_BLOCKING_DAO_FUNCTION_NON_ANDROID = "Only suspend functions are allowed in DAOs" +
" declared in source sets targeting non-Android platforms."
+
+ val INVALID_KOTLIN_CODE_GEN_IN_JAVAC =
+ "${Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName} can only be enabled in KSP."
}
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
index eff1336..e8f12f5 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
@@ -65,6 +65,7 @@
code = ENTITY_PREFIX.format(attributesReplacement, baseClassReplacement) +
input + ENTITY_SUFFIX
),
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
classpath = classpathFiles
) { invocation ->
val entity = invocation.roundEnv
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
index 2758547..24b55f7 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
@@ -764,6 +764,7 @@
),
COMMON.USER
),
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
classpath = classpathFiles
) { invocation: XTestInvocation ->
val dao = invocation.roundEnv
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
index f74dcbb..63fd4dc 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
@@ -487,6 +487,7 @@
)
runProcessorTest(
sources = listOf(BOOK, BOOK_DAO, DB1, DB2, db1_2),
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
createProcessingSteps = { listOf(DatabaseProcessingStep()) }
) { result ->
result.generatedSourceFileWithPath("foo/bar/Db1_Impl.java")
@@ -1465,7 +1466,10 @@
)
runProcessorTest(
sources = listOf(dbSource, USER),
- options = mapOf("room.schemaLocation" to "schemas/")
+ options = mapOf(
+ "room.schemaLocation" to "schemas/",
+ "room.generateKotlin" to "false"
+ )
) { invocation ->
val dbAnnotationName = "androidx.room.Database"
val roundElements = mapOf(
@@ -1537,7 +1541,10 @@
}
"""
)
- runProcessorTest(sources = listOf(jvmNameInDaoGetter)) { invocation ->
+ runProcessorTest(
+ sources = listOf(jvmNameInDaoGetter),
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
+ ) { invocation ->
val element = invocation.processingEnv.requireTypeElement("foo.bar.MyDb")
DatabaseProcessor(
baseContext = invocation.context,
@@ -1614,7 +1621,8 @@
body: (List<DatabaseView>, XTestInvocation) -> Unit
) {
runProcessorTest(
- sources = listOf(DB3, BOOK)
+ sources = listOf(DB3, BOOK),
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
) { invocation ->
val database = invocation.roundEnv
.getElementsAnnotatedWith(
@@ -1665,6 +1673,7 @@
)
runProcessorTest(
sources = listOf(BOOK, bookDao) + dbs,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
createProcessingSteps = { listOf(DatabaseProcessingStep()) },
) {
onCompilationResult?.invoke(it)
@@ -1685,7 +1694,8 @@
),
classpath = classpath,
options = mapOf(
- "room.schemaLocation" to schemaFolder.root.absolutePath
+ "room.schemaLocation" to schemaFolder.root.absolutePath,
+ Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"
)
) { invocation ->
val entity = invocation.roundEnv
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/DeleteOrUpdateShortcutMethodProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/DeleteOrUpdateShortcutMethodProcessorTest.kt
index 7f7e12a..80de5d3 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/DeleteOrUpdateShortcutMethodProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/DeleteOrUpdateShortcutMethodProcessorTest.kt
@@ -795,7 +795,8 @@
COMMON.GUAVA_ROOM
)
runProcessorTest(
- sources = commonSources + additionalSources + inputSource
+ sources = commonSources + additionalSources + inputSource,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
) { invocation ->
val (owner, methods) = invocation.roundEnv
.getElementsAnnotatedWith(Dao::class.qualifiedName!!)
@@ -836,7 +837,8 @@
)
runProcessorTest(
- sources = commonSources + additionalSources + inputSource
+ sources = commonSources + additionalSources + inputSource,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
) { invocation ->
val (owner, methods) = invocation.roundEnv
.getElementsAnnotatedWith(Dao::class.qualifiedName!!)
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt
index 45f42288..fa50917 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutMethodProcessorTest.kt
@@ -1122,7 +1122,8 @@
)
runProcessorTest(
- sources = commonSources + additionalSources + inputSource
+ sources = commonSources + additionalSources + inputSource,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
) { invocation ->
val (owner, methods) = invocation.roundEnv
.getElementsAnnotatedWith(Dao::class.qualifiedName!!)
@@ -1162,7 +1163,8 @@
)
runProcessorTest(
- sources = commonSources + additionalSources + inputSource
+ sources = commonSources + additionalSources + inputSource,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
) { invocation ->
val (owner, methods) = invocation.roundEnv
.getElementsAnnotatedWith(Dao::class.qualifiedName!!)
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
index 9c40b99..636a827 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
@@ -1309,9 +1309,11 @@
COMMON.NOT_AN_ENTITY, COMMON.ARTIST, COMMON.SONG, COMMON.IMAGE, COMMON.IMAGE_FORMAT,
COMMON.CONVERTER
)
+ val allOptions =
+ mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false") + options
runProcessorTest(
sources = additionalSources + commonSources + inputSource,
- options = options
+ options = allOptions
) { invocation ->
val (owner, methods) = invocation.roundEnv
.getElementsAnnotatedWith(Dao::class.qualifiedName!!)
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
index 805c6ea..c28313e 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
@@ -672,7 +672,8 @@
COMMON.IMAGE_FORMAT, COMMON.CONVERTER
)
runProcessorTest(
- sources = commonSources + inputSource
+ sources = commonSources + inputSource,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
) { invocation ->
val (owner, methods) = invocation.roundEnv
.getElementsAnnotatedWith(Dao::class.qualifiedName!!)
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/processor/RemoveUnusedColumnsTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/processor/RemoveUnusedColumnsTest.kt
index 3c39305..439f503 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/processor/RemoveUnusedColumnsTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/processor/RemoveUnusedColumnsTest.kt
@@ -118,7 +118,8 @@
listOf(DatabaseProcessingStep())
},
options = mapOf(
- "room.expandProjection" to enableExpandProjection.toString()
+ "room.expandProjection" to enableExpandProjection.toString(),
+ "room.generateKotlin" to "false",
)
) { result ->
validate(result)
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/solver/BuiltInConverterFlagsTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/solver/BuiltInConverterFlagsTest.kt
index c48870e..177e637 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/solver/BuiltInConverterFlagsTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/solver/BuiltInConverterFlagsTest.kt
@@ -24,6 +24,7 @@
import androidx.room.compiler.processing.util.Source
import androidx.room.compiler.processing.util.XTestInvocation
import androidx.room.compiler.processing.util.runProcessorTest
+import androidx.room.processor.Context
import androidx.room.processor.ProcessorErrors.CANNOT_FIND_COLUMN_TYPE_ADAPTER
import androidx.room.processor.ProcessorErrors.CANNOT_FIND_CURSOR_READER
import org.junit.Test
@@ -177,7 +178,8 @@
dbAnnotation = dbAnnotation
)
runProcessorTest(
- sources = listOf(source)
+ sources = listOf(source),
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
) { invocation ->
val subject = invocation.processingEnv.requireTypeElement("MyDatabase")
DatabaseProcessingStep().process(
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
index f4ade0b..c188e08 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
@@ -35,6 +35,7 @@
import androidx.room.ext.CommonTypeNames
import androidx.room.ext.RoomAnnotationTypeNames
import androidx.room.ext.RoomTypeNames.ROOM_DB
+import androidx.room.processor.Context
import androidx.room.processor.ProcessorErrors.CANNOT_BIND_QUERY_PARAMETER_INTO_STMT
import org.junit.Test
import org.junit.runner.RunWith
@@ -259,6 +260,7 @@
runProcessorTest(
sources = sources + CUSTOM_TYPE_JFO + CUSTOM_TYPE_CONVERTER_JFO +
CUSTOM_TYPE_SET_CONVERTER_JFO,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
createProcessingSteps = {
listOf(DatabaseProcessingStep())
},
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
index 253ff02..ed72d66 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
@@ -22,6 +22,7 @@
import androidx.room.compiler.processing.util.CompilationResultSubject
import androidx.room.compiler.processing.util.Source
import androidx.room.compiler.processing.util.runProcessorTest
+import androidx.room.processor.Context
import androidx.testutils.generateAllEnumerations
import loadTestSource
import org.junit.Test
@@ -141,6 +142,7 @@
) + inputs
runProcessorTest(
sources = sources,
+ options = mapOf(Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName to "false"),
javacProcessors = listOf(RoomProcessor()),
symbolProcessorProviders = listOf(RoomKspProcessor.Provider()),
>
diff --git a/room/room-paging-guava/src/androidTest/kotlin/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSourceTest.kt b/room/room-paging-guava/src/androidTest/kotlin/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSourceTest.kt
index 0a621a1..af3980f 100644
--- a/room/room-paging-guava/src/androidTest/kotlin/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSourceTest.kt
+++ b/room/room-paging-guava/src/androidTest/kotlin/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSourceTest.kt
@@ -207,7 +207,7 @@
@Test
fun refresh_consecutively() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetListenableFuturePagingSourceImpl(db, true)
val pagingSource2 = LimitOffsetListenableFuturePagingSourceImpl(db, true)
@@ -308,7 +308,7 @@
}
@Test
fun refresh_onSuccess() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetListenableFuturePagingSourceImpl(db, true)
val listenableFuture = pagingSource.refresh(key = 30)
@@ -336,7 +336,7 @@
@Test
fun append_onSuccess() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetListenableFuturePagingSourceImpl(db)
pagingSource.itemCount.set(100) // bypass check for initial load
@@ -364,7 +364,7 @@
@Test
fun prepend_onSuccess() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetListenableFuturePagingSourceImpl(db)
pagingSource.itemCount.set(100) // bypass check for initial load
@@ -632,7 +632,7 @@
@Test
fun refresh_AfterCancellation() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetListenableFuturePagingSourceImpl(db, true)
pagingSource.itemCount.set(100) // bypass check for initial load
@@ -656,7 +656,7 @@
@Test
fun appendAgain_afterFutureCanceled() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetListenableFuturePagingSourceImpl(db)
pagingSource.itemCount.set(100) // bypass check for initial load
@@ -680,7 +680,7 @@
@Test
fun prependAgain_afterFutureCanceled() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetListenableFuturePagingSourceImpl(db)
pagingSource.itemCount.set(100) // bypass check for initial load
@@ -721,7 +721,7 @@
// run this async separately from queryExecutor
run {
- db.dao.addItem(TestItem(101))
+ db.getDao().addItem(TestItem(101))
}
// tasks in queue [nonInitialLoad, InvalidationTracker(from additem)]
@@ -755,7 +755,7 @@
// run this async separately from queryExecutor
run {
- db.dao.addItem(TestItem(101))
+ db.getDao().addItem(TestItem(101))
}
// tasks in queue [nonInitialLoad, InvalidationTracker(from additem)]
@@ -789,7 +789,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val listenableFuture = pagingSource.refresh()
val page = listenableFuture.await() as LoadResult.Page
@@ -812,7 +812,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
pagingSource.itemCount.set(100)
val listenableFuture = pagingSource.append(key = 50)
@@ -836,7 +836,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
pagingSource.itemCount.set(100)
val listenableFuture = pagingSource.prepend(key = 50)
@@ -875,7 +875,7 @@
.build()
runTest {
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
queryExecutor.executeAll() // InvalidationTracker from the addAllItems
test(db, queryExecutor, transactionExecutor)
}
@@ -1091,7 +1091,7 @@
@Database(entities = [TestItem::class], version = 1, exportSchema = false)
abstract class LimitOffsetTestDb : RoomDatabase() {
- abstract val dao: TestItemDao
+ abstract fun getDao(): TestItemDao
}
@Entity(tableName = "TestItem")
diff --git a/room/room-paging-rxjava2/src/androidTest/kotlin/androidx/room/paging/rxjava2/LimitOffsetRxPagingSourceTest.kt b/room/room-paging-rxjava2/src/androidTest/kotlin/androidx/room/paging/rxjava2/LimitOffsetRxPagingSourceTest.kt
index fca3c49..84cf1d4 100644
--- a/room/room-paging-rxjava2/src/androidTest/kotlin/androidx/room/paging/rxjava2/LimitOffsetRxPagingSourceTest.kt
+++ b/room/room-paging-rxjava2/src/androidTest/kotlin/androidx/room/paging/rxjava2/LimitOffsetRxPagingSourceTest.kt
@@ -87,7 +87,7 @@
@Test
fun initialLoad() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
val result = single.await() as LoadResult.Page
@@ -98,7 +98,7 @@
@Test
fun simpleAppend() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 15)
val result = single.await() as LoadResult.Page
@@ -109,7 +109,7 @@
@Test
fun simplePrepend() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 20)
val result = single.await() as LoadResult.Page
@@ -120,7 +120,7 @@
@Test
fun initialLoad_invalidationTracker_isRegistered() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
// run loadSingle to register InvalidationTracker
@@ -131,7 +131,7 @@
@Test
fun nonInitialLoad_invalidationTracker_isRegistered() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 20)
// run loadSingle to register InvalidationTracker
@@ -142,7 +142,7 @@
@Test
fun refresh_singleImmediatelyReturn() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
@@ -163,7 +163,7 @@
@Test
fun append_singleImmediatelyReturn() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 10)
@@ -184,7 +184,7 @@
@Test
fun prepend_singleImmediatelyReturn() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 15)
@@ -205,7 +205,7 @@
@Test
fun dbUpdate_invalidatesPagingSource() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 50)
@@ -218,7 +218,7 @@
assertFalse(pagingSource.invalid)
// this should cause refreshVersionsSync to invalidate pagingSource
- db.dao.addItem(TestItem(113))
+ db.getDao().addItem(TestItem(113))
countingTaskExecutorRule.drainTasks(500, TimeUnit.MILLISECONDS)
assertTrue(pagingSource.invalid)
@@ -230,7 +230,7 @@
@Test
fun append_returnsInvalid() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 50)
@@ -248,7 +248,7 @@
@Test
fun prepend_returnsInvalid() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 50)
@@ -268,7 +268,7 @@
@Test
fun refresh_consecutively() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
val result = single.await() as LoadResult.Page
@@ -286,7 +286,7 @@
@Test
fun append_consecutively() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 15)
@@ -310,7 +310,7 @@
@Test
fun prepend_consecutively() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 15)
@@ -334,7 +334,7 @@
@Test
fun refreshAgain_afterDispose() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
var isDisposed = false
@@ -359,7 +359,7 @@
@Test
fun appendAgain_afterDispose() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
var isDisposed = false
@@ -384,7 +384,7 @@
@Test
fun prependAgain_afterDispose() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
var isDisposed = false
@@ -416,7 +416,7 @@
).setQueryExecutor(queryExecutor)
.build()
- testDb.dao.addAllItems(ITEMS_LIST)
+ testDb.getDao().addAllItems(ITEMS_LIST)
queryExecutor.executeAll() // add items first
runTest {
@@ -454,7 +454,7 @@
LimitOffsetTestDb::class.java
).build()
- testDb.dao.addAllItems(ITEMS_LIST)
+ testDb.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(testDb)
runBlocking {
@@ -490,7 +490,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val single = pagingSource.refresh()
val result = single.await() as LoadResult.Page
assertThat(result.data).containsExactlyElementsIn(
@@ -509,7 +509,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val single = pagingSource.append(key = 15)
val result = single.await() as LoadResult.Page
assertThat(result.data).containsExactlyElementsIn(
@@ -528,7 +528,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val single = pagingSource.prepend(key = 15)
val result = single.await() as LoadResult.Page
assertThat(result.data).containsExactlyElementsIn(
@@ -673,7 +673,7 @@
@Database(entities = [TestItem::class], version = 1, exportSchema = false)
abstract class LimitOffsetTestDb : RoomDatabase() {
- abstract val dao: TestItemDao
+ abstract fun getDao(): TestItemDao
}
@Entity(tableName = "TestItem")
diff --git a/room/room-paging-rxjava3/src/androidTest/kotlin/androidx/room/paging/rxjava3/LimitOffsetRxPagingSourceTest.kt b/room/room-paging-rxjava3/src/androidTest/kotlin/androidx/room/paging/rxjava3/LimitOffsetRxPagingSourceTest.kt
index 1684489..df8ac9b 100644
--- a/room/room-paging-rxjava3/src/androidTest/kotlin/androidx/room/paging/rxjava3/LimitOffsetRxPagingSourceTest.kt
+++ b/room/room-paging-rxjava3/src/androidTest/kotlin/androidx/room/paging/rxjava3/LimitOffsetRxPagingSourceTest.kt
@@ -87,7 +87,7 @@
@Test
fun initialLoad() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
val result = single.await() as LoadResult.Page
@@ -98,7 +98,7 @@
@Test
fun simpleAppend() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 15)
val result = single.await() as LoadResult.Page
@@ -109,7 +109,7 @@
@Test
fun simplePrepend() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 20)
val result = single.await() as LoadResult.Page
@@ -120,7 +120,7 @@
@Test
fun initialLoad_invalidationTracker_isRegistered() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
// run loadSingle to register InvalidationTracker
@@ -131,7 +131,7 @@
@Test
fun nonInitialLoad_invalidationTracker_isRegistered() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 20)
// run loadSingle to register InvalidationTracker
@@ -142,7 +142,7 @@
@Test
fun refresh_singleImmediatelyReturn() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
@@ -163,7 +163,7 @@
@Test
fun append_singleImmediatelyReturn() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 10)
@@ -184,7 +184,7 @@
@Test
fun prepend_singleImmediatelyReturn() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 15)
@@ -205,7 +205,7 @@
@Test
fun dbUpdate_invalidatesPagingSource() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 50)
@@ -218,7 +218,7 @@
assertFalse(pagingSource.invalid)
// this should cause refreshVersionsSync to invalidate pagingSource
- db.dao.addItem(TestItem(113))
+ db.getDao().addItem(TestItem(113))
countingTaskExecutorRule.drainTasks(500, TimeUnit.MILLISECONDS)
assertTrue(pagingSource.invalid)
@@ -230,7 +230,7 @@
@Test
fun append_returnsInvalid() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 50)
@@ -248,7 +248,7 @@
@Test
fun prepend_returnsInvalid() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 50)
@@ -268,7 +268,7 @@
@Test
fun refresh_consecutively() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.refresh()
val result = single.await() as LoadResult.Page
@@ -286,7 +286,7 @@
@Test
fun append_consecutively() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.append(key = 15)
@@ -310,7 +310,7 @@
@Test
fun prepend_consecutively() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
val single = pagingSource.prepend(key = 15)
@@ -334,7 +334,7 @@
@Test
fun refreshAgain_afterDispose() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
var isDisposed = false
@@ -359,7 +359,7 @@
@Test
fun appendAgain_afterDispose() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
var isDisposed = false
@@ -384,7 +384,7 @@
@Test
fun prependAgain_afterDispose() = setupAndRun { db ->
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(db)
var isDisposed = false
@@ -416,7 +416,7 @@
).setQueryExecutor(queryExecutor)
.build()
- testDb.dao.addAllItems(ITEMS_LIST)
+ testDb.getDao().addAllItems(ITEMS_LIST)
queryExecutor.executeAll() // add items first
runTest {
@@ -454,7 +454,7 @@
LimitOffsetTestDb::class.java
).build()
- testDb.dao.addAllItems(ITEMS_LIST)
+ testDb.getDao().addAllItems(ITEMS_LIST)
val pagingSource = LimitOffsetRxPagingSourceImpl(testDb)
runBlocking {
@@ -489,7 +489,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val single = pagingSource.refresh()
val result = single.await() as LoadResult.Page
assertThat(result.data).containsExactlyElementsIn(
@@ -508,7 +508,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val single = pagingSource.append(key = 15)
val result = single.await() as LoadResult.Page
assertThat(result.data).containsExactlyElementsIn(
@@ -527,7 +527,7 @@
}
}
- db.dao.addAllItems(ITEMS_LIST)
+ db.getDao().addAllItems(ITEMS_LIST)
val single = pagingSource.prepend(key = 15)
val result = single.await() as LoadResult.Page
assertThat(result.data).containsExactlyElementsIn(
@@ -672,7 +672,7 @@
@Database(entities = [TestItem::class], version = 1, exportSchema = false)
abstract class LimitOffsetTestDb : RoomDatabase() {
- abstract val dao: TestItemDao
+ abstract fun getDao(): TestItemDao
}
@Entity(tableName = "TestItem")
diff --git a/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetPagingSourceTest.kt b/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetPagingSourceTest.kt
index 65518e8..6743669 100644
--- a/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetPagingSourceTest.kt
+++ b/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetPagingSourceTest.kt
@@ -68,7 +68,7 @@
ApplicationProvider.getApplicationContext(),
LimitOffsetTestDb::class.java,
).build()
- dao = database.dao
+ dao = database.getDao()
}
@After
@@ -735,7 +735,7 @@
it.run()
}.setQueryExecutor(queryExecutor)
.build()
- dao = db.dao
+ dao = db.getDao()
}
@After
diff --git a/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetTestDb.kt b/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetTestDb.kt
index 8d31c44..6a9c989 100644
--- a/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetTestDb.kt
+++ b/room/room-paging/src/androidTest/kotlin/androidx/room/paging/LimitOffsetTestDb.kt
@@ -21,5 +21,5 @@
@Database(entities = [TestItem::class], version = 1, exportSchema = false)
abstract class LimitOffsetTestDb : RoomDatabase() {
- abstract val dao: TestItemDao
+ abstract fun getDao(): TestItemDao
}
diff --git a/room/room-runtime/build.gradle b/room/room-runtime/build.gradle
index 8ba82d1..9d0c517 100644
--- a/room/room-runtime/build.gradle
+++ b/room/room-runtime/build.gradle
@@ -219,10 +219,6 @@
add("kspAndroidAndroidTest", project(":room:room-compiler"))
}
-ksp {
- arg("room.generateKotlin", "true")
-}
-
androidx {
name = "Room-Runtime"
type = LibraryType.PUBLISHED_LIBRARY