• Home
  • History
  • Annotate
  • only in /frameworks/support/room/
History log of /frameworks/support/room/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d7d117aae8900092b7def215c4281ec88625b2a0 23-Apr-2018 Owais Ali <owaisali@google.com> Fix Room ProGuard rules to keep all types extending RoomDatabase regardless of modifiers.

This fixes an issue where non-public types would get ProGuarded causing issues elsewhere.

Change-Id: Ia15b9ee67a7d6cecf2ef8fe49b3e9f42eb12795e
Test: Verified change in Google3 with impacted project.
Fixes: 78363334
untime/proguard-rules.pro
c21394d1dcb24518061aabde879baff891a426e3 25-May-2018 Sergey Vasilinets <sergeyv@google.com> room-compiler facelift

Fix warnings, use more effective operators (mapNotNull / first),
clean unused methods / fields etc

Test: ./gradlew :room:room-compiler:test
Change-Id: I16a0cbc8643c3ad1787219abc7f2f128a65c0fb9
ompiler/src/main/kotlin/androidx/room/ext/element_ext.kt
ompiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/androidx/room/ext/string_ext.kt
ompiler/src/main/kotlin/androidx/room/log/RLog.kt
ompiler/src/main/kotlin/androidx/room/preconditions/Checks.kt
ompiler/src/main/kotlin/androidx/room/processor/Context.kt
ompiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/GuavaOptionalQueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/OptionalQueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/verifier/DatabaseVerificaitonErrors.kt
ompiler/src/main/kotlin/androidx/room/vo/EmbeddedField.kt
ompiler/src/main/kotlin/androidx/room/vo/Entity.kt
ompiler/src/main/kotlin/androidx/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/FieldReadWriteWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/QueryWriter.kt
ompiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/androidx/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/TransactionMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/androidx/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
7d2309c06787d20bafe9582e1f47d106b624ab59 22-May-2018 Yuichi Araki <yaraki@google.com> Fix flaking DataSourceFactoryTest

Test: DataSourceFactoryTest 50 times
Change-Id: Ice0743546381a18512616ce073d9963cdde6eb75
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/DataSourceFactoryTest.java
4ee553a06e6d9800123bb9463e77bc8554599ef2 11-May-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of 8c7ba17f0a8d862f2de744e5bf5879a7e175927d to pi-preview1-androidx-dev

BUG: None
Test: I solemnly swear I tested this conflict resolution.
Change-Id: I8e651d666173fec59d64ec722b18572d6f28da91
8c7ba17f0a8d862f2de744e5bf5879a7e175927d 11-May-2018 Yigit Boyar <yboyar@google.com> Do not call onOpen if we'll close the db

This CL fixes a bug where we would call onOpen on a database that we
will close. This causes Room's invalidation tracker to be initialized
with a closed database, breaking all invalidation tracking post
migration.

Bug: 79362399
Test: JournalDbPostMigrationTest
Change-Id: I6bf7714717b731ac3c78dedef167fcc0795d46a0
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/JournalDbPostMigrationTest.java
1c8e8ba111d7473885c2ab0c5a34e866dba5b8c2 06-May-2018 Yigit Boyar <yboyar@google.com> Merge "Add back RoomOpenHelper(DatabaseConfiguration, Delegate, String)" into pi-preview1-androidx-dev
0bf1c211603a37b9cbc2431999d58a8ea085ff5a 06-May-2018 Sergey Vasilinets <sergeyv@google.com> Add back RoomOpenHelper(DatabaseConfiguration, Delegate, String)

So code generated with annotation processor 1.0.0 is compatible with
new runtime
Test: ¯\_(ツ)_/¯

Change-Id: Id4eb19b8acff9acc0f148e7d1795db7086d0f72f
untime/src/main/java/androidx/room/RoomOpenHelper.java
bc146bc75947623a2a819a1798db35223bc55704 06-May-2018 Sergey Vasilinets <sergeyv@google.com> DO NOT MERGE: Add back RoomOpenHelper(DatabaseConfiguration, Delegate, String)

So code generated with annotation processor 1.0.0 is compatible with
runtime 1.1.0

Change-Id: I99e90586b75498df10f6f58dd819a366cdf19fd2
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
fbdf0efb750162aa24df0f1a24c8420f1c780ac7 26-Apr-2018 Aurimas Liutikas <aurimas@google.com> Merge app-toolkit build into support library.

Test: ./gradlew buildOnServer
Change-Id: Id654438ed5726026cb3bec6047785bb0c67f158a
Merged-In: Id654438ed5726026cb3bec6047785bb0c67f158a
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/JournalDbPostMigrationTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WriteAheadLoggingTest.java
0e87fcf7a6a7df8d169c73a6b6b83009e70e17f3 02-May-2018 Aurimas Liutikas <aurimas@google.com> Only run BookDaoTest that uses Optional on API24+

Test: None
Change-Id: Ia62e72cf69a4d3f1b7e3a160014fd9ad5651337c
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/BooksDaoTest.kt
7f7a6e75db5e431d72927da9f705bb7976d0e469 01-May-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of 470f5b14fe734bf35294404d02bd2304a30d1c4e to pi-preview1-androidx-dev

BUG: None
Test: I solemnly swear I tested this conflict resolution.
Change-Id: I45bffee2173ae1f82ad6bf74916334348bbcd3e4
688dc7228c06b8abebf9dbbcbbe50d9dbb836618 01-May-2018 android-build-team Robot <android-build-team-robot@google.com> Merge "resolve merge conflicts of e04ae0342b521502855e61fe70eb3078e9380d4f to pi-preview1-androidx-dev" into pi-preview1-androidx-dev
470f5b14fe734bf35294404d02bd2304a30d1c4e 30-Apr-2018 Yigit Boyar <yboyar@google.com> Move to kotlin 1.2.41

This also updates kotlin metadata to 1.4.0 which brings removes
dependency on kotlin compiler to avoid future brekages.

I've locally tested a project w/ kotlin 1.2.20 and 1.2.0 to
ensure that kotlin-metadata is backwards compatible.

Also updated room version to rc1

Bug: 78328708
Test: existing tests pass
Change-Id: If183595d748490daa4db4d0295d725a1f24e9007
ompiler/src/main/kotlin/android/arch/persistence/room/ext/KotlinMetadataProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
beda5774013b4e2ef1e2d445b867f7ede5603d42 25-Apr-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of e04ae0342b521502855e61fe70eb3078e9380d4f to pi-preview1-androidx-dev

BUG: None
Test: I solemnly swear I tested this conflict resolution.
Change-Id: I26585d4395ce0ee524fa4338423d3a124cdec45c
e04ae0342b521502855e61fe70eb3078e9380d4f 25-Apr-2018 Yigit Boyar <yboyar@google.com> Merge "When a migration happens, re-open the database" into oc-mr1-jetpack-dev
c1db4e05c436f71ff44bc4bf45412202519e5ae1 24-Apr-2018 Yigit Boyar <yboyar@google.com> Merge "resolve merge conflicts of 53bd414cca00f4d7172b6caba513a477195bed47 to pi-preview1-androidx-dev" into pi-preview1-androidx-dev
am: 5b18334613

Change-Id: Ie83f3da55cd182b3e44e8b6c6608fdeebe24b84f
f841d6b7490821ca9a843a673a89d41b266f280d 21-Apr-2018 Yigit Boyar <yboyar@google.com> When a migration happens, re-open the database

Bug: 78359448
Test: JournalDbPostMigrationTest
Change-Id: I1221315f49c38e95fddada543a0ec6a29f4b9747
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/databases/journal-db/journal-db
ntegration-tests/testapp/databases/journal-db/journal-db-journal
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/JournalDbPostMigrationTest.java
39804378a0864f76c070670f4b16867c1fb491a9 24-Apr-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of 53bd414cca00f4d7172b6caba513a477195bed47 to pi-preview1-androidx-dev

BUG: None
Test: I solemnly swear I tested this conflict resolution.
Change-Id: If741ea2c57d4ac7516ced4c7e881cc51b24a5984
53bd414cca00f4d7172b6caba513a477195bed47 22-Apr-2018 Yigit Boyar <yboyar@google.com> Handle generic types properly in Embedded fields

Bug: 78375917
Test: PojoProcessorTest, EmbeddedTest
Change-Id: I5a47e278051b271e6be54d79ef7aa414a7679331
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/EmbeddedTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/GenericBaseClass.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndGenericPet.java
d2f4beab6e3aebaef7020639ec519968c00cb5aa 19-Apr-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of cd7a2402efc74d6d676b1966464307bb58907321 to pi-preview1-androidx-dev
am: 26038b2b81

Change-Id: I5dd252af68e36de25ae9812bac5987115201c616
26038b2b81caa477ba65593de1d7ea370cbe6a0b 19-Apr-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of cd7a2402efc74d6d676b1966464307bb58907321 to pi-preview1-androidx-dev

BUG: None
Test: I solemnly swear I tested this conflict resolution.
Change-Id: Ic1c98cd8a0b515de9dcdce73030d4082116c7404
5e4d488036d51131bf4c97102fed7905d88d086d 19-Apr-2018 Yigit Boyar <yboyar@google.com> Handle Kotlin to Java Relations

When a Kotlin POJO references a relation entity that was defined in
Java, it generates a wildcard type, which triggers a compilation
failure.

This CL fixes the issue by dropping the wildcard while processing.
We probably need to change other places where we might read wildcard
as well but we are at beta2 so it would be a risky release at this
point. + this only happens in a weird case where code is generated
by kotlin.

Also set the version to beta3 for the release and removed some
unnecessary schemas from the kotlin demo

Bug:78199923
Test: PojoProcessorTest, QueryMethodProcessorTest, BooksDao (for
codegen)
Change-Id: I91e4facdfaf0d0f0e3d56ccc443e1b1c1d423c94
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.BooksDatabase/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/TestDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/BookWithJavaEntity.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/JavaEntity.java
ab42a4157a14ffcd4ed84e07ea13859b97cbbe7c 06-Apr-2018 Yuichi Araki <yaraki@google.com> Merge "resolve merge conflicts of 66af5edf83354a15415c822b11546c21bc779e5f to pi-preview1-androidx-dev" into pi-preview1-androidx-dev
am: c590f06a22

Change-Id: I7bf9d981631e323acfa7b3b9da40d3cb649b78a8
bd5b21c4f48116401194463e12b266b2dfc4a5a1 06-Apr-2018 Yuichi Araki <yaraki@google.com> resolve merge conflicts of 66af5edf83354a15415c822b11546c21bc779e5f to pi-preview1-androidx-dev

Test: I solemnly swear I tested this conflict resolution.
Change-Id: I6726038d2de9c556280f3011eb779a683c3a8331
8ba282c1e5f5833326a6ec5ce706284f2ba396bd 06-Apr-2018 Yigit Boyar <yboyar@google.com> Merge "resolve merge conflicts of 2a49185d705b44ce82359c07a3747549a8eaaf4f to pi-preview1-androidx-dev" into pi-preview1-androidx-dev
am: 67594970e0

Change-Id: I05a500ff99dacf1e1a5d69704c2fd7fc97578dfb
67594970e0438d34a0852d2f3635af266b0d69b9 06-Apr-2018 Yigit Boyar <yboyar@google.com> Merge "resolve merge conflicts of 2a49185d705b44ce82359c07a3747549a8eaaf4f to pi-preview1-androidx-dev" into pi-preview1-androidx-dev
b8986482439c52235167feadb7f1bd617952e112 04-Apr-2018 Chris Craik <ccraik@google.com> Merge "Add initial rxjava2 support to Paging" into pi-preview1-androidx-dev
am: f257c8d2e0

Change-Id: Ib7d22c9b20ab72b23128cd335f83ec5cd3a14d31
4ada60c7444de59a3ada71c260b334da14801587 04-Apr-2018 Chris Craik <ccraik@google.com> Merge "Add initial rxjava2 support to Paging - DO NOT MERGE" into oc-mr1-jetpack-dev
66af5edf83354a15415c822b11546c21bc779e5f 04-Apr-2018 Yuichi Araki <yaraki@google.com> Merge "Skip VACUUM for clearAllTables in a transaction" into oc-mr1-jetpack-dev
368e82c2afbe04c7d113eeed6deb901debae0272 13-Feb-2018 Chris Craik <ccraik@google.com> Add initial rxjava2 support to Paging

Adds RxPagedListBuilder to provide Observable<PagedList> and
Flowable<PagedList>.

Fixes: 75977346
Test: manually ran RoomPagedListRxActivity
Test: RxPagedListTest
Test: ./gradlew runBuildServerCompilationTasks

Change-Id: I7f4a83a0f64ed6938afb40a7de5ac70a951b3cfd
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/RoomPagedListRxActivity.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
ntegration-tests/testapp/src/main/res/values/strings.xml
66b879de939db087f42720c1798a69d7648801a8 02-Apr-2018 Yuichi Araki <yaraki@google.com> Skip VACUUM for clearAllTables in a transaction

Skip executing VACUUM if clearAllTables is run in a transaction.

Test: ClearAllTablesTest
Bug: 77235565
Change-Id: I25554b0442e712aba6cf2024be13b537273e071b
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ClearAllTablesTest.java
fff563e49e127ad2b949f14a22534d6503fb21f5 04-Apr-2018 Jason Monk <jmonk@google.com> Add retentions to IntDefs that don't have them

Test: build
Bug: 77482321
Change-Id: I940e7aeca3f5c4e852d2ee8522a853c921d42545
ommon/src/main/java/androidx/room/ForeignKey.java
7c8485a42335f26210b00aa17e4077e035d034e1 03-Apr-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of 2a49185d705b44ce82359c07a3747549a8eaaf4f to pi-preview1-androidx-dev

Test: I solemnly swear I tested this conflict resolution.
Change-Id: I5ed6de8c3b56b37ccc86b6cdfd2f1da565c32821
bc5aa656afdb920a2756cecb29617b82aac91c07 13-Feb-2018 Chris Craik <ccraik@google.com> Add initial rxjava2 support to Paging - DO NOT MERGE

Adds RxPagedListBuilder to provide Observable<PagedList> and
Flowable<PagedList>.

Fixes: 75977346
Test: manually ran RoomPagedListRxActivity
Test: RxPagedListTest
Test: ./gradlew runBuildServerCompilationTasks

Change-Id: I7f4a83a0f64ed6938afb40a7de5ac70a951b3cfd
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListRxActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
ntegration-tests/testapp/src/main/res/values/strings.xml
2a49185d705b44ce82359c07a3747549a8eaaf4f 03-Apr-2018 Yigit Boyar <yboyar@google.com> FIx RxJava Single & Maybe queries

We had a bug where the generated code for RxJava's Single and
Maybe would release the RoomSQLQuery object they use after the
first run. This would create an issue if the developer hold onto
the Single / Maybe and try to use it again. By that time, we would
re-use the query holder for another query.

Now generated code uses finalizer to release the query. It is
questionable whether it is worth doing the finalize block but
for consistency w/ other generated code, i'm keeping it.

Bug:76031240
Test: RxJava2Test
Change-Id: I6005995addfc8aa529c47e8f1d5bc653bc7f1415
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RxCallableQueryResultBinder.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2Test.java
77f8712e8b5193b2c99d7591d65aeaa200af9e33 30-Mar-2018 Jake Wharton <jakew@google.com> Add private constructors to static utility classes.

Bug: 37063037
Test: ./gradlew -p app-toolkit assAnT (with PrivateConstructorForUtilityClass enabled)
Change-Id: Id0e3fb0e6ae8d727de65af88546c89197e512958
ntegration-tests/testapp/src/androidTest/java/androidx/room/InvalidationTrackerTrojan.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestUtil.java
23b05b05914468496d8b39fcf8d8662ca7f3bddb 30-Mar-2018 Jake Wharton <jakew@google.com> Deprecate constructors on static utility classes, hide others.

Bug: 37063037
Test: ./gradlew -p app-toolkit aEP (with PrivateConstructorForUtilityClass enabled)
Change-Id: I94da25c6349ae4d6a8b874c605ef25776059c03d
ommon/api/current.txt
ommon/src/main/java/androidx/room/RoomMasterTable.java
ommon/src/main/java/androidx/room/RoomWarnings.java
igration/src/main/java/androidx/room/migration/bundle/BundleUtil.java
igration/src/main/java/androidx/room/migration/bundle/SchemaEqualityUtil.java
untime/api/current.txt
untime/src/main/java/androidx/room/Room.java
untime/src/main/java/androidx/room/util/StringUtil.java
xjava2/api/current.txt
xjava2/src/main/java/androidx/room/RxRoom.java
8fd4a7bd57e102cda143fa113751e92ff79527e9 26-Mar-2018 Jake Wharton <jakew@google.com> Use flatMapMaybe to reduce intermediate operator count.

Test: ./gradlew -p app-toolkit :room:room-rxjava2:build
Bug: 76420119
Change-Id: Id2539cda7365f121a58a0b1b18258e54d93e151c
xjava2/src/main/java/androidx/room/RxRoom.java
5e2eb40367506c8f7aabe08ae78762d788a195f3 22-Mar-2018 Sergey Vasilinets <sergeyv@google.com> Fix updateApi/checkApi for java modules

Test: ./gradlew updateApi
fixes: 76166297
Change-Id: I1d9d85e31d780de6dac08c749dd3f8533f8c4c88
ommon/api/current.txt
ddee2b5170ae257a7b2494f8aaa8459ebed806dc 22-Mar-2018 Aurimas Liutikas <aurimas@google.com> Move executors to androidx.arch.core.executor.

Intially we moved them to androidx.executor but that does not quite work
as these classes are still in androidx.arch.core:core-runtime.

Bug: 74405443
Test: ./gradlew assembleDebug
Change-Id: If1216a617ed7c98e3b7c32af7e10246527a292a6
ompiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
ompiler/src/test/kotlin/androidx/room/testing/test_util.kt
uava/src/main/java/androidx/room/guava/GuavaRoom.java
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/TestDatabaseTest.kt
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/DataSourceFactoryTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FunnyNamedDaoTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RawQueryTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/CustomerViewModel.java
untime/src/main/java/androidx/room/InvalidationTracker.java
untime/src/main/java/androidx/room/RoomDatabase.java
untime/src/test/java/androidx/room/InvalidationTrackerTest.java
xjava2/src/main/java/androidx/room/RxRoom.java
xjava2/src/test/java/androidx/room/RxRoomTest.java
ba069d50913c3fb250bb60ec310439db36895337 09-Mar-2018 Alan Viverette <alanv@google.com> DO NOT MERGE. Migrate app-toolkit projects to androidx

Bug: 74405443
Test: ./gradlew createArchive
Change-Id: Iae6f83cc396dbcdc5ae2a98793e9c7c61d94367e
ommon/api/1.0.0.txt
ommon/api_legacy/1.0.0.txt
ommon/src/main/java/android/arch/persistence/room/ColumnInfo.java
ommon/src/main/java/android/arch/persistence/room/Dao.java
ommon/src/main/java/android/arch/persistence/room/Database.java
ommon/src/main/java/android/arch/persistence/room/Delete.java
ommon/src/main/java/android/arch/persistence/room/Embedded.java
ommon/src/main/java/android/arch/persistence/room/Entity.java
ommon/src/main/java/android/arch/persistence/room/ForeignKey.java
ommon/src/main/java/android/arch/persistence/room/Ignore.java
ommon/src/main/java/android/arch/persistence/room/Index.java
ommon/src/main/java/android/arch/persistence/room/Insert.java
ommon/src/main/java/android/arch/persistence/room/OnConflictStrategy.java
ommon/src/main/java/android/arch/persistence/room/PrimaryKey.java
ommon/src/main/java/android/arch/persistence/room/Query.java
ommon/src/main/java/android/arch/persistence/room/RawQuery.java
ommon/src/main/java/android/arch/persistence/room/Relation.java
ommon/src/main/java/android/arch/persistence/room/RoomMasterTable.java
ommon/src/main/java/android/arch/persistence/room/RoomWarnings.java
ommon/src/main/java/android/arch/persistence/room/SkipQueryVerification.java
ommon/src/main/java/android/arch/persistence/room/Transaction.java
ommon/src/main/java/android/arch/persistence/room/TypeConverter.java
ommon/src/main/java/android/arch/persistence/room/TypeConverters.java
ommon/src/main/java/android/arch/persistence/room/Update.java
ommon/src/main/java/androidx/room/ColumnInfo.java
ommon/src/main/java/androidx/room/Dao.java
ommon/src/main/java/androidx/room/Database.java
ommon/src/main/java/androidx/room/Delete.java
ommon/src/main/java/androidx/room/Embedded.java
ommon/src/main/java/androidx/room/Entity.java
ommon/src/main/java/androidx/room/ForeignKey.java
ommon/src/main/java/androidx/room/Ignore.java
ommon/src/main/java/androidx/room/Index.java
ommon/src/main/java/androidx/room/Insert.java
ommon/src/main/java/androidx/room/OnConflictStrategy.java
ommon/src/main/java/androidx/room/PrimaryKey.java
ommon/src/main/java/androidx/room/Query.java
ommon/src/main/java/androidx/room/RawQuery.java
ommon/src/main/java/androidx/room/Relation.java
ommon/src/main/java/androidx/room/RoomMasterTable.java
ommon/src/main/java/androidx/room/RoomWarnings.java
ommon/src/main/java/androidx/room/SkipQueryVerification.java
ommon/src/main/java/androidx/room/Transaction.java
ommon/src/main/java/androidx/room/TypeConverter.java
ommon/src/main/java/androidx/room/TypeConverters.java
ommon/src/main/java/androidx/room/Update.java
ompiler/build.gradle
ompiler/src/main/kotlin/android/arch/persistence/room/RoomProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/KotlinMetadataProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/string_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/type_mirror_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/log/RLog.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParserErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/preconditions/Checks.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/Context.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/OnConflictProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutParameterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/TransactionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/cache/Cache.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/ObservableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/QueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/CursorQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceFactoryQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/FlowableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/GuavaListenableFutureQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/InstantQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveDataQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/RxCallableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/BaseObservableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/DataSourceFactoryQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/GuavaListenableFutureQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/GuavaOptionalQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/OptionalQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PositionalDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RxCallableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TransactionWrapper.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedPrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/ByteArrayColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CompositeTypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CustomTypeConverterWrapper.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/StatementValueBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/ColumnInfo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerificaitonErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerifier.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/QueryResultInfo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/jdbc_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/CallType.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Constructor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/CustomTypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Dao.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DaoMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Database.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/EmbeddedField.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Entity.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Field.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldWithIndex.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ForeignKeyAction.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Index.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Pojo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/PojoMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RawQueryMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Relation.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RelationCollector.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/SchemaIdentityKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ShortcutMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ShortcutQueryParameter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/TransactionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/UpdateMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Warning.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityDeleteComparator.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/FieldReadWriteWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/PreparedStatementWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/QueryWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/RelationCollectorMethodWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/TableInfoValidationWriter.kt
ompiler/src/main/kotlin/androidx/room/RoomProcessor.kt
ompiler/src/main/kotlin/androidx/room/ext/KotlinMetadataProcessor.kt
ompiler/src/main/kotlin/androidx/room/ext/element_ext.kt
ompiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/androidx/room/ext/string_ext.kt
ompiler/src/main/kotlin/androidx/room/ext/type_mirror_ext.kt
ompiler/src/main/kotlin/androidx/room/log/RLog.kt
ompiler/src/main/kotlin/androidx/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/androidx/room/parser/ParserErrors.kt
ompiler/src/main/kotlin/androidx/room/parser/SqlParser.kt
ompiler/src/main/kotlin/androidx/room/preconditions/Checks.kt
ompiler/src/main/kotlin/androidx/room/processor/Context.kt
ompiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/OnConflictProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/PojoMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/RawQueryMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/ShortcutParameterProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/TransactionMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/androidx/room/processor/cache/Cache.kt
ompiler/src/main/kotlin/androidx/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/androidx/room/solver/ObservableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/QueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/CursorQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/DataSourceFactoryQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/FlowableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/GuavaListenableFutureQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/InstantQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/LiveDataQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/binderprovider/RxCallableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/androidx/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/BaseObservableQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/DataSourceFactoryQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/GuavaListenableFutureQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/GuavaOptionalQueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/OptionalQueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/PositionalDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/RxCallableQueryResultBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/query/result/TransactionWrapper.kt
ompiler/src/main/kotlin/androidx/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/BoxedPrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/ByteArrayColumnTypeAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/CompositeTypeConverter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/androidx/room/solver/types/CustomTypeConverterWrapper.kt
ompiler/src/main/kotlin/androidx/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/StatementValueBinder.kt
ompiler/src/main/kotlin/androidx/room/solver/types/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/androidx/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/androidx/room/verifier/ColumnInfo.kt
ompiler/src/main/kotlin/androidx/room/verifier/DatabaseVerificaitonErrors.kt
ompiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
ompiler/src/main/kotlin/androidx/room/verifier/QueryResultInfo.kt
ompiler/src/main/kotlin/androidx/room/verifier/jdbc_ext.kt
ompiler/src/main/kotlin/androidx/room/vo/CallType.kt
ompiler/src/main/kotlin/androidx/room/vo/Constructor.kt
ompiler/src/main/kotlin/androidx/room/vo/CustomTypeConverter.kt
ompiler/src/main/kotlin/androidx/room/vo/Dao.kt
ompiler/src/main/kotlin/androidx/room/vo/DaoMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/Database.kt
ompiler/src/main/kotlin/androidx/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/EmbeddedField.kt
ompiler/src/main/kotlin/androidx/room/vo/Entity.kt
ompiler/src/main/kotlin/androidx/room/vo/Field.kt
ompiler/src/main/kotlin/androidx/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/androidx/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/androidx/room/vo/FieldWithIndex.kt
ompiler/src/main/kotlin/androidx/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/androidx/room/vo/ForeignKeyAction.kt
ompiler/src/main/kotlin/androidx/room/vo/Index.kt
ompiler/src/main/kotlin/androidx/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/Pojo.kt
ompiler/src/main/kotlin/androidx/room/vo/PojoMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/androidx/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/androidx/room/vo/RawQueryMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/Relation.kt
ompiler/src/main/kotlin/androidx/room/vo/RelationCollector.kt
ompiler/src/main/kotlin/androidx/room/vo/SchemaIdentityKey.kt
ompiler/src/main/kotlin/androidx/room/vo/ShortcutMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/ShortcutQueryParameter.kt
ompiler/src/main/kotlin/androidx/room/vo/TransactionMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/UpdateMethod.kt
ompiler/src/main/kotlin/androidx/room/vo/Warning.kt
ompiler/src/main/kotlin/androidx/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/EntityDeleteComparator.kt
ompiler/src/main/kotlin/androidx/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/FieldReadWriteWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/PreparedStatementWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/QueryWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/RelationCollectorMethodWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/kotlin/androidx/room/writer/TableInfoValidationWriter.kt
ompiler/src/main/resources/META-INF/services/javax.annotation.processing.Processor
ompiler/src/test/data/common/input/Book.java
ompiler/src/test/data/common/input/ComputableLiveData.java
ompiler/src/test/data/common/input/DataSource.java
ompiler/src/test/data/common/input/LiveData.java
ompiler/src/test/data/common/input/MultiPKeyEntity.java
ompiler/src/test/data/common/input/NotAnEntity.java
ompiler/src/test/data/common/input/PositionalDataSource.java
ompiler/src/test/data/common/input/Rx2Room.java
ompiler/src/test/data/common/input/User.java
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/input/DeletionDao.java
ompiler/src/test/data/daoWriter/input/UpdateDao.java
ompiler/src/test/data/daoWriter/input/WriterDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/data/databasewriter/input/ComplexDatabase.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/android/arch/persistence/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseDaoTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/TransactionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAssignmentTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/InProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ompiler/src/test/kotlin/android/arch/persistence/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/vo/EntityTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/vo/IndexTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DatabaseWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriterTest.kt
ompiler/src/test/kotlin/androidx/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/androidx/room/processor/BaseDaoTest.kt
ompiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/androidx/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/androidx/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/TransactionMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/processor/UpdateMethodProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/androidx/room/solver/TypeAssignmentTest.kt
ompiler/src/test/kotlin/androidx/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/androidx/room/testing/InProcessorTest.kt
ompiler/src/test/kotlin/androidx/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
ompiler/src/test/kotlin/androidx/room/testing/test_util.kt
ompiler/src/test/kotlin/androidx/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/androidx/room/vo/EntityTest.kt
ompiler/src/test/kotlin/androidx/room/vo/IndexTest.kt
ompiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
ompiler/src/test/kotlin/androidx/room/writer/EntityCursorConverterWriterTest.kt
ompiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
uava/build.gradle
uava/src/main/AndroidManifest.xml
uava/src/main/java/android/arch/persistence/room/guava/GuavaRoom.java
uava/src/main/java/androidx/room/guava/GuavaRoom.java
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.BooksDatabase/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/2.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/3.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/4.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/5.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/6.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/7.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.migration.MigrationDbKotlin/1.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.migration.MigrationDbKotlin/2.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.migration.MigrationDbKotlin/3.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.migration.MigrationDbKotlin/4.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.migration.MigrationDbKotlin/5.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.migration.MigrationDbKotlin/6.json
ntegration-tests/kotlintestapp/schemas/androidx.room.integration.kotlintestapp.migration.MigrationDbKotlin/7.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/TestDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BaseDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/DerivedDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/migration/MigrationDbKotlin.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/DependencyDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/ItemWithNullableConstructor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/LiveDataQueryTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/LiveDataTestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/RxJava2QueryTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestDatabaseTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Author.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Book.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/BookAuthor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/BookWithPublisher.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/DateConverter.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Lang.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/NoArgClass.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Publisher.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/PublisherWithBookSales.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/PublisherWithBooks.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/StringToIntListConverters.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/TestDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/dao/BaseDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/dao/DerivedDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/migration/MigrationDbKotlin.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/DependencyDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/ItemWithNullableConstructor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/LiveDataQueryTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/LiveDataTestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/RxJava2QueryTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/TestDatabaseTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/TestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/Author.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/Book.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/BookAuthor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/BookWithPublisher.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/DateConverter.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/Lang.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/NoArgClass.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/Publisher.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/PublisherWithBookSales.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/PublisherWithBooks.kt
ntegration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/vo/StringToIntListConverters.kt
ntegration-tests/kotlintestapp/src/main/AndroidManifest.xml
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/dao/DependencyDao.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/DataClassFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/EmbeddedFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/PojoFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/RelationFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/androidx/room/integration/kotlintestapp/dao/DependencyDao.kt
ntegration-tests/kotlintestapp/src/main/java/androidx/room/integration/kotlintestapp/vo/DataClassFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/androidx/room/integration/kotlintestapp/vo/EmbeddedFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/androidx/room/integration/kotlintestapp/vo/PojoFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/androidx/room/integration/kotlintestapp/vo/RelationFromDependency.kt
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/1.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/2.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/3.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/4.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/5.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/6.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/1.json
ntegration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/2.json
ntegration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/3.json
ntegration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/4.json
ntegration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/5.json
ntegration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/6.json
ntegration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/InvalidationTrackerTrojan.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/BlobEntityDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/FunnyNamedDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/PetCoupleDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/ProductDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/RawDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/SchoolDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/SpecificDogDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/ToyDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/WithClauseDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/DataSourceFactoryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ClearAllTablesTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/CollationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ConstructorTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/CustomDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DaoNameConflictTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DatabaseCallbackTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/EmbeddedTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ForeignKeyTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/FunnyNamedDaoTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/GenericEntityTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/IdentityDetectionTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/IndexingTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/InvalidationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/MainThreadCheckTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoWithRelationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PrimaryKeyTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryTransactionTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RawQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RelationWithReservedKeywordTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/WithClauseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/WriteAheadLoggingTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Address.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/AvgWeightByAge.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/BlobEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Coordinates.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Day.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/EmbeddedUserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/FunnyNamedEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/IntAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/IntegerAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/IntegerPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/NameAndLastName.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/ObjectPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Pet.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetAndToys.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetCouple.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetWithToyIds.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetsToys.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Product.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/School.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/SchoolRef.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Toy.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/User.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPet.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPetAdoptionDates.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPetNonNull.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserIdAndPetNames.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserWithPetsAndToys.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/InvalidationTrackerTrojan.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/BlobEntityDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/FunnyNamedDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/PetCoupleDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/ProductDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/RawDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/SchoolDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/SpecificDogDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/ToyDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/WithClauseDao.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/DataSourceFactoryTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ClearAllTablesTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CollationTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ConstructorTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CustomDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DaoNameConflictTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseCallbackTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/EmbeddedTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ForeignKeyTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FunnyNamedDaoTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/GenericEntityTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IdentityDetectionTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IndexingTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MainThreadCheckTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithRelationTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PrimaryKeyTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RawQueryTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RelationWithReservedKeywordTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WithClauseTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WriteAheadLoggingTest.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Address.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/AvgWeightByAge.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/BlobEntity.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Coordinates.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Day.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/EmbeddedUserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/FunnyNamedEntity.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/IntAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/IntegerAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/IntegerPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/NameAndLastName.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/ObjectPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Pet.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetAndToys.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetCouple.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetWithToyIds.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetsToys.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Product.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/School.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/SchoolRef.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Toy.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/User.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/UserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/UserAndPet.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/UserAndPetAdoptionDates.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/UserAndPetNonNull.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/UserIdAndPetNames.java
ntegration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/UserWithPetsAndToys.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomKeyedPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/Customer.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/LastNameAscCustomerDataSource.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/SampleDatabase.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/RoomKeyedPagedListActivity.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/Customer.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/LastNameAscCustomerDataSource.java
ntegration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/SampleDatabase.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
igration/api/1.0.0.txt
igration/api_legacy/1.0.0.txt
igration/build.gradle
igration/src/main/java/android/arch/persistence/room/migration/bundle/BundleUtil.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/DatabaseBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/EntityBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/FieldBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/ForeignKeyBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/IndexBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/PrimaryKeyBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/SchemaBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/SchemaEquality.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/SchemaEqualityUtil.java
igration/src/main/java/androidx/room/migration/bundle/BundleUtil.java
igration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.java
igration/src/main/java/androidx/room/migration/bundle/EntityBundle.java
igration/src/main/java/androidx/room/migration/bundle/FieldBundle.java
igration/src/main/java/androidx/room/migration/bundle/ForeignKeyBundle.java
igration/src/main/java/androidx/room/migration/bundle/IndexBundle.java
igration/src/main/java/androidx/room/migration/bundle/PrimaryKeyBundle.java
igration/src/main/java/androidx/room/migration/bundle/SchemaBundle.java
igration/src/main/java/androidx/room/migration/bundle/SchemaEquality.java
igration/src/main/java/androidx/room/migration/bundle/SchemaEqualityUtil.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/EntityBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/FieldBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/ForeignKeyBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/IndexBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/PrimaryKeyBundleTest.java
igration/src/test/java/androidx/room/migration/bundle/EntityBundleTest.java
igration/src/test/java/androidx/room/migration/bundle/FieldBundleTest.java
igration/src/test/java/androidx/room/migration/bundle/ForeignKeyBundleTest.java
igration/src/test/java/androidx/room/migration/bundle/IndexBundleTest.java
igration/src/test/java/androidx/room/migration/bundle/PrimaryKeyBundleTest.java
untime/api/1.0.0.txt
untime/api/1.1.0.txt
untime/api/current.txt
untime/api_legacy/1.0.0.txt
untime/api_legacy/1.1.0.txt
untime/api_legacy/current.txt
untime/build.gradle
untime/proguard-rules.pro
untime/src/androidTest/java/android/arch/persistence/room/migration/TableInfoTest.java
untime/src/androidTest/java/androidx/room/migration/TableInfoTest.java
untime/src/main/AndroidManifest.xml
untime/src/main/java/android/arch/persistence/room/DatabaseConfiguration.java
untime/src/main/java/android/arch/persistence/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/android/arch/persistence/room/EntityInsertionAdapter.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/Room.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
untime/src/main/java/android/arch/persistence/room/RoomSQLiteQuery.java
untime/src/main/java/android/arch/persistence/room/SharedSQLiteStatement.java
untime/src/main/java/android/arch/persistence/room/migration/Migration.java
untime/src/main/java/android/arch/persistence/room/package-info.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
untime/src/main/java/android/arch/persistence/room/util/StringUtil.java
untime/src/main/java/android/arch/persistence/room/util/TableInfo.java
untime/src/main/java/androidx/room/DatabaseConfiguration.java
untime/src/main/java/androidx/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/androidx/room/EntityInsertionAdapter.java
untime/src/main/java/androidx/room/InvalidationTracker.java
untime/src/main/java/androidx/room/Room.java
untime/src/main/java/androidx/room/RoomDatabase.java
untime/src/main/java/androidx/room/RoomOpenHelper.java
untime/src/main/java/androidx/room/RoomSQLiteQuery.java
untime/src/main/java/androidx/room/SharedSQLiteStatement.java
untime/src/main/java/androidx/room/migration/Migration.java
untime/src/main/java/androidx/room/package-info.java
untime/src/main/java/androidx/room/paging/LimitOffsetDataSource.java
untime/src/main/java/androidx/room/util/StringUtil.java
untime/src/main/java/androidx/room/util/TableInfo.java
untime/src/test/java/android/arch/persistence/room/BuilderTest.java
untime/src/test/java/android/arch/persistence/room/BuilderTest_TestDatabase_Impl.java
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
untime/src/test/java/android/arch/persistence/room/ObservedTableTrackerTest.java
untime/src/test/java/android/arch/persistence/room/RoomSQLiteQueryTest.java
untime/src/test/java/android/arch/persistence/room/SharedSQLiteStatementTest.java
untime/src/test/java/android/arch/persistence/room/util/StringUtilTest.java
untime/src/test/java/androidx/room/BuilderTest.java
untime/src/test/java/androidx/room/BuilderTest_TestDatabase_Impl.java
untime/src/test/java/androidx/room/InvalidationTrackerTest.java
untime/src/test/java/androidx/room/ObservedTableTrackerTest.java
untime/src/test/java/androidx/room/RoomSQLiteQueryTest.java
untime/src/test/java/androidx/room/SharedSQLiteStatementTest.java
untime/src/test/java/androidx/room/util/StringUtilTest.java
xjava2/api/1.0.0.txt
xjava2/api/1.1.0.txt
xjava2/api/current.txt
xjava2/api_legacy/1.0.0.txt
xjava2/api_legacy/1.1.0.txt
xjava2/api_legacy/current.txt
xjava2/build.gradle
xjava2/src/main/AndroidManifest.xml
xjava2/src/main/java/android/arch/persistence/room/EmptyResultSetException.java
xjava2/src/main/java/android/arch/persistence/room/RxRoom.java
xjava2/src/main/java/androidx/room/EmptyResultSetException.java
xjava2/src/main/java/androidx/room/RxRoom.java
xjava2/src/test/java/android/arch/persistence/room/RxRoomTest.java
xjava2/src/test/java/androidx/room/RxRoomTest.java
esting/api/1.0.0.txt
esting/api/1.1.0.txt
esting/api/current.txt
esting/api_legacy/1.0.0.txt
esting/api_legacy/1.1.0.txt
esting/api_legacy/current.txt
esting/build.gradle
esting/src/main/AndroidManifest.xml
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
esting/src/main/java/androidx/room/testing/MigrationTestHelper.java
3da5af26a5922a93cc64aab1a2ed4d909264a481 20-Mar-2018 Chris Craik <ccraik@google.com> DO NOT MERGE Update Lifecycles,Room,Paging versions

Bug: 75980370
Test: ./gradlew runBuildServerCompilationTasks

Change-Id: Ice9a8e94d2971a354ec633d963c466d8d839ce77
Merged-In: Ice9a8e94d2971a354ec633d963c466d8d839ce77
untime/api/1.1.0.txt
xjava2/api/1.1.0.txt
esting/api/1.1.0.txt
268cd3511f4d3b556892678cfd680860292fa89b 20-Mar-2018 Chris Craik <ccraik@google.com> Update Lifecycles,Room,Paging versions

Bug: 75980370
Test: ./gradlew runBuildServerCompilationTasks

Change-Id: Ice9a8e94d2971a354ec633d963c466d8d839ce77
untime/api/1.1.0.txt
xjava2/api/1.1.0.txt
esting/api/1.1.0.txt
e3d3270bc3d4fb87bb10fdf4d223ccc32ffbeae7 20-Mar-2018 Yigit Boyar <yboyar@google.com> Merge "Remove string query from @RawQuery :'(" into oc-mr1-jetpack-dev
am: a5ba9500ad

Change-Id: I3ca2edb1953c468211f3f8b047918c048fb853e5
a5ba9500add0dec1ec2b3e2841f665938fe985f2 20-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove string query from @RawQuery :'(" into oc-mr1-jetpack-dev
903a717d44390357b213ffd1c7f2bcf3ec3bedc4 20-Mar-2018 Yigit Boyar <yboyar@google.com> Merge "clearAllTables clears the data from file" into oc-mr1-jetpack-dev
am: a5f79fed53

Change-Id: Iacbca9f488a39b7bc1fc1ea6211a5cc25f2bb644
a5f79fed53373c3b4c0d5aa1a2a84169cb27084a 20-Mar-2018 Yigit Boyar <yboyar@google.com> Merge "clearAllTables clears the data from file" into oc-mr1-jetpack-dev
809a35ac827a1cd7f3394dcff7254c1423739fc8 16-Mar-2018 Yigit Boyar <yboyar@google.com> Remove string query from @RawQuery :'(

Also clarified docs to say that RawQuery is for read queries.

Bug: 74558066
Bug: 74588066
Test: existing tests pass
Change-Id: I655766dfe2c15b8e53292ae501c49295ebe72c43
ommon/src/main/java/android/arch/persistence/room/RawQuery.java
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/RawDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RawQueryTest.java
4c6a75b08a5aa137f53c77c95de1dbe3afebdf66 19-Mar-2018 shepshapard <shepshapard@google.com> Merge "Changing RoomDatabase.Builder.fallbackToDestructiveMigrationFrom param from Int... to int...." into oc-mr1-jetpack-dev
am: eab739fff3

Change-Id: I7724a2f953babf42985c18943a26fec83626c847
7a8b4c9ce824dff0416525ec33302d228901c899 15-Mar-2018 Yuichi Araki <yaraki@google.com> clearAllTables clears the data from file

Use PRAGMA wal_checkpoint and VACUUM to make sure that
RoomDatabase#clearAllTables clears the data chunk from the database
file.

Developers still need to close the database if they need to clear the
data immediately.

Bug: 74558066
Test: ClearAllTablesTest
Change-Id: I1e932f495ea6f4460f0460ac3fa7418f578d169f
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ClearAllTablesTest.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
ac06c84e94b65ee2d6ec5f1cd82e5d423ad0eb85 15-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "Switch paging to prebuilts of arch components"" into pi-preview1-androidx-dev
b7a0b6ffed669700e4a06ee953aff46034efa0a3 15-Mar-2018 Chris Craik <ccraik@google.com> Revert "Switch paging to prebuilts of arch components"

This didn't work.

This reverts commit 7036b1e96d72ecaf5097beb5006597d5f66f9aa0.

Change-Id: I19fdd00cf4838c24d430d64f8d4e31c1f48f9b89
ntegration-tests/testapp/build.gradle
eed1cacab66988de500612cf4c6af3bcb80402ef 14-Mar-2018 shepshapard <shepshapard@google.com> Changing RoomDatabase.Builder.fallbackToDestructiveMigrationFrom param from Int... to int....

Bug: 74558066
Test: android.arch.persistence.room.integration.testapp.migration.MigrationTest
android.arch.persistence.room.BuilderTest

Change-Id: I65a3e18bcdcb63225107ee6e8a86953c6376a18b
untime/api/current.txt
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
80dcc1a31d7501008cd47743b0dca190aa3c7946 14-Mar-2018 Yuichi Araki <yaraki@google.com> Merge "Do not try to create a table in identity check" into oc-mr1-jetpack-dev
am: e1d7aebf72

Change-Id: I9b56c8f1961ab2a50b0118abaddbc4264740b080
e1d7aebf72bad3123acbfebe1a5b68b772cf0b39 14-Mar-2018 Yuichi Araki <yaraki@google.com> Merge "Do not try to create a table in identity check" into oc-mr1-jetpack-dev
003725dcabf9f31e72edc68f524aac618ea95425 13-Mar-2018 Yigit Boyar <yboyar@google.com> Allow embedded and relation in raw query observed tables
am: 71d73407ef

Change-Id: Idb13951772d2379bffaad35a9f07dd759fc33651
71d73407ef17998685b29cc5c04cefb6d74e99c3 06-Mar-2018 Yigit Boyar <yboyar@google.com> Allow embedded and relation in raw query observed tables

RawQuery expects developer to list accessed tables in the
annotation. Many people got confused w/ the fact that it is
limited to the @Entity annotated classes. It becomes very
inconvenient to list all entities when you are fetching a
composite object (like an object w/ relations or embedded
fields).

This CL allows putting any java class there as long as it
has a relation or embedded field.

Bug: 74041772
Test: RawQueryProcessorTest, RawQueryTest (integration)
Change-Id: Ibf21ccb566a155a9ee9cee8075dd956c83056fe3
ommon/src/main/java/android/arch/persistence/room/RawQuery.java
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Pojo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RawQueryMethod.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/RawDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RawQueryTest.java
7036b1e96d72ecaf5097beb5006597d5f66f9aa0 02-Mar-2018 Chris Craik <ccraik@google.com> Switch paging to prebuilts of arch components

Bug: 74118020
Test: ./gradlew runBuildServerCompilationTasks
Test: tests in paging-common, paging-runtime, room-integration-tests:testapp
Change-Id: I4180ff8a97dbeb8368929809c52127cad96bedfa
ntegration-tests/testapp/build.gradle
da52e92788122462a748d6a232832915d9e4626b 07-Mar-2018 Alan Viverette <alanv@google.com> Merge "Restore OCR+2 following refactor" into pi-preview1-androidx-dev
am: 0f2a212c76

Change-Id: I962723f8bb323ba2a9e763e1bfdb63d58ce79c15
0f2a212c76519f9dcf223defefaf006dee06fe03 07-Mar-2018 Alan Viverette <alanv@google.com> Merge "Restore OCR+2 following refactor" into pi-preview1-androidx-dev
7ce96deb4511a8106d475e7cf8dfa13d2b05a3b6 06-Mar-2018 Yuichi Araki <yaraki@google.com> Do not try to create a table in identity check

The SQLiteDatabase object passed to the onOpen callback might be in an
intermediate state in WAL mode, and we sometimes get a read-only
connection.

Initially, we worked around it by explicitly getting a read-write
connection by wrapping write operations in a transaction, but it can
still fail from time to time.

This CL instead removes the write operation used in checking identity
hash. This does not change the surfacing behavior. If the Room master
table is dropped for some reason, the hash cannot be checked and an
exception is thrown. The only difference is that the master table can
only be recreated in onCreate or onUpgrade, not in onOpen.

Bug: 74214018
Test: IdentityDetectionTest and all existing tests
Change-Id: Ib5cc26c281915677ef819fb019b6e769b2dfda7e
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/IdentityDetectionTest.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
4c1511b35d23f2f8c13b6230bd242fd150fd34f8 07-Mar-2018 Alan Viverette <alanv@google.com> Merge "Restrict OCR+2 until refactor has landed" into pi-preview1-androidx-dev
am: 41d2c49fcf

Change-Id: I6faeca3c81748c909ef6c1b38e62d98f07ffba4c
d1f3854b28271f3570b644977e5db0abd8f8e366 07-Mar-2018 Alan Viverette <alanv@google.com> Restore OCR+2 following refactor

This reverts commit 5b9d0ba470eaa0eac195dc7cf6e2d4a8cb495074.

Change-Id: I99e677f343750135e73f38f7e1033a010e5b3d3a
WNERS
41d2c49fcf0538c4d516472f159339ec6af01cee 07-Mar-2018 Alan Viverette <alanv@google.com> Merge "Restrict OCR+2 until refactor has landed" into pi-preview1-androidx-dev
5b9d0ba470eaa0eac195dc7cf6e2d4a8cb495074 07-Mar-2018 Alan Viverette <alanv@google.com> Restrict OCR+2 until refactor has landed

Change-Id: Id22063aa23ae214fe144aaf6989ab54afe15a993
Fixes: 74263017
Test: gerrit
WNERS
30d56539dd324c01962231a00fe40092e7ef53a0 07-Mar-2018 Chris Craik <ccraik@google.com> Merge "Query accessedTableNames for DataSource.Factory, join them correctly" into oc-mr1-jetpack-dev am: e118c4150a
am: 6a08c33434

Change-Id: I69ffe839b987983f3bf62d919e40d238a1b545ff
6a08c3343437e966f9437e46412dd6f8774cd9fe 06-Mar-2018 Chris Craik <ccraik@google.com> Merge "Query accessedTableNames for DataSource.Factory, join them correctly" into oc-mr1-jetpack-dev
am: e118c4150a

Change-Id: Ie608c07b968e6bb44f8573767401886c9a648375
1b805d37217a328107a7ad021c877d3c224e5869 03-Mar-2018 Chris Craik <ccraik@google.com> Query accessedTableNames for DataSource.Factory, join them correctly

Fixes: 67993046
Fixes: 74128314
Test: QueryMethodProcessorTest, DataSourceFactoryTest
Change-Id: I63f745c5833fa3ca7728e8c71bcca1a4977b6a1d
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceFactoryQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/DataSourceFactoryQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PositionalDataSourceQueryResultBinder.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/DataSourceFactoryTest.java
6450bd7dec9f2e773b98c0f531cb125728a587ad 01-Mar-2018 Yuichi Araki <yaraki@google.com> Fix clearAllTables on APIs below 21
am: 3f426b1704

Change-Id: I2a863d29a4aa80ece2265be96bbdbddfa82a839f
1504e5d53b1e2aa03ee2544014f01f4f56706449 01-Mar-2018 Android Build Merger (Role) <noreply-android-build-merger@google.com> [automerger] Fix clearAllTables on APIs below 21 am: 3f426b1704

Change-Id: I8cc4540ca7e4c00b2f43444656a5f11056f0c150
3f426b1704c8037737ff3657d295ab23d978e9e2 27-Feb-2018 Yuichi Araki <yaraki@google.com> Fix clearAllTables on APIs below 21

PRAGMA defer_foreign_keys is ignored on API Levels below 21. This fixes
clearAllTables with foreign keys by sorting the tables to be deleted by
their reference dependencies.

Bug: 73906982
Test: ClearAllTablesTest#foreignKey on API Levels 16 and 19
Change-Id: I1ae866b92194ae708beed64adbb3f8628a6f9600
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Entity.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityDeleteComparator.kt
ompiler/src/test/kotlin/android/arch/persistence/room/vo/EntityTest.kt
2a2a02004f21d4d3050569ae8936990a53f5038e 01-Mar-2018 Yigit Boyar <yboyar@google.com> Merge "Escape android specific collations in db veriier" into oc-mr1-jetpack-dev
am: c294df3a62

Change-Id: I4a1f84d18227b523ecef4ff30b571f376f544b70
7eea7a06981f361dadbc5eec8ac6368e9fde2975 01-Mar-2018 Yigit Boyar <yboyar@google.com> resolve merge conflicts of db5bf4565f3f37f4ff73d65009c2bd23faf48a82 to pi-preview1-androidx-dev

Test: I solemnly swear I tested this conflict resolution.
Change-Id: I5deee5b77bad47cd29c3092457358b93c746e126
2988bb6a498d5fe8e919a62dadc19b995b42752d 01-Mar-2018 Yigit Boyar <yboyar@google.com> Merge "Parse kotlin query parameter names" into oc-mr1-jetpack-dev
am: 81e7f472a7

Change-Id: I76c2d75271d0bf20a304137fbb6fc0ee47183a7d
c294df3a626f2824a744dafd1e1647232c891cb5 01-Mar-2018 Yigit Boyar <yboyar@google.com> Merge "Escape android specific collations in db veriier" into oc-mr1-jetpack-dev
593377cd41890f5888d5d7264d978562fef23148 01-Mar-2018 Yigit Boyar <yboyar@google.com> Merge changes from topic "am-fff17f81-cb97-4b69-9a66-9a9aedb3c4e0"

* changes:
[automerger] Escape android specific collations in db veriier am: 803bf9bbdd
Escape android specific collations in db veriier
db5bf4565f3f37f4ff73d65009c2bd23faf48a82 01-Mar-2018 Yigit Boyar <yboyar@google.com> Merge "Move query parameter into local final" into oc-mr1-jetpack-dev
b386738b63f754d0afee9faf828eeeffbce0f9f6 01-Mar-2018 Yigit Boyar <yboyar@google.com> Merge changes from topic "am-0b475e81-5951-4125-8039-c83bcd775167"

* changes:
Merge commit '533bde46114bae04323d2a7c29fdba3829713a20' into am-0b475e81-5951-4125-8039-c83bcd775167
Move query parameter into local final
9fbd6cf9aab193531c70fd3e4fef6260eaf65cb1 01-Mar-2018 Android Build Merger (Role) <noreply-android-build-merger@google.com> [automerger] Parse kotlin query parameter names am: 83d1d1ecd4

Change-Id: I1e5f5ed1b0789c81d59b4d1b160a7d28ffa5c9ff
83d1d1ecd4ec87a0fa90e3e8367c7a48e8bf6e33 23-Feb-2018 Yigit Boyar <yboyar@google.com> Parse kotlin query parameter names

This CL adds support for parsing kotlin query parameter names
from kotlin metadata. When we were not doing it, it would
create an issue w/ Dao @Query methods where we would think that
they are named arg0,1,2 etc if the Dao is implemented in a
dependency module.

This implementation is not as clear as pojo processor because
we override these user classes and while overriding, all we see
is arg0,1,2. We could change overrides to use the names we
parsed but then it creates a different code path for @Query
methods and others, which looked inconsitent. Instead, we now
keep the kotlin name as the sqliteName of the QueryParameter
and use it while doing the name matching and just use java
names (arg0,1,2) when generating code.

Bug: 68118746
Test: DependencyDaoTest
Change-Id: I74f57fc5823b3340d32f63f659baf14b0f8789b7
ompiler/src/main/kotlin/android/arch/persistence/room/ext/KotlinMetadataProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RelationCollector.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/DependencyDaoTest.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/dao/DependencyDao.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/EmbeddedFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/PojoFromDependency.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/RelationFromDependency.kt
e04a1d825db0377d5aac1129cb5032234621ee5d 28-Feb-2018 Android Build Merger (Role) <noreply-android-build-merger@google.com> [automerger] Escape android specific collations in db veriier am: 803bf9bbdd

Change-Id: Ifc221fe5f3c20d8c3de0771eed96c89f32cb1e6c
803bf9bbddf4823f59d70e2d2155ee77b4bfe166 28-Feb-2018 Yigit Boyar <yboyar@google.com> Escape android specific collations in db veriier

Bug: 73920122
Test: DatabaseVerifierTest
Change-Id: I92437a85a03977b31d427fc58b0249ea662c87d8
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerifier.kt
ompiler/src/test/kotlin/android/arch/persistence/room/verifier/DatabaseVerifierTest.kt
7e3fe17cea03a5167af7076d2f295b259a33bc56 28-Feb-2018 Yigit Boyar <yboyar@google.com> Merge commit '533bde46114bae04323d2a7c29fdba3829713a20' into am-0b475e81-5951-4125-8039-c83bcd775167

* commit '533bde46114bae04323d2a7c29fdba3829713a20':
Move query parameter into local final

Change-Id: I0530e9850ce18b08121498f62c7104aa092e80de
533bde46114bae04323d2a7c29fdba3829713a20 28-Feb-2018 Yigit Boyar <yboyar@google.com> Move query parameter into local final

This CL fixes a bug where we would try to access query parameters
inside callbacks even though they are not marked as final.

This ensures that the rest of the code can keep assuming that the
query variables are final.

Bug: 73981394
Test: RawDooTest
Change-Id: I0330de55537039bc21150092e7e94383977ab472
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/RawDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RawQueryTest.java
fd1a1d431fb2c5fba29e26e5466ddffa3a5ff27c 28-Feb-2018 Yuichi Araki <yaraki@google.com> Merge "LOCALIZED and UNICODE collations need API Level 21" into oc-mr1-jetpack-dev
am: 218e20c75a

Change-Id: I79f015ca8869c74491b846cf02119051437bdd65
6e04031d0ff25453c242e7f6e2851cb3b79b7a9b 28-Feb-2018 Yuichi Araki <yaraki@google.com> Merge "Remove java.util.Objects from the testapp" into oc-mr1-jetpack-dev
am: 2aa7c697a6

Change-Id: I563b91e920936f6138928ee95934ce0be590762e
218e20c75a0c0da0bde7725cb7f3b7298a976abb 28-Feb-2018 Yuichi Araki <yaraki@google.com> Merge "LOCALIZED and UNICODE collations need API Level 21" into oc-mr1-jetpack-dev
1dfa5171e3828709cec8aa08a2fd82c096453e4b 28-Feb-2018 Yuichi Araki <yaraki@google.com> Merge changes from topic "am-7dfe816b-26b4-4924-a58a-6395e23719e3"

* changes:
[automerger] LOCALIZED and UNICODE collations need API Level 21 am: 0e01df3882
LOCALIZED and UNICODE collations need API Level 21
c518163d4304ef9d97ac632c7207931f551d818c 28-Feb-2018 Yuichi Araki <yaraki@google.com> Merge changes from topic "am-79bfc86e-3cf4-44bb-ad9a-08f6941902f1"

* changes:
[automerger] Remove java.util.Objects from the testapp am: 359e3f1cf1
Remove java.util.Objects from the testapp
526389b5eb93f99eaf4dba0b0c75b0b7df9a0f65 27-Feb-2018 Aurimas Liutikas <aurimas@google.com> Move buildSrc classes to androidx.build package.

Test: ./gradlew assembleDebug for support and flatfoot projects
Change-Id: I9ecada2082209e46058dbce453d7222d3999c925
ommon/build.gradle
ompiler/build.gradle
uava/build.gradle
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
196e69bfcea3d22a76ea20ebd3413c6ab94c42d7 27-Feb-2018 Yuichi Araki <yaraki@google.com> Merge "Synchronous observers in InvalidationTracker" into oc-mr1-jetpack-dev
am: f102b0ed2c

Change-Id: I4ddc9b07550b785ad01107f08e442cfa9a1386d6
6283105481610c4b5d5bb8b826ab316d1d24e1d3 27-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Escape fields when generating relation queries" into oc-mr1-jetpack-dev
am: 18ae4dabb0

Change-Id: Ic873d8de7cc514e30f4cef440fece7c33c2bb85d
6a95d827645f5a3c8c6ac5404a0581c974c19e9c 27-Feb-2018 Android Build Merger (Role) <noreply-android-build-merger@google.com> [automerger] LOCALIZED and UNICODE collations need API Level 21 am: 0e01df3882

Change-Id: I85a1e00e3814cc524c42c49b6dfb8fd6f656df91
0e01df38822f4043b5b6ef7b1c3d8de0767c16f0 27-Feb-2018 Yuichi Araki <yaraki@google.com> LOCALIZED and UNICODE collations need API Level 21

Test: CollationTest
Change-Id: Id358d3344a1123798ab17e69bc0cdadf3cabb98e
ommon/src/main/java/android/arch/persistence/room/ColumnInfo.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/CollationTest.java
69354732f5fa1debe91eeaaaac29e7efdbcd2761 27-Feb-2018 Android Build Merger (Role) <noreply-android-build-merger@google.com> [automerger] Remove java.util.Objects from the testapp am: 359e3f1cf1

Change-Id: Ic4df046d1dac118779f37c1adb1c6c5138290f67
359e3f1cf1dbc468b1bbdf58c6b74e7a5b6abb70 27-Feb-2018 Yuichi Araki <yaraki@google.com> Remove java.util.Objects from the testapp

java.util.Objects is available only on API Level 19 and above.

Test: This is a test fix
Change-Id: I78231fa4e0edaa7893ad27b39d86a0273351c5f9
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DaoNameConflictTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/GenericEntityTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RelationWithReservedKeywordTest.java
f102b0ed2c101f9e635a54bcbea76cebecfd3f18 27-Feb-2018 Yuichi Araki <yaraki@google.com> Merge "Synchronous observers in InvalidationTracker" into oc-mr1-jetpack-dev
205989d38f9ba47c0353dd535b5927d7820cab26 27-Feb-2018 Yuichi Araki <yaraki@google.com> Merge changes from topic "am-1bf46e5e-b81a-4280-aa9a-028f540e9ce2"

* changes:
[automerger] Synchronous observers in InvalidationTracker am: 458885cbb4
Synchronous observers in InvalidationTracker
18ae4dabb08c2006d19cb3c48e34ad4deedd716a 27-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Escape fields when generating relation queries" into oc-mr1-jetpack-dev
80a160102fbac108b43a35fb044956e14e338ede 27-Feb-2018 Yigit Boyar <yboyar@google.com> Merge changes from topic "am-71702745-7fed-4d51-8736-17362629e85d"

* changes:
[automerger] Escape fields when generating relation queries am: 81642c82ee
Escape fields when generating relation queries
e387b7c84d11ecab6ab9bbf66cf7df8bab192848 26-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Support RawQuery in paging data source" into oc-mr1-jetpack-dev
eb18576ec242ec4169564064c0ff6bf427c23fe1 26-Feb-2018 Yigit Boyar <yboyar@google.com> Merge changes from topic "am-e096a0ca-b1ac-4765-aef7-f3b506db9275"

* changes:
[automerger] Support RawQuery in paging data source am: cab865bed3
Support RawQuery in paging data source
1e6eadb9fb537c6bd81cc6a50ab685711cd84fd9 22-Feb-2018 Sergey Vasilinets <sergeyv@google.com> Assert main thread in observe and observeForever in LiveData

bug: 72211837
Test: ./gradlew :lifecycle:livedata-core:test
Change-Id: I47d1b4ed19bd61c097bc2bde031af3206bfe8191
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/FunnyNamedDaoTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RawQueryTest.java
81642c82eef72885cbdf5b66b95f905d2c6250be 26-Feb-2018 Yigit Boyar <yboyar@google.com> Escape fields when generating relation queries

Bug: 70925483
Test: RelationWithReservedKeywordTest
Change-Id: I2487aa738a7fe3e41ab986982bb2e019327e83f7
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Relation.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RelationWithReservedKeywordTest.java
458885cbb4677ae06ce3bd0c4172c86928a7b101 20-Feb-2018 Yuichi Araki <yaraki@google.com> Synchronous observers in InvalidationTracker

InvalidationTracker now synchronously creates TEMP TRIGGERS when
addObserver is called.

Bug: 73592149
Test: WriteAheadLoggingTest
Change-Id: I03f3c05fca0a1d38a9b8397eda3e943a93c386fa
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/WriteAheadLoggingTest.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
46237f26d1d2363c55df23023642e9081d276d58 23-Feb-2018 Yuichi Araki <yaraki@google.com> Merge "Clear all the tables in the database" into oc-mr1-jetpack-dev
cf761e57353d325dfdd4fa242347ecfe39e66b3f 23-Feb-2018 Yuichi Araki <yaraki@google.com> Merge changes from topic "am-c174fa90-3b80-44b3-b9a1-fcf4b9c1a74d"

* changes:
[automerger] Clear all the tables in the database am: fe072103d8
Clear all the tables in the database
cab865bed3b4e9df8b86b0b16c589c4e6dd0b71d 21-Feb-2018 Yigit Boyar <yboyar@google.com> Support RawQuery in paging data source

This CL fixes a bug where paged list data source would not generate
proper code when a RawQuery is provided.

To overcome this, I've created a RoomSQLiteQuery helper method that
creates a query from a given support query.

I've also added getArgCount to the SupportSQLiteQuery API, which was
previously requested (b/67038952).

Bug: 67038952
Bug: 72600425
Test: DataSourceFactoryTest
Change-Id: I76183d6f02e9809bdbdad2d24159900497828b1b
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceFactoryQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PositionalDataSourceQueryResultBinder.kt
ompiler/src/test/data/common/input/PositionalDataSource.java
ompiler/src/test/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/DataSourceFactoryTest.java
untime/src/main/java/android/arch/persistence/room/RoomSQLiteQuery.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
025c82a50fb1ea3201652922d1a0f05532765524 21-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Prefix dao names w/ containing class" into oc-mr1-jetpack-dev
862d6a660ed0d6d261b7435b3389537e72b16966 21-Feb-2018 Yigit Boyar <yboyar@google.com> Merge changes from topic "am-506ad590-cfee-427a-a33c-685e669deedc"

* changes:
[automerger] Prefix dao names w/ containing class am: 06baf18160
Prefix dao names w/ containing class
fe072103d888dcd93ed30302b9e50e4211458057 14-Feb-2018 Yuichi Araki <yaraki@google.com> Clear all the tables in the database

This adds RoomDatabase.clearAllTables that deletes all the rows in the
database.

Bug: 63807999
Test: ClearAllTablesTest
Change-Id: I020b7b59d55ba16f20b204fec07c9ee840c0b57d
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ClearAllTablesTest.java
untime/api/current.txt
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/test/java/android/arch/persistence/room/BuilderTest_TestDatabase_Impl.java
696ebfd02650c153ad5a87d0b7201a3ff7051113 20-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add initial support for 27.1 in app-toolkit, switch Paging to use it" into oc-mr1-jetpack-dev
0520dcbbc0ba4cbbc74443cbe631a21f39e14545 20-Feb-2018 Android Build Merger (Role) <noreply-android-build-merger@google.com> [automerger] Prefix dao names w/ containing class am: 06baf18160

Change-Id: Ib2976656f36a64a9df3340869cbf21fc930bbca7
06baf181601292a02278faf8e628efd2a9f20e4a 20-Feb-2018 Yigit Boyar <yboyar@google.com> Prefix dao names w/ containing class

This CL fixes a bug where we would not take the containing classes
into account when deciding the DAO's implementation name, which
would cause a problem if 2 classes in the same package has the
same inner DAO class name.

Bug: 73536380
Test: DaoNameConflictTest
Change-Id: I7b100b7f2b307b865697abd7cc9d53c4090ad4f4
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Dao.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DaoNameConflictTest.java
714c25d9bc49a4d5e02c2851d56495f50b2c0a05 20-Feb-2018 Android Build Merger (Role) <noreply-android-build-merger@google.com> [automerger] Add initial support for 27.1 in app-toolkit, switch Paging to use it am: 17347a161a

Change-Id: Ib64a68e9005495c20eaebfad014827b366523a83
17347a161ae0b69ceef26992d5ec3d136d9ae47d 10-Feb-2018 Chris Craik <ccraik@google.com> Add initial support for 27.1 in app-toolkit, switch Paging to use it

Bug: 72443497
Test: tests in paging:runtime, paging:common, room:integration-tests:*
Test: ./gradlew createFlatfootDocsArchive -PofflineDocs=true --stacktrace --debug
Test: ./gradlew runBuildServerCompilationTasks

In supportlib 27.1.0:
ListAdapter moved to v7-recyclerview
ListAdapterHelper moved to v7-recyclerview as AsyncListDiffer
ListAdapterConfig moved to v7-recyclerview as AsyncDifferConfig
DiffCallback moved to v7-recyclerview as DiffUtil.ItemCallback

This CL updates paging to account for those moves. Because of this,
previous versions of paging cannot be used with 27.1, and future
versions cannot be used with v7-recyclerview < 27.1.

Switched setList->submitList throughout to match new naming.
AsyncPagedListDiffer can't easily implement a @NonNull
getCurrentList() like AsyncListDiffer does, so leaving the rest of
its API as is.

Only paging and tests that depend upon it use 27.1 for now, other
projects must opt in.

Preemptively sorted out kotlintestapp's dependencies to make it
compatible with 27.1, even though it doesn't use it yet.

Change-Id: Ia43203a51b82cdda68b4bf503a1166ab254a1aa3
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/Customer.java
757abd3002dff7725cde3cebdbf9bfeed691d2f9 20-Feb-2018 Yigit Boyar <yboyar@google.com> Properly parse pojo methods as member of the owner

This CL fixes a bug where we were not converting processed methods
to members of the owner pojo. This results in a problem where we
would not resolve method type parameters properly.

Bug: 73534868
Test: GenericEntityTest
Change-Id: Ic75a08d53ca0705765c079c6571b65a05fad2525
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/PojoMethod.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/GenericEntityTest.java
19056a8571a9870d7940635322a9bcf6f8dc17a7 15-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Support Kotlin DefaultImpls with @Transaction" into oc-mr1-jetpack-dev
f1ae0061c85cdb02bd124f8f8c7a934aa75e62fe 01-Feb-2018 Tyson Henning <yorick@google.com> Implemented ListenableFuture<T> as supported DAO Binder type in Room.

Rollforward of change I07de354d33c0e758bf91ba848e3ea31079e3607a with
@Override in the correct place.

Bug:72121980
Change-Id: I595b813ca29fd91da824e5fe8351d8efae72dc13
Fixes:
Test: Unit tests in the BookDao test suite.
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/GuavaListenableFutureQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/GuavaListenableFutureQueryResultBinder.kt
uava/build.gradle
uava/src/main/AndroidManifest.xml
uava/src/main/java/android/arch/persistence/room/guava/GuavaRoom.java
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
1f8acf732b58974cb4f06c686e3e770ccf2a6e62 08-Feb-2018 Yigit Boyar <yboyar@google.com> Prioritize exact match type converters

This CL fixes a bug in TypeAdapterStore where it would treat Converters
equal even if one of them has an exact match to the input.

Now, we prioritize exact match converters over others.

Bug: 72786402
Test: TypeAdapterStoreTest, ItemWithNullableConstructor
Change-Id: I87014ff4bd735ed89cdde504cdc35d73af441f31
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/ItemWithNullableConstructor.kt
9f33dffa7525ea9039e28d5479f595b618770308 14-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Support for Write-Ahead Logging" into oc-mr1-jetpack-dev
26549cc5374db3cbd1c1553069a3cfff02ea37ad 13-Feb-2018 Yuichi Araki <yaraki@google.com> Support Kotlin DefaultImpls with @Transaction

Allow use of @Transaction on Kotlin interface methods with
implementation.

Bug: 72416735
Test: BooksDaoTest
Change-Id: Ida4e16fa85887cb1780236ddd5463690245b8727
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/TransactionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/TransactionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
a15cde321fe3bb9d75ae492ef4ee59b1ab0b58ee 14-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Made Guava Optional Room Adapter match java.util.Optional implementation style." into oc-mr1-jetpack-dev
150ae2966db8bf6d09b24f427dbc5d6d01adb35b 13-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Don't eagerly fail if there is a constructor with @Relation" into oc-mr1-jetpack-dev
6cb114d156654315c77677507b72bf4b1e8e857d 13-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Escape ' in table names" into oc-mr1-jetpack-dev
f0b1114837321a804bdfbda8e79dcaa8fd0990c3 08-Feb-2018 Tyson Henning <yorick@google.com> Made Guava Optional Room Adapter match java.util.Optional implementation style.

Bug:72121980
Change-Id: I8f516d99f16914b199d637d3e4acf5530581a490
Fixes:
Test: Same coverage.
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/GuavaOptionalQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/OptionalQueryResultAdapter.kt
2eb8c31eb44ee4bc4138136b8866847b6e49e5b2 30-Jan-2018 Yuichi Araki <yaraki@google.com> Support for Write-Ahead Logging

This adds RoomDatabase.Builder.setJournalMode for specifying the journal
mode for the SQLite database. Room now uses WAL as the default journal
mode.

In WAL, InvalidationTracker uses a transaction for monitoring the
updated tables.

Bug: 67757002
Test: WriteAheadLoggingTest
Change-Id: I42be8680616266fd42b471a7c561c22e70d0b3dc
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/WriteAheadLoggingTest.java
untime/api/current.txt
untime/src/main/java/android/arch/persistence/room/DatabaseConfiguration.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
untime/src/test/java/android/arch/persistence/room/BuilderTest.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
a1094b313baec4bfc36554b644c362fa5708fdc6 10-Feb-2018 Yigit Boyar <yboyar@google.com> Enable error prone for integration tests

The CL adds a new field enableErrorProne to the SupportAndroidTestAppExtension.
Unlike the library counterpart, setting this on changes the default toolchain to
use error prone. This OK since we don't ship the code for integraiton tests.

I've also enabled the flag for Room's integration tests. This will help us ensure
that Room generates OK code that won't cause problems when developer runs
error prone on their own code.

Bug: 72758431
Test: existing apps compile fine
Change-Id: Ie1542bf2bffc1da3b024e279c12d611d14f479e3
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RxCallableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryTransactionTest.java
c71517d8bc20d560879b5b25c4e63b432c660b81 09-Feb-2018 Yigit Boyar <yboyar@google.com> fix guava dependencies

room-compiler should depend on guava while the runtime
test app should use guava-android.

Bug: 72121980
Test: existing tests pass
Change-Id: I8315c1a2eb8a2d31f1d16f16d126274ecd835e66
ntegration-tests/kotlintestapp/build.gradle
59235c7a7fdefe382be9f549f23c5ec94c819e6b 08-Feb-2018 Yigit Boyar <yboyar@google.com> Escape ' in table names

Bug:72366965
Test: SqlParserTest
Change-Id: Ifbf9c93beb9aea1e91f7ae154f84df07a0bb559c
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/test/kotlin/android/arch/persistence/room/parser/SqlParserTest.kt
5cd20c98ceefcf9a2547cb421607d25596433fd5 08-Feb-2018 Yigit Boyar <yboyar@google.com> Don't eagerly fail if there is a constructor with @Relation

Adding @Relation to a constructor is a common mistake so we print a
separate error when that happens. Unfortunately, it becomes a
problem if there is another good constructor.

This CL makes the error reporting lazy to avoid false negatives.

Bug: 72884434
Test: KotlinTestApp
Change-Id: I37bee52e3bf491cb4064f1a922114058bbfee7c4
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/PublisherWithBookSales.kt
8b6cee1c00e8f52980432f917a38b93da4701546 08-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Read kotlin parameter names from Kotlin Metadata" into oc-mr1-jetpack-dev
d80d710117ac29facb0c6f8ef708b4ccfa09e121 08-Feb-2018 Yorick Henning <yorick@google.com> Merge "Implemented java.util.Optional as an Adapter type in Room." into oc-mr1-jetpack-dev
c1fa1f4c9d1d61e344d4310928014132cb4fa4f4 01-Feb-2018 Tyson Henning <yorick@google.com> Implemented java.util.Optional as an Adapter type in Room.

This permits it
to be used as the naked ORM return type (Optional<T>) or as part of the
inner type of complex return types (Flowable<Optional<T>>).

This is implemented differently to the Guava Optional. This delegates to
a SingleEntityQueryResultAdapter instead of reimplementing its body.
This can be fixed in that implementation too.

Bug:72121980
Change-Id: I60f8f65d2d24f3694a75680aed2c0ba10c00dfa7
Fixes:
Test: Unit test covering presence/absence of raw Optional.
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/OptionalQueryResultAdapter.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
9e828633846e3c3ff9738dbc567fe16c05e5d1b4 06-Feb-2018 Yigit Boyar <yboyar@google.com> Read kotlin parameter names from Kotlin Metadata

This is a "best effort" CL to read kotlin metadata in classes using a
3rd party library. They are technically part of kotlin API so safe
to read but JB does not provide a library so there is no future
compatibility guaratees (though it uses protobuf so needs to be somewhat
backwards compatible).

This CL uses the library under paranoid checks so that if something
goes wrong, normal compilation wont fail, only this feature will.

Bug: 67181813
Test: KotlinTestApp#DependecyDaoTest
Change-Id: I5316b0ecb04addd22a6e881024036106124c001a
ompiler/build.gradle
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/TestDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/DependencyDaoTest.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/dao/DependencyDao.kt
ntegration-tests/kotlintestapp/src/main/java/android/arch/persistence/room/integration/kotlintestapp/vo/DataClassFromDependency.kt
4365a4d97dda753f95dec5c9ab22880e05f0a2fd 01-Feb-2018 Yigit Boyar <yboyar@google.com> Merge "Suppress unchecked warnings for all generated code" into oc-mr1-jetpack-dev
67ff17da9546803a38f8144b7a466a116e622866 31-Jan-2018 Tyson Henning <yorick@google.com> Implemented Guava Optional as an Adapter type in Room. This permits it
to be used as the naked ORM return type (Optional<T>) or as part of the
inner type of complex return types (Flowable<Optional<T>>).

Bug:72121980
Fixes:
Test: Unit test covering presence/absence of raw Optional return and a Flowable nesting it.
Change-Id: I9ae5f1f9e41c804daeb3df5dcade5970c7a020c6
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/GuavaOptionalQueryResultAdapter.kt
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
c6c39c7a5cbf3dc1d435327f4cf73869cb2d2993 31-Jan-2018 Yigit Boyar <yboyar@google.com> Suppress unchecked warnings for all generated code

Bug: 66942040
Test: DaoWriterTest, DatabaseWriterTest
Change-Id: If28eb86df464d49214a6e73a99853646633bce2f
ompiler/src/main/kotlin/android/arch/persistence/room/writer/ClassWriter.kt
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/data/databasewriter/input/ComplexDatabase.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriterTest.kt
a280f1c0a724f22de7327b77f09c97183a7bd3fd 25-Jan-2018 Aurimas Liutikas <aurimas@google.com> Use symlinks for gradlew.

Let's have fewer things we have to keep up to date.

Additionally, remove wrappers from lifecycle and room as they dont
actually today build stand-alone. Once it works, we'll add it back.

Test: opened app-toolkit and jetifier in studio and ran a single test.
Change-Id: I09a7f21c24543799912569b8a4a6aa04633bb5c1
radle/wrapper/gradle-wrapper.jar
radle/wrapper/gradle-wrapper.properties
radlew
radlew.bat
ffa35f34d8628ca8c8ee1427da8bdaef91e9d2f5 24-Jan-2018 Yuichi Araki <yaraki@google.com> Fix DatabaseCallbackTest.createAndOpen
am: 17924f721e

Change-Id: Iae904b3e256689b072c04fe14ea010455c866d84
17924f721ea5301dde88b59aaae7e9e63362e7fe 24-Jan-2018 Yuichi Araki <yaraki@google.com> Fix DatabaseCallbackTest.createAndOpen

The test was failing when the test app was re-run without being
uninstalled.

Test: This fixes the test
Change-Id: I90469a0451798f73ba579b8ca78a63aefdd4d9be
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DatabaseCallbackTest.java
cef4d9117efec4248e5cbb921e69bf1b86ba5c35 24-Jan-2018 Yuichi Araki <yaraki@google.com> Use @Transaction with default interface methods
am: 3b909e309e

Change-Id: Icb2cc8d52f00b59bfb351586ceca82849d08fc96
3b909e309e35eef52ae8d6de906f956a771deb31 23-Jan-2018 Yuichi Araki <yaraki@google.com> Use @Transaction with default interface methods

Allow use of @Transaction on methods with default implementation in Java
interfaces.

This CL does not cover Kotlin interfaces as its default implementation
works in a completely different way.

Test: SimpleEntityReadWriteTest, DaoProcessorTest
Change-Id: Id346050d784ec1b44363610f81869a27f343e196
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/TransactionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/TransactionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/data/daoWriter/input/UpdateDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ce7a065afc77ef97c6a5de450df0567bda459db8 19-Jan-2018 Yigit Boyar <yboyar@google.com> Properly find downgrade migrations
am: c7d52cda65

Change-Id: I6c98b7333e3684b3dde377b03dd36da7fde9b179
c7d52cda65fa71ff54fca756e8abf73cdd2c7caa 18-Jan-2018 Yigit Boyar <yboyar@google.com> Properly find downgrade migrations

The migration path finder was always seeking an incrasing path, missing
downgrade migrations. This CL fixes it.

Bug: 72153525
Test: BuilderTest.java
Change-Id: If984728f2026ebdc58e58a7ac6820860ccb17ae9
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/test/java/android/arch/persistence/room/BuilderTest.java
aa4bdedb67b9716f4a01d9321c5fbdbe6a021c69 18-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "Allow non-default affinity names in sqlite columns" into oc-mr1-support-27.0-dev
am: f1ddc89924

Change-Id: If84e60be659e5fc55fac13a2f6b9db916b4e13c0
f1ddc89924a922340cf10b14cbf0d6030a6b6b13 18-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Allow non-default affinity names in sqlite columns" into oc-mr1-support-27.0-dev
13115a449afe285921acd754b18d74c0a5061ccf 18-Jan-2018 Yigit Boyar <yboyar@google.com> Safeguard against empty type adapters
am: 8af88c1061

Change-Id: Ia2f5395416ed3c4ac6ab3d86f32dd6895c57cc38
3cb8128992118628c70c5b5949a2e4da1d133bab 18-Jan-2018 Yigit Boyar <yboyar@google.com> Int columns cannot be converted to boolean directly
am: 948fe95268

Change-Id: If6c331e01d8242b4091aed09c4cbcf4dba099ee9
8af88c10618ee602d292265a47deab8ceb1eb126 11-Jan-2018 Yigit Boyar <yboyar@google.com> Safeguard against empty type adapters

Somehow, room ends up in a state where there is a converter path to a type
but the column adapter is empty. This results at a compile time crash which
hides the real problem. This safeguard will allow a logical error to populate
to the user (or even, room might find the correct one).

Bug: 71855433
Bug: 71387107
Test: existing tests pass
Change-Id: I7804328c4ae5d47a859e38c1e0aa5b3817ea5bbb
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
d77cb2b5f575cd2cdb0d008d5297a7606b572d98 17-Jan-2018 Yigit Boyar <yboyar@google.com> Allow non-default affinity names in sqlite columns

This CL allows an existing database, which didn't use the standard sqlite
types to migrate to Room properly.

SQLite has a well defined algorithm on how it decides on the affinity so
this CL implements it to support migrations from existing databases.

Bug: 71953987
Test: TableInfoTest
Change-Id: I7332463737874525d406c5961b892d8b77e5b1be
untime/src/androidTest/java/android/arch/persistence/room/migration/TableInfoTest.java
untime/src/main/java/android/arch/persistence/room/util/TableInfo.java
948fe952685b4c7386895cb595214a885e579014 11-Jan-2018 Yigit Boyar <yboyar@google.com> Int columns cannot be converted to boolean directly

Previously, Boolean was considered as a possible output for
INT affinity columns but this is wrong since we do need a
converter for that to work (PrimitiveBooleanToIntConverter).

Bug: 71855433
Test: LiveDataQueryTest, SimpleEntityReadWriteTest
Change-Id: I08270616783e14f85f5e0f9c0388cb703c18cda4
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
9822109708fc59caace699c56eb5414c635d7fb9 11-Jan-2018 Chris Craik <ccraik@google.com> Merge "Switch room to latest paging APIs" into oc-mr1-support-27.0-dev
am: 413b6bde0e

Change-Id: I4b6c3892a99cccafd58fb514b669cad1e53de775
413b6bde0ebef3eb387a9f798492ad423aef87fd 11-Jan-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Switch room to latest paging APIs" into oc-mr1-support-27.0-dev
dc60cacc66972b47f27acdf727332878ce5958ae 10-Jan-2018 Chris Craik <ccraik@google.com> Switch room to latest paging APIs

Test: tests in room-compiler, room-integrations-tests-testapp

Removes all references to deprecated LivePagedListProvider and TiledDataSource.

Change-Id: Ie49bf75df0b59cfd9d808be95dfd990f76ebe664
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceFactoryQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LivePagedListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PositionalDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TiledDataSourceQueryResultBinder.kt
ompiler/src/test/data/common/input/DataSource.java
ompiler/src/test/data/common/input/LivePagedListProvider.java
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/DataSourceFactoryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryTransactionTest.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
b2ee0cc703149170cdf9fefc0cadd7f95bf28843 08-Jan-2018 Shep Shapard <shepshapard@google.com> Merge "Implements fallbackToDestructiveMigrationFrom(int ...) for more fine-grained control over destructive migrations." into oc-mr1-support-27.0-dev
am: 0147f98e9d

Change-Id: I6bfa85734d1ad59f0f28ad0f7a4f733f4b7a2d55
0147f98e9d0663a10b570dda849f55492dea9d7c 08-Jan-2018 Shep Shapard <shepshapard@google.com> Merge "Implements fallbackToDestructiveMigrationFrom(int ...) for more fine-grained control over destructive migrations." into oc-mr1-support-27.0-dev
74400bffe60396edf353e0a919c0e3784e9f7a67 06-Jan-2018 Yigit Boyar <yboyar@google.com> RawQuery support
am: de23b91b2c

Change-Id: Iff372bc62d999d0d9b2e4dad2e77d87108868ce5
d2658c69a5eb56c5fa7f09bd361974aa2452b320 10-Nov-2017 shepshapard <shepshapard@google.com> Implements fallbackToDestructiveMigrationFrom(int ...) for more fine-grained control over destructive migrations.

Bug: 64989640
Test: MigrationTest#fallbackToDestructiveMigrationFrom_fromStart_destructive
MigrationTest#fallbackToDestructiveMigrationFrom_fromStart_withTrailingMigration_destructive
MigrationTest#fallbackToDestructiveMigrationFrom_suppliedValueIsMigrationStartVersion_exception
MigrationTest#fallbackToDestructiveMigrationFrom_suppliedValueIsMigrationEndVersion_exception
BuilderTest#fallbackToDestructiveMigrationFrom_calledOnce_migrationsNotRequiredForValues
BuilderTest#fallbackToDestructiveMigrationFrom_calledTwice_migrationsNotRequiredForValues
BuilderTest#isMigrationRequiredFrom_fallBackToDestructiveCalled_alwaysReturnsFalse
BuilderTest#isMigrationRequiredFrom_byDefault_alwaysReturnsTrue
BuilderTest#isMigrationRequiredFrom_fallBackToDestFromCalled_falseForProvidedValues
BuilderTest#isMigrationRequiredFrom_fallBackToDestFromCalled_trueForNonProvidedValues

Change-Id: I968beca545645261ffa0020c5d7d201ce089a3e9
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
untime/api/current.txt
untime/src/main/java/android/arch/persistence/room/DatabaseConfiguration.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
untime/src/test/java/android/arch/persistence/room/BuilderTest.java
xjava2/api/current.txt
esting/api/current.txt
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
de23b91b2c982ef5c93349b16415654ae3fe5ac9 04-Jan-2018 Yigit Boyar <yboyar@google.com> RawQuery support

This CL adds a new annotation where DAO methods can have a method
annotated with @RawQuery which should receive 1 and only 1 parameter
of type String or SupportSQLiteQuery.

Bug: 71458963
Bug: 62103290
Test: RawDaoTest, RawQueryMethodProcessorTest
Change-Id: I948e79d93258f69d7c11dbb54f2943d6e51879b3
ommon/src/main/java/android/arch/persistence/room/RawQuery.java
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/ObservableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RxCallableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TiledDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Dao.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RawQueryMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/RawQueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/RawDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RawQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/NameAndLastName.java
3c265f66c5e5f203c335c55e8e52b6175a9198f0 06-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "Handle kotlin-kapt collection types properly in DAO" into oc-mr1-support-27.0-dev
am: 999b205758

Change-Id: Ic4db68455636f34d4bb2a6d2abb30625d5f300d4
999b2057581a71b795314eebe9aca2d54502fa5f 06-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "Handle kotlin-kapt collection types properly in DAO" into oc-mr1-support-27.0-dev
b2200b494e1143d37375b555a279e35a26a22441 05-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "Allow LOCALIZED and UNICODE collations" into oc-mr1-support-27.0-dev
am: 4cfbb695ea

Change-Id: I54badeb9947578815f352ed430f86e1f8451c08a
4cfbb695ea3a5bc5b22e992ea4ae00ac8c1ae959 05-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "Allow LOCALIZED and UNICODE collations" into oc-mr1-support-27.0-dev
5d731d8fd28b93388712dee3d9442502ca0a1e7d 05-Jan-2018 Sergey Vasilinets <sergeyv@google.com> Merge "Drop support for non ub-supportlib-* builds of support library." into oc-mr1-support-27.0-dev
4f8529aaec79274efc06b1b570226bec361c56a3 05-Jan-2018 Aurimas Liutikas <aurimas@google.com> Merge "Add missing @RestrictTo and test size annotations." into oc-mr1-jetpack-dev
bfc7aac93a790e446a867f203263868c9a93fd4c 05-Jan-2018 Yigit Boyar <yboyar@google.com> Handle kotlin-kapt collection types properly in DAO

If DAO has a base class w/ a generic type, an argument in base
class like List<T> turns into List<? extends T>.
We need to get rid of ? before bailing out that it is not a
valid argument.

Bug: 67581903
Test: BooksDaoTest
Change-Id: I9f6b5c42a4018aa2444340b21df66b63189d831a
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutParameterProcessor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BaseDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
04c9e28ea0be0cedcee58e4d29343ac08733d58a 04-Jan-2018 Aurimas Liutikas <aurimas@google.com> Add missing @RestrictTo and test size annotations.

Ran checkstyle over all of support lib java code to find missing @RestrictTo
and test size annotations.

../../prebuilts/checkstyle/checkstyle.py -c development/checkstyle/config/support-lib.xml \
-p development/checkstyle/prebuilt/com.android.support.checkstyle.jar -f *

Test: ./gradlew assembleDebug
Change-Id: Iaa3303999785c5cbf26c02338c4a3935df969ca2
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoTest.java
05be099ca51c94e99b23b063b88e8f9d4490f8fb 05-Jan-2018 Yigit Boyar <yboyar@google.com> Allow LOCALIZED and UNICODE collations

Android has these by default.
https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

Bug: 68925249
Test: CollationTest
Change-Id: I6fb3c3c18a429c12319821e772cd900a73c31f80
ommon/src/main/java/android/arch/persistence/room/ColumnInfo.java
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/CollationTest.java
8a1170e49b9f351d325b003799f173fdec2fb021 04-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "Fix schema identity has to be stable" into oc-mr1-support-27.0-dev
am: 5abdc3db05

Change-Id: Ib100bb568ac7e270dfa58e6c2446de63a4eee5d4
5abdc3db051dcebce198d3967e59ad01f5019465 04-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "Fix schema identity has to be stable" into oc-mr1-support-27.0-dev
6eba1fcfea2ea33302d6d8c28b769fa771d9f4f2 03-Jan-2018 Aurimas Liutikas <aurimas@google.com> Drop support for non ub-supportlib-* builds of support library.

Support library gradle builds in master have been broken for a while
and we have no plans to fix it. We only plan to support unbundled builds
of support library.

Test: ./gradlew buildOnServer
Merged-In: Iea56e4112c146834aac01e459db897e7efa0eccd
Change-Id: Iea56e4112c146834aac01e459db897e7efa0eccd
ompiler/build.gradle
c94d2567fe970370c3021987739dc8866aefedf8 04-Jan-2018 Aurimas Liutikas <aurimas@google.com> Merge "Remove use of android.test.MoreAsserts that has been removed." into oc-mr1-support-27.0-dev
am: c491fe9061

Change-Id: I2973cc341f0fa802c3e2b10571cd52115206936d
24b2115483e857d3aec386f559b76dd21aa27841 03-Jan-2018 Aurimas Liutikas <aurimas@google.com> Remove use of android.test.MoreAsserts that has been removed.

android.test.MoreAsserts has been removed from the SDK and we
can no longer use it.

Test: ran updated test in studio
Change-Id: I9144feff33e04567854fd9d3a85a535caa002242
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
34d6f282f04be954d7193a3061d368eb2564e61e 03-Jan-2018 Aurimas Liutikas <aurimas@google.com> Merge "Drop support for non ub-supportlib-* builds of support library." into oc-mr1-jetpack-dev
3196ef11607745931934a61db2a53e081479c546 03-Jan-2018 Aurimas Liutikas <aurimas@google.com> Drop support for non ub-supportlib-* builds of support library.

Support library gradle builds in master have been broken for a while
and we have no plans to fix it. We only plan to support unbundled builds
of support library.

Test: ./gradlew buildOnServer
Change-Id: Iea56e4112c146834aac01e459db897e7efa0eccd
ompiler/build.gradle
64ba5eb986f00baa523673acb57abca8da69af88 02-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "handle large key sets in relationships" into oc-mr1-support-27.0-dev
am: 7d4f551eda

Change-Id: I986a0cda962d2a42626b122888331217d7370ceb
7d4f551eda4d95dbf0e57bc5d044888250c65644 02-Jan-2018 Yigit Boyar <yboyar@google.com> Merge "handle large key sets in relationships" into oc-mr1-support-27.0-dev
e5ed537fe6f14f0bbb43ddef605ed22f09714142 19-Dec-2017 Yigit Boyar <yboyar@google.com> Fix schema identity has to be stable

Room v1 has a bug where it generates the schema identity from the
create table query, which was OK when it was written (because Room
considered column order as part of schema) but not anymore (since
we don't enforce column order).

The problem is fixed by creating both legacy and new identity hash
so that RoomOpenHelper can validate old database.

Unfortunately, this is a large CL because we don't want to update
schema json files so all of the Schema data classes implements a
new schema equality api which checks if the schema description of
two entities are the same, even though their SQL might be different.
(e.g. the column order in an entity or the auto generated index name)

Since we are not overriding json files, the fix will only take effect
after a migration.

Bug: 64290754
Test: android.arch.persistence.room.migration.bundle.*
Change-Id: I44959a353ac919850e2606ca704008ea57da7313
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Database.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Entity.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Field.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Index.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/SchemaIdentityKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/DatabaseBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/EntityBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/FieldBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/ForeignKeyBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/IndexBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/PrimaryKeyBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/SchemaBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/SchemaEquality.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/SchemaEqualityUtil.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/EntityBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/FieldBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/ForeignKeyBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/IndexBundleTest.java
igration/src/test/java/android/arch/persistence/room/migration/bundle/PrimaryKeyBundleTest.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
c536a76458acd417de01cc3545e6e7580b525b51 27-Dec-2017 Yigit Boyar <yboyar@google.com> Merge "Provide better error message for relations in constructor" into oc-mr1-support-27.0-dev
am: f1be688f5f

Change-Id: I53c37906250c625a6f7c3d299a2bc675f6de469e
f1be688f5fb43725167406351593b23adc98c96b 27-Dec-2017 Yigit Boyar <yboyar@google.com> Merge "Provide better error message for relations in constructor" into oc-mr1-support-27.0-dev
fa39e2bca1b284ad7c931d9194287770b7b507fa 21-Dec-2017 Aurimas Liutikas <aurimas@google.com> Remove uses of junit.framework.*

These classes are getting removed from android sdk

Bug: 70905568
Test: ./gradlew assembleAndroidTest
Change-Id: I60bf4c88382147cd70cbf1aa02f78abfb2ee8eca
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
5facdd2f77a127a01a1f2ef52b617f9996f8a45c 20-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Create SupportAndroidTestAppPlugin" into oc-mr1-support-27.0-dev
6bbf7089c9d4050b04ad48e1a1e5e2c713c48840 20-Dec-2017 Yigit Boyar <yboyar@google.com> handle large key sets in relationships

If a relationship result has 1000 >= items, sqlite rejects the query.
We cannot blame the developer because query is generated by room so
we rather divide it into sub maps when this happens.

It is not the most efficient way to divide the map but since this is
unlikely to happen, seems fair.

Bug: 64643894
Test: PojoWithRelationTest#largeRelation_*
Change-Id: Ie0f2f4520e1e26681dfb3ed7239fe3c6f5e31586
ompiler/src/main/kotlin/android/arch/persistence/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/RelationCollectorMethodWriter.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoWithRelationTest.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
37a4c4d3e29de0fa914c0496cafe0fca26de8bbf 20-Dec-2017 Yigit Boyar <yboyar@google.com> Provide better error message for relations in constructor

It is a common mistake to put a relation into a POJO constructor. Since we
don't support it (yet) we better provide a more clear error.

Change-Id: I73d897b5514a58887bf8c5bd49f4e97648795c3d
Fixes: 69118713
Test: PojoProcessorTest#constructor_relationParameter
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
06d37260ea8c5084753cc587f86176539004251c 19-Dec-2017 Yigit Boyar <yboyar@google.com> Merge "Allow single column results in relations" into oc-mr1-support-27.0-dev
3ea1d11500fdfe07866c1d6fcc970159d0f04f3a 18-Dec-2017 Yigit Boyar <yboyar@google.com> Allow single column results in relations

This CL fixes a bug where we were enforcing @Relation's return type
to adhere to the Pojo requirements which breaks if you want to use
a boxed primitive or a type with type converter.

This CL changes relationship processor to not enforce a pojo as long as
we can infer the projection from available information (e.g. user spcified).

If we need to infer projection list, we now first check if there is
a column adapter for the given type and if so, assume it is a 1 column
result and generate query accordingly.

Fixes: 68077506
Test: BooksDaoTest, PojoProcessorTest, PojoWithRelationTest
Change-Id: I34484c11248ba9be0341f498b55ecbf848f8a35b
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Relation.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RelationCollector.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/RelationCollectorMethodWriter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Book.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/PublisherWithBookSales.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoWithRelationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Pet.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetWithToyIds.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPetAdoptionDates.java
c24f4573b0732b6cc0569fc3bbe3867be6f4880c 19-Dec-2017 Yigit Boyar <yboyar@google.com> Improve error message on bad dao annotations.

Fixes: 68140034
Test: n/a
Change-Id: I2dd066ac389f34b6612668cd4d30fb34e3a67484
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DaoProcessorTest.kt
238e480cfb27b1afd3755dbeae4a084197cc0559 14-Dec-2017 Aurimas Liutikas <aurimas@google.com> Create SupportAndroidTestAppPlugin

Test: ./gradlew assembleDebug
Change-Id: I946d1ace0ea03c02854d1e8ac3edf105d0bceb10
ompiler/build.gradle
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/lint-baseline.xml
2fb00f11f2e6d90edf678daaa921a3ef1b55a51b 15-Dec-2017 Yigit Boyar <yboyar@google.com> Allow collection type converters in query parameters

If a query parameter is a collection AND we cannot find a converter for the type parameter of it,
we will look for a converter that converts the whole thing.

Collection Type converters were broken in kotlin data classes because
kotlin creates constructor args with variance which cannot be assigned
to the fields. This CL flexes the constructor and setter check to allow
variances.

Fixes: 69164099
Test: SimpleEntityReadWriteTest, CustomTypeConverterResolutionTest, BookDaoTest,
TypeAssignmentTest

Change-Id: I48d44bb90c69ad0d9ca4aeb19f22821d89264405
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAssignmentTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestInvocation.kt
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Book.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Lang.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Day.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/User.java
8d3cbc6642846f665e5f736d6861d20dd416ebc4 19-Dec-2017 Yigit Boyar <yboyar@google.com> Merge "Add test for table prefixes" into oc-mr1-support-27.0-dev
7fa8eb8a64222323993ac71b9dcc511c3c0c86cd 18-Dec-2017 Yigit Boyar <yboyar@google.com> Merge "Revert "Allow collection type converters in query parameters"" into oc-mr1-support-27.0-dev
457a29acae6fce5c382846c7c9c33b3fe16a304d 18-Dec-2017 Yigit Boyar <yboyar@google.com> Revert "Allow collection type converters in query parameters"

This reverts commit fa7646a359f56e33b2a292420ef80338e8b451a9.

Reason for revert: it broke downstream

Change-Id: If3c0740d74f6292f2826866c05c05eabb4533f42
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAssignmentTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestInvocation.kt
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Book.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Lang.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Day.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/User.java
0d7bc26e9f4e4454a3bb31c9d35ccbb035ea4fcb 18-Dec-2017 Yigit Boyar <yboyar@google.com> Merge "Allow collection type converters in query parameters" into oc-mr1-support-27.0-dev
2d5d14ee842a8f60cfc44135701675acf384c619 15-Dec-2017 Yigit Boyar <yboyar@google.com> Add test for table prefixes

Bug: 64539805
Test: SqlParserTest, SimpleEntityReadWriteTest
Change-Id: I1892243c55cd4469ce3b1c3ebf39d5d03c65bfe6
ompiler/src/test/kotlin/android/arch/persistence/room/parser/SqlParserTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/NameAndLastName.java
922b65c68f64c42fc2fbf4eeb3333431e43643d9 18-Dec-2017 Yigit Boyar <yboyar@google.com> Fix antlr gen task inputs

It was passing a file as an input dir, which is deprecated in Gradle 5.

Bug: 69872085
Test: local
Change-Id: I0d3e606aa2fec186bfbbbb5b981bec549aa6d78a
ompiler/build.gradle
fa7646a359f56e33b2a292420ef80338e8b451a9 15-Dec-2017 Yigit Boyar <yboyar@google.com> Allow collection type converters in query parameters

If a query parameter is a collection AND we cannot find a converter for the type parameter of it,
we will look for a converter that converts the whole thing.

Collection Type converters were broken in kotlin data classes because
kotlin creates constructor args with variance which cannot be assigned
to the fields. This CL flexes the constructor and setter check to allow
variances.

Bug: 69164099
Test: SimpleEntityReadWriteTest, CustomTypeConverterResolutionTest, BookDaoTest,
TypeAssignmentTest
Change-Id: I20eae401ca7f19a7acba2958f3601744aef1f7be
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAssignmentTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestInvocation.kt
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Book.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Lang.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Day.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/User.java
7ebe40c91d058f1f3f2cddf0bc3e4a489c346fd5 14-Dec-2017 Yigit Boyar <yboyar@google.com> Add tests where constructor params have annotations

This CL adds 2 tests which have annotations in constructor parameters.
I could not reproduce the error reported in the sample but will keep
the tests.

Bug: 69562125
Test: ConstructorTest, PojoProcessorTest
Change-Id: I0cd97b57fea8be758ab85b83e6dfa415231d970b
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ConstructorTest.java
df29dd08b4501bac562af88f109401bdd6d9b79b 14-Dec-2017 Aurimas Liutikas <aurimas@google.com> Merge "Revert "Use symbolic links for gradle wrappers."" into oc-mr1-support-27.0-dev
47b7562d8297ebc67ff6eed2a01c89822b3ebb04 14-Dec-2017 Aurimas Liutikas <aurimas@google.com> Revert "Use symbolic links for gradle wrappers."

This reverts commit 46339b23cfe083a5f9e2831201f0b98ba82bc7aa.

This broke studio, it seems not able to use symlinks for gradle wrappers.

Bug: 70672551

Change-Id: Ia68ef6a77838a10da82e6dd5e9394a4292df4594
radle/wrapper/gradle-wrapper.jar
radle/wrapper/gradle-wrapper.properties
radlew
radlew.bat
54dc560f5aae52b3ea1a2c97cc43f858191faae1 14-Dec-2017 Aurimas Liutikas <aurimas@google.com> Merge "Migrate the rest of the dependencies to Kotlin." into oc-mr1-support-27.0-dev
7ed10e5f43637b244bdf8fcededde19d80c4a372 14-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Set minSdkVersion via our SupportAndroidLibraryPlugin." into oc-mr1-support-27.0-dev
1187af179548ec77790c443f0fd980d9ddf647c3 29-Nov-2017 Aurimas Liutikas <aurimas@google.com> Migrate the rest of the dependencies to Kotlin.

Test: ./gradlew tasks in both support and app-toolkit
Change-Id: I39a43e4dd6ec19296ae8a9c93f2010a3b0a44c7d
ommon/build.gradle
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
b63b3abc571efeeacf9ffe38ad344c1d3b1db195 13-Dec-2017 Aurimas Liutikas <aurimas@google.com> Set minSdkVersion via our SupportAndroidLibraryPlugin.

Test: ./gradlew assembleAndroidTest in support and app-toolkit
Change-Id: I61ae66020bc32e638a7d5e15b5994d986fb14d7d
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
46339b23cfe083a5f9e2831201f0b98ba82bc7aa 13-Dec-2017 Aurimas Liutikas <aurimas@google.com> Use symbolic links for gradle wrappers.

We had multiple copies of gradle wrapper related files
which was hard to keep up to date. Now we'll just use symbolic
links to point to the wrapper at the root of frameworks/support.

Test: ./gradlew tasks in all relevant projects
Change-Id: I9ae905a91e3e956ebea7105054f6dc4673c13577
radle/wrapper/gradle-wrapper.jar
radle/wrapper/gradle-wrapper.properties
radlew
radlew.bat
9c2468843133a54b69a54e9e5f2b2677f2dc9ff3 12-Dec-2017 Sergey Vasilinets <sergeyv@google.com> Move noDocs property to SupportLibraryExtension

Test: ./gradlew clean createArchive
Change-Id: Id26b6b9d4f9c52769ffa6f59d1c78df268a8b331
ompiler/build.gradle
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
7878f1f09a3655121de1c1b7f42363348d777552 08-Dec-2017 Yigit Boyar <yboyar@google.com> Fix javadoc

Bug: 69148771
Test: n/a
Change-Id: Ib8f1a5a35e27a8dc9157398c508249430a1c3dc9
ommon/src/main/java/android/arch/persistence/room/Database.java
1ce0a406f973ee03108a1c8aea70a44695aa1bbb 06-Dec-2017 Sergey Vasilinets <sergeyv@google.com> Merge "Add missing nullability annotations" into oc-mr1-support-27.0-dev
843419a5abce2eadf010ea69e52c4b2eb2b4e80d 06-Dec-2017 Jake Wharton <jakew@google.com> Remove needless support annotation excludes.

These appear to be copy/pasta from non-app-toolkit modules where the excludes are necessary because the support-annotation project is on the classpath and would conflict with the transitive dependencies of these test artifacts pointing at the Maven coordinate versions.

Test: ./gradlew -p app-toolkit clean build
Change-Id: I146ff8814ea3d17a5fb7d5ef41dcabd80e0708f6
ntegration-tests/testapp/build.gradle
untime/build.gradle
cceb74b52f52a57a344c02380192ce32d9565458 06-Dec-2017 Sergey Vasilinets <sergeyv@google.com> Add missing nullability annotations

Test: N/A
Change-Id: I34735e50e4037ed30db8404c07542c96033b04b5
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
7be338581816c5dae3d0ea2fb729cbf76b5b0acb 05-Dec-2017 Chris Craik <ccraik@google.com> Merge "Add PageKeyedDataSource" into oc-mr1-support-27.0-dev
b632de54cccea95ff4d879b512fca7281783b3a4 01-Dec-2017 Chris Craik <ccraik@google.com> Add PageKeyedDataSource

Fixes: 68705650

Add PageKeyedDataSource to support request-based keys, common in
loading from the network.

This DataSource isn't currently capable of consuming an initial key
(since we can't extract an initial key from an item, only from a page).

This initial version differentiates between loadAfter and loadBefore
with a boolean in the load param, but we can revisit this if it doesn't
fit well with other data sources.

Test: ./gradlew runBuildServerCompilationTasks
Test: tests in paging-common, paging-runtime, room-integration-tests-testapp

Change-Id: Idf26a640bf573eb8ac1e357b7e3293ab65ba7983
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/LastNameAscCustomerDataSource.java
dfe0227620d6cc72efd56aa29376108e643ef186 01-Dec-2017 Jake Wharton <jakew@google.com> Merge "Extend Closable instead of AutoClosable." into oc-mr1-support-27.0-dev
dc9c352890383216aae548db218cf82a2e83d6b2 30-Nov-2017 Chris Craik <ccraik@google.com> Merge "Use param objects for DataSource load methods" into oc-mr1-support-27.0-dev
73f1e89d7b93690caf68c7350c56e424e4c73343 30-Nov-2017 Jake Wharton <jakew@google.com> Extend Closable instead of AutoClosable.

This enables pre-19 code to link to the close() method through Closable (and thus use utilities like Guava's Closer) without having to use the subtype. Since Closable extends AutoClosable on API 19+, this is a source and binary-compatiable change.

Test: ./gradlew test
Bug: 69965099
Change-Id: Idc2e5cf56bf02717fcac78217d11cfa3e33aca7f
untime/src/main/java/android/arch/persistence/room/RoomSQLiteQuery.java
694588d1d059ac96142d6334ec7fce90abb7622b 29-Nov-2017 Chris Craik <ccraik@google.com> Use param objects for DataSource load methods

This enables us to add parameters over time without breaking
compatibility, or passing 10 parameters to a load method that only
needs two of them.

Additionally, opens up computeInitialLoadPosition and
computeInitialLoadSize size APIs, since they're simpler with fewer
parameters now.

Test: ./gradlew createFlatfootDocsArchive -PofflineDocs=true
Test: tests in paging-common, paging-runtime, room-integration-tests-testapp

Change-Id: Ic70a246e14c720e529947587f2098c62d9c1d253
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/LastNameAscCustomerDataSource.java
81b5bac70497d6306beec14e3e439fbed1a80fb2 28-Nov-2017 Aurimas Liutikas <aurimas@google.com> Move most app-toolkit dependencies to kotlin.

Test: ./gradlew tasks in app-toolkit project.
Change-Id: I0e82fd35251251e3401c9d39d0d6576d2651b323
ompiler/build.gradle
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
igration/build.gradle
xjava2/build.gradle
f4ec12f795694f62ffccd0dae7e537a3cd270319 22-Nov-2017 Aurimas Liutikas <aurimas@google.com> Make build.gradle files even more kotlin script friendly.

Test: ./gradlew tasks
Change-Id: Ia6f61f61fef1733e990b95cdfde26a95d9091ab5
ommon/build.gradle
ompiler/build.gradle
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
25c616333059046ed63860374418d0f0eda824eb 22-Nov-2017 Jake Wharton <jakew@google.com> Only add baseline file when it exists.

Remove existing empty baseline files as well.

Test: ./gradlew lintRelease
Change-Id: Ia1698405cd44e7c2778efde547f84bea49e15583
untime/lint-baseline.xml
xjava2/lint-baseline.xml
ee4da728f238abfae24e14ef06b96f430472fab9 20-Nov-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Adding ktlint hook to support library." into oc-mr1-support-27.0-dev
6f1f5567abe765d30fda9c8fedce5617ecdeda9c 17-Nov-2017 Aurimas Liutikas <aurimas@google.com> Reformat kotlin code to match ktlint expectations.

Ran java -jar ../../prebuilts/ktlint/ktlint-android-all.jar path/to/kotlin --format

Test: None
Change-Id: I3cae2f81c5fb3bb3338788b9feeeafeb5762b550
ompiler/src/main/kotlin/android/arch/persistence/room/RoomProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/string_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/type_mirror_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/log/RLog.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/preconditions/Checks.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/Context.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutParameterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/cache/Cache.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/ObservableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/QueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/InstantQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveDataQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/RxCallableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RxCallableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TiledDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TransactionWrapper.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedPrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/ByteArrayColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CompositeTypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CustomTypeConverterWrapper.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/StatementValueBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/ColumnInfo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerificaitonErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerifier.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/QueryResultInfo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/jdbc_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Constructor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/CustomTypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Dao.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DaoMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Database.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/EmbeddedField.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Entity.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Field.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldWithIndex.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ForeignKeyAction.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Index.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Pojo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RelationCollector.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ShortcutQueryParameter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/FieldReadWriteWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/PreparedStatementWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/QueryWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/TableInfoValidationWriter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseDaoTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ompiler/src/test/kotlin/android/arch/persistence/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/vo/IndexTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DatabaseWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriterTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/DerivedDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/BookAuthor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/BookWithPublisher.kt
c39b4bda17daa49685c72de9e67ec44ebc04933b 17-Nov-2017 Aurimas Liutikas <aurimas@google.com> Adding ktlint hook to support library.

Additionally, this remove custom gradle tasks to run checkstyle
since this will be handle by repo upload now.

Test: Locally
Change-Id: I8ae6c9eb64680033d750bdf0d8312dd695722ff4
ommon/build.gradle
ompiler/build.gradle
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
87a16a53f9806fe8bcbe4e3bef751fc214a4235a 09-Nov-2017 Aurimas Liutikas <aurimas@google.com> Further clean up app-toolkit build files.

Test: None
Change-Id: I4951e44c7e5444cb222b9540ed4f30d544525efa
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/StringToIntListConverters.kt
ntegration-tests/testapp/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
8f437bfaf99cb8db0dacc6cb390a6f86b2cc55cf 14-Nov-2017 Aurimas Liutikas <aurimas@google.com> Start using local debug keys to avoid build flakiness.

Test: None
Change-Id: I98dde7a901f455779c03071635e3cbcfd29a2bee
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
5a8b9cf0d3f81fc096f988319b744499ea433ca3 14-Nov-2017 Chris Craik <ccraik@google.com> Merge "Switch DataSources to be async to better support network usecase" into oc-mr1-support-27.0-dev
5dc2fd49c2887578d8b76a9014e1b43d088c7fda 30-Oct-2017 Chris Craik <ccraik@google.com> Switch DataSources to be async to better support network usecase

Test: tests in paging-common, paging-runtime, room-integration-tests-testapp

Bug: 65891711
Bug: 68724662
Bug: 68777934
Fixes: 66388173

Change-Id: I70f2f717f38984cd6b662fffabec9fd7fc684df0
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/DataSourceFactoryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryTransactionTest.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/LastNameAscCustomerDataSource.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
9a1448479860981e486518e3b6e6abc1cbdd39f1 10-Nov-2017 Yigit Boyar <yboyar@google.com> Use latest available source in processors.

This will avoid an unnecessary warning due to version mismatch between our min
version and the developer's javac version.

Bug: 69164173
Test: n/a
Change-Id: I1c6dc41833eaac02b68009679025bca34ffc7d67
ompiler/src/main/kotlin/android/arch/persistence/room/RoomProcessor.kt
78c1ab769dfe503ffd0b25cb998db80202a1bfcb 08-Nov-2017 Aurimas Liutikas <aurimas@google.com> Move to setting maven version via SupporLibrary extension.

Test: ./gradlew createArchive
Change-Id: Ifa145712bc3b68ef561d8d7f9e21e97c79b705d1
ommon/build.gradle
ompiler/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
7f40a7ef7894666df581acf8228e86f00569ab92 28-Oct-2017 Aurimas Liutikas <aurimas@google.com> Move setting maven group directly to each build.gradle.

Test: ./gradlew buildOnServer
Change-Id: If83e8d3d4bb8c9dd260f65c3898b6f0fa8ffc524
ommon/build.gradle
ompiler/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
ea5ee82cc9a962324db73b19df161724c0c4a96b 06-Nov-2017 Aurimas Liutikas <aurimas@google.com> Move to Kotlin friendly supportLibrary extension calling.

Test: None
Change-Id: I317174fb90b440ce036230d604d81343f32c4cfb
ommon/build.gradle
ompiler/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
f8b708aca586e946adad0bc3022b0c199224c07f 03-Nov-2017 Aurimas Liutikas <aurimas@google.com> Merge Flatfoot and Support library plugins

- Moves the Android Library project setup into one place
- Add an option for legacy source paths (support lib projects)
- Enables error-prone for flatfoot projects.
- Removes verbose setup of flatfoot android libraries
- Moves to referencing plugins via new plugins { id("foo") } api.

Test: ./gradlew assemble for both projects
Change-Id: I4dab611740353b0825d892169e9e7a96d900796b
ommon/build.gradle
igration/build.gradle
untime/build.gradle
untime/lint-baseline.xml
untime/src/main/java/android/arch/persistence/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/android/arch/persistence/room/Room.java
xjava2/build.gradle
xjava2/lint-baseline.xml
esting/build.gradle
esting/lint-baseline.xml
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
ab8bc439d03bbab9763cdb6e75ffbc1aa8639b90 06-Nov-2017 Aurimas Liutikas <aurimas@google.com> Move to Gradle 4.3

Test: None
Change-Id: Idacc3f2624c03f8e7e6fae7914101310806c79fc
radle/wrapper/gradle-wrapper.properties
44f6e7df604f80f848434789f9e5bbecf619d9aa 03-Nov-2017 Sergey Vasilinets <sergeyv@google.com> Finalize api & bump version 1.0.0

Test: ./gradlew checkApi
Change-Id: Ic07d2389eed9504becf3aaa43f1f811cedfc5e15
ommon/api/1.0.0.txt
igration/api/1.0.0.txt
igration/build.gradle
untime/api/1.0.0.txt
xjava2/api/1.0.0.txt
esting/api/1.0.0.txt
771816bab34735dd8fb47a93085f6b86c132154c 26-Oct-2017 Chris Craik <ccraik@google.com> Clean up ContiguousDataSource innards

Simplify ContiguousDataSource by removing unnecessary layering, and
removing the last usages of NullPaddedList. Now all of its APIs use
PageResults cleanly.

As part of this cleanup, hid internal APIs being used by
QueryDataSourceTest and ComplexQueryDataSourceTest. Those tests were
removed, since they're not proper integration tests - they're just
poking at the innards of Paging to verify a proof of concept.

Test: tests in paging-common, paging-runtime, room-integration-tests-testapp

Change-Id: Ibf82afde2be100615fcff500144bd5ec210832cf
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
bb726392c2ef0a45f45189cde6708eaf1a213207 27-Oct-2017 Chris Craik <ccraik@google.com> Merge "Add PagedList.BoundaryCallback for network use case" into oc-mr1-support-27.0-dev
67077406223e49eba5ecd0def10ca80dd6909f16 25-Oct-2017 Chris Craik <ccraik@google.com> Add PagedList.BoundaryCallback for network use case

PagedList.BoundaryCallback
- allows network code to listen for loading-relevant events, like the user has
scrolled near the beginning or end of PagedList data.
- allows network-only usecase to be built on top of Memory-based PagedList DataSource

Deprecates LivePagedListProvider in favor of new LivePagedListBuilder and DataSource.Factory:
- Splits concerns of DataSource construction (and providing access to data) from
creating LiveData<PagedList>
- Allows for growth of construction parameters (including new PagedList.BoundaryCallback)
- Simplifies role of library (like Room) providing data - just implement DataSource.Factory

Bug: 68316389
Test: tests in paging-common, paging-runtime, room-integration-tests-testapp

Change-Id: Idb90d8462b286bbd794c61aa7b148cd813715cfb
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/DataSourceFactoryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryTransactionTest.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/LastNameAscCustomerDataSource.java
429457d6b950a33b9e312f313fc6b4fa8e4ac41c 26-Oct-2017 Aurimas Liutikas <aurimas@google.com> Merge "Add OWNERS files in support project." into oc-mr1-support-27.0-dev
33e1a32a869ef4b296ab616acb47896a32ec5eb5 24-Oct-2017 Florina Muntenescu <florinam@google.com> Adding test size annotation to kotlin integration tests.

Bug: 68136710
Test: NA
Change-Id: I8aed2f5a115793de2c5c623341e321e9adc52952
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/LiveDataQueryTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/RxJava2QueryTest.kt
acf268ba0b48c65ec7cc5070d803c3f94158f45c 20-Oct-2017 Aurimas Liutikas <aurimas@google.com> Add OWNERS files in support project.

Bug: 68037538
Test: None
Change-Id: I7a5908aa98ff594cce5c91a609fc33be9a53b5f7
WNERS
249f616b13bdbd73b0a3fb1af00a8ad90892ade7 17-Oct-2017 Florina Muntenescu <florinam@google.com> Replace some characters with the HTML entities for correct
rendering. Added missing work and paragraph.

Bug: 67890576
Test: NA
Change-Id: Icb5bc81f0c8f3b3e7050196db60078fff46fb641
ommon/src/main/java/android/arch/persistence/room/Relation.java
b376ec7f518d1bd82634315ded03cca0aed3ef48 17-Oct-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "PagedList storage and data access refactor" into oc-mr1-support-27.0-dev
e1178edf8a3082ca7dde8477bb43d001f67db11a 30-Sep-2017 Chris Craik <ccraik@google.com> PagedList storage and data access refactor

- Simplifies PagedList class hierarchy
- unifies PL storage into Page/PagedStorage structures
- TiledPagedList loads all initial pages at once
- TiledPagedList respects Config.initialSizeHint (with rounding, min 2 pages)
- TiledPagedList skips read query if count is 0

support for upcoming work:
- DataSources async API redesign
- support keys stored in pages
- PagedList#getConfig

Bug: 64809611
Bug: 65983562
Bug: 65891711
Test: Tests in paging-common, paging-runtime, room-integration-tests-testapp.

Change-Id: I49f78b30460c51d8aa01e5dbbba8bbb5859513b3
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryTransactionTest.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
d2cdfecb16af89f7b6a92d95f8854b261d2c6c0c 17-Oct-2017 Yigit Boyar <yboyar@google.com> Fix flaky invalidation test

This CL fixes a flakiness in invalidation test where the observer might
not be added before the insertion.

I've also changed it to use the testing library so that we can drain
tasks instead of waiting for observers which significantly speeds up
the test.

Bug: 67836388
Test: InvalidationTest
Change-Id: Icb740a7db1f8114b49393d4ad78d1d071b5902c9
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/InvalidationTest.java
5c67dddba0bac293560a143920efc1ae3a7eef5a 13-Oct-2017 Sergey Vasilinets <sergeyv@google.com> Remove ForeignKeyBundle from public API

Change-Id: Id80b01da178f00fce20f7771851733b6dd25f380
Details: because it is not.
Test: N/A
igration/src/main/java/android/arch/persistence/room/migration/bundle/ForeignKeyBundle.java
e95667c95a29df0963c6be67e3f00b768a20f154 11-Oct-2017 Chris Craik <ccraik@google.com> Merge "Delete unused JDBCOpenHelper" into oc-mr1-support-27.0-dev
25b465c796ebee5bd7d304becbcf6a42fed53056 05-Oct-2017 Yigit Boyar <yboyar@google.com> Support @Transaction in @Query methods.

This CL adds support for using @Transaction in @Query methods.

There are 2 major use cases:
a) query result is big so may not fit in 1 cursor window.
b) query has @Relation fields which are queried separately so
may become inconsistent. For this case, we are printing a warning
to educate the developer and letting them choose if they want to
do it.

Bug: 66011356
Bug: 65112315
Test: QueryTransactionTest, DaoProcessorTest, QueryMethodProcessorTest

Change-Id: I128ce7504f8d042bf427d8eb3257654ce4dda1ff
ommon/src/main/java/android/arch/persistence/room/RoomWarnings.java
ommon/src/main/java/android/arch/persistence/room/Transaction.java
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/TransactionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/RxCallableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/BaseObservableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RxCallableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TiledDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TransactionWrapper.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Warning.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryTransactionTest.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
770e24ba4b41ee7efb966f268ec34fbcbe3a9de1 11-Oct-2017 Chris Craik <ccraik@google.com> Delete unused JDBCOpenHelper

Test: none

Change-Id: I020161430c50a394f1361643b93d48185aa1fe63
ntegration-tests/testapp/src/test/java/android/arch/persistence/room/integration/testapp/db/JDBCOpenHelper.java
611663cf2515c13b87919321ee7272b121645f6f 10-Oct-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "@NonNull in room-runtime" into oc-mr1-support-27.0-dev
e1635fb62c7bfac2b6f74fe6beacc050026f27fc 06-Oct-2017 Sergey Vasilinets <sergeyv@google.com> @NonNull in room-runtime

Also, hide StringUtil class

Test: N/A
Change-Id: Id0dc04dc3409de88ac9a13993db092ed7a3f1408
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/Room.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/migration/Migration.java
untime/src/main/java/android/arch/persistence/room/util/StringUtil.java
d82dbdd766ccc170199df6347de5957fe7593c21 09-Oct-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Disable InvalidationTrackerTest#closedDbAfterOpen that is flaky" into oc-mr1-support-27.0-dev
9ca46219aa94a53b2011b45aa4817da53dce28c0 09-Oct-2017 Aurimas Liutikas <aurimas@google.com> Disable InvalidationTrackerTest#closedDbAfterOpen that is flaky

Test: None
Bug: 65257997
Change-Id: I7bc178c66534db78573c1d185cee150d855698e2
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
4d5701212f3b5804470fa5d0cde2f7e3866ab89b 09-Oct-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Properly close database connection" into oc-mr1-support-27.0-dev
e7b6111a51cd04eddf2ccf3fa2f8cdabfe87e2c6 09-Oct-2017 Yigit Boyar <yboyar@google.com> Properly close database connection

This CL fixes a bug in Room where it would not close the database
properly since it was created in a separate step.

This CL also makes room ready for the next xerial version where
they fixed the memory leak.

Bug: 62473121
Test: existing tests pass
Change-Id: I099eb532f306c600593168d111175e02e8bed6b9
ompiler/src/main/kotlin/android/arch/persistence/room/RoomProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerifier.kt
c7c49c6dded4941a4184d7fedfc3c4f2942bf612 07-Oct-2017 Aurimas Liutikas <aurimas@google.com> Part 2: Move version tracking from manifest meta-data to java resources.

This CL handles app-toolkit projects.

Previously support library tracked its usage by adding meta-data tags
to each library, however that caused issues for certain libraries as
there is a high cost associated with services and meta-data in package
manager.

To work around this issue move to storing version information in java
resource inside the jar META-INF/group_name.version.

Bug: 65418258
Test: ./gradlew buildOnServer
Change-Id: Id45eaa9600bf29cc25736cf61262e5ef046d6c23
untime/src/main/AndroidManifest.xml
xjava2/src/main/AndroidManifest.xml
esting/src/main/AndroidManifest.xml
3636a95826a95f5fa47dcaed375bcb218749deb6 06-Oct-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Disable WITH Query tests before API 21" into oc-mr1-support-27.0-dev
9807dc7f9a14848b9feb088f50895ac3d2a7b5e1 05-Oct-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Validate indices in migrations" into oc-mr1-support-27.0-dev
2db0875dfb15f3d909e7721bd97e3544d0fe9ae1 04-Oct-2017 Yigit Boyar <yboyar@google.com> Validate indices in migrations

This CL improves the database migration to include index validation.

Even though we can extract more information about the index like the
order, since Room APIs do not allow it, we do not verify them.

The pragma was added in 2015 so if we cannot read index value,
we skip index validation.

Bug: 63132683
Test: MigrationTest, TableInfoTest
Change-Id: I01f35be08232f6a6bb22766553e48f7b177a21e4
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Index.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/TableInfoValidationWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
untime/src/androidTest/java/android/arch/persistence/room/migration/TableInfoTest.java
untime/src/main/java/android/arch/persistence/room/util/TableInfo.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
7c6b862542d4850d992813459e2be27f353b2b81 05-Oct-2017 Yigit Boyar <yboyar@google.com> Disable WITH Query tests before API 21

Bug: 36069458
Test: tests are passing on API 16 now
Change-Id: I031ac672ba47a364d1e98901a3b50d8426e6a0cd
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/WithClauseDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/WithClauseTest.java
b9ea73472fb85e1a7074734824ad11c3f64cad83 05-Oct-2017 Yigit Boyar <yboyar@google.com> Pick no-arg constructor by default.

This CL changes the constructor chooser logic to default to the no-arg
constructor if there are multiple. It still prints a warning since it
might be unwanted.

Bug:67353427
Test: PojoProcessorTest#constructor_multipleMatching_withNoArg
Change-Id: Ie548de9a07972d5fb66c6eb32737d687b6d10768
ommon/src/main/java/android/arch/persistence/room/RoomWarnings.java
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Warning.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/TestDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/NoArgClass.kt
8750512e139f11bcd1ee505bc117ef69769f5085 03-Oct-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Allow Integer and Long PrimaryKey without @NonNull annotation, for single PrimaryKeys since SQLite generates them, when null." into oc-mr1-support-27.0-dev
a1be0035ff9cb46339f02db942c990e44eab7075 29-Sep-2017 Florina Muntenescu <florinam@google.com> Allow Integer and Long PrimaryKey without @NonNull annotation, for single PrimaryKeys
since SQLite generates them, when null.

Bug: 67086876
Test: EntityProcessorTest, PrimaryKeyTest
Change-Id: I0b0aa954d7df7bb5e816dfb55214143e06ef4c9e
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PrimaryKeyTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/IntegerPKeyEntity.java
afbbe0af09599e93010b776bf91f54e82f23e7a3 30-Sep-2017 Yigit Boyar <yboyar@google.com> Fail when non-null fields are missing in query

This CL change Room query verification to fail IF one of
the missing columns is annotated with @NonNull. It is
probably un-intended by the developer so it is better
to fail instead of a warning.

Bug: 67115337
Test: QueryMethodProcessorTest#pojo_missingNonNull
Change-Id: I22bd5797eb5fbc22d0dd242683cbbdf0c60457db
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/SchoolDao.java
a9fb9a00b5d207a54759e1a21076ef3e0e04a878 01-Oct-2017 Yigit Boyar <yboyar@google.com> Merge "Handle re-entry in invalidation tracker" into oc-mr1-support-27.0-dev
ae36c8b11a64d3cdc9ba6e37d9f3d1d250fdc4a8 29-Sep-2017 Yigit Boyar <yboyar@google.com> Rename AppToolkitExecutor to ArchTaskExecutor

This CL renames AppToolkitExecutor to ArchTaskExecutor so that if someone sees that
class in a stack trace etc, it is more clear where that class is coming from.

Bug: 38200634
Test: existing tests pass
Change-Id: I252d332c5a7b4602c2a5ab874ec3c235a25bcb6d
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/InvalidationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
xjava2/src/main/java/android/arch/persistence/room/RxRoom.java
f3b01d87d24552e0d716aa6b002fcd54e2522adf 29-Sep-2017 Yigit Boyar <yboyar@google.com> Limit characters in table/column names

SQL is very free on column/table names as long as you put them
inside quotes. This is weird, hardly ever useful and makes code-gen harder.

Instead, we will just limit the set.

This CL also fixes a bug in invalidation tracker where we would
not properly observe tables if it has a space in the name.

Bug: 64749111
Test: SqliteParserTest, EntityProcessorTest, FunnyNamedDaoTest
Change-Id: I6322ee6b3b2c7c74dadc2731032969e52cfbbd98
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/test/kotlin/android/arch/persistence/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/FunnyNamedDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/FunnyNamedDaoTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/FunnyNamedEntity.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
9610cdd0c0def94a85f4b537d05e4b3226cec3b0 29-Sep-2017 Yigit Boyar <yboyar@google.com> Handle re-entry in invalidation tracker

When an instant task executor is used, InvalidationTracker would
skip refresh if it is inside transaction but leave the pending
refresh flag on, which would mean the next endTransaction would
not do anything.

This CL fixes that issue by not triggering the invalidation
tracker if current thread is still in a transaction.

It also changes InvalidationTracker to handle re-entry properly.

Bug: 65471397
Test: RxJava2WithInstantTaskExecutorTest
Change-Id: I97d1d5282080593afa97477a1e9b91f91535c04e
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
cb3c199b2e9bcd094aae2090c6f67fcecc82c824 29-Sep-2017 Shep Shapard <shepshapard@google.com> Merge "Throwing an error when a recursive reference loop is discovered." into oc-mr1-support-27.0-dev
7a0a5828382a054ca08fce1008eb468cfc971edf 28-Sep-2017 Yigit Boyar <yboyar@google.com> Merge "Handle relations in flowable invalidation" into oc-mr1-support-27.0-dev
1a74519922de68e007027d56aae9370ee21f31f9 31-Aug-2017 shepshapard <shepshapard@google.com> Throwing an error when a recursive reference loop is discovered.

Previously, when entities and pojos referenced eachother through
@Embed or @Relation, an endless loop or a StackOverflow error was
would be thrown. Now, our processors will detect the recursion and
will throw a more meaningful error which includes a trace of the
discovered recursion.

Bug: 35980205
Test: PojoProcessorTest#recursion_1Level()
PojoProcessorTest#recursion_2Levels_relationToEmbed()
PojoProcessorTest#recursion_2Levels_onlyEmbeds_pojoToEntity()
PojoProcessorTest#recursion_2Levels_onlyEmbeds_onlyPojos()
PojoProcessorTest#recursion_3Levels()
PojoProcessorTest#recursion_1Level_1LevelDown()
PojoProcessorTest#recursion_branchAtLevel0_afterBackTrack()
PojoProcessorTest#recursion_branchAtLevel1_afterBackTrack()
EntityProcessorTest#recursion_1Level()
EntityProcessorTest#recursion_2Levels_embedToRelation()
EntityProcessorTest#recursion_2Levels_onlyEmbeds_entityToPojo()
EntityProcessorTest#recursion_2Levels_onlyEmbeds_onlyEntities()

Change-Id: Ib66a6e8a44a1efa9f4583085dbb16bc607c1d886
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
4c22afcd70f11a45e350b5729e67dc9f27deb319 21-Sep-2017 Florina Muntenescu <florinam@google.com> Reporting NonNull Primary Key errors for embedded fields' parents

Bug: 66441556
Test: EntityProcessorTest.kt
Change-Id: Iad3e9ce6d9ee4238349fadcd7d0e5356022efb5b
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
8df194b42f73f85f29760e8abe11d879ec49b286 28-Sep-2017 Yigit Boyar <yboyar@google.com> Handle relations in flowable invalidation

This CL fixes a bug where Flowables would ignore their relations
for invalidation checking. It works fine for LiveData but
unfortunately they had different code paths for resolving tables.

This CL merges the two into a base class that can be re-used by
any observable query provider.

Bug: 65219002
Test: RxJava2Test#flowableWithRelation
Change-Id: I3e8d7f35cae0aa8621923b39e108070aeb6c9277
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/ObservableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/FlowableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveDataQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2Test.java
ff860035ea975be71d875a31591c30d8bdcb6a9d 31-Aug-2017 shepshapard <shepshapard@google.com> Doc updates.

Bug: 67010745
Test: N/A (just documentation changes).

Change-Id: I294fd6f0efe945c43c1d15e54090e956c1c43ca2
ommon/src/main/java/android/arch/persistence/room/ForeignKey.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
97253f70d5f0bb5d79736629a18718526d67efa5 21-Sep-2017 Yigit Boyar <yboyar@google.com> Merge "Add @Transaction annotation" into oc-mr1-dev
fc5e04e34a4ffee491143703a364722aa6fba29e 20-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unused member of RoomDatabase Builder" into oc-mr1-dev
2f4954c4f10e675761a365a26c90a604ffbe3d6e 20-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Enforcing a NON NULL constraint on the PrimaryKey" into oc-mr1-dev
5e1181239c9b38af37248ac783435b97fe63c58f 20-Sep-2017 Florina Muntenescu <florinam@google.com> Remove unused member of RoomDatabase Builder

Bug: 66175555
Test: NA
Change-Id: Ic1a9f13f490e0b376bbd655c2f8581ec103d9ca9
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
b3c4d9308e4fd66beca3a7824a5db749ce2aace1 14-Jun-2017 Yuichi Araki <yaraki@google.com> Add @Transaction annotation

@Transaction can be put on methods in abstract Dao classes to make it
run in a transaction.

A non-abstract method is overridden in the derived Dao class and wrapped
in a transaction.

Test: SimpleEntityReadWriteTest, DaoWriterTest
Bug: 66011356
Change-Id: I40ba2c312aa5609ecee950784498a1d811ff5722
ommon/src/main/java/android/arch/persistence/room/Transaction.java
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/TransactionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Dao.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/TransactionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/android/arch/persistence/room/processor/TransactionMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
e7e731e0f2a292ba85aaa11827c77114d40184ab 20-Sep-2017 Yigit Boyar <yboyar@google.com> Merge "Handle kotlin multiline strings" into oc-mr1-dev
efb8087a5f974597d5a6e838567f3276e68e52d4 19-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Mockito on device for Room" into oc-mr1-dev
0348c0148cc4433b787c606e5d658d94ec058e95 19-Sep-2017 Yigit Boyar <yboyar@google.com> Handle kotlin multiline strings

Bug: 65809374
Test: KotlinTestApp#BooksDaoTest#findBooksInMultiLineQuery
Change-Id: Ic403f390e96ac5501ea80db78919b44170708a82
ompiler/src/main/kotlin/android/arch/persistence/room/writer/QueryWriter.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
b3384e3e451af488e2f58f8ec23996751a1fa2e8 19-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Test added covering the getter type for a relation field." into oc-mr1-dev
c5d91f0482a255627fbe00ae85486b18fccb2744 15-Sep-2017 Florina Muntenescu <florinam@google.com> Test added covering the getter type for a relation field.

Bug: 65903329
Test: PojoProcessorTest#relation_badReturnTypeInGetter
Change-Id: I91699e1420101d1c164b0406a50de8b635034ff1
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
322d96c0d1558d7447154f0dec24483e3543964d 19-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Kotlin integration tests added covering Dao inheritance and converters" into oc-mr1-dev
0d59e251a0d971be43cefa8e3907f4332dc7a3c5 13-Sep-2017 Florina Muntenescu <florinam@google.com> Kotlin integration tests added covering Dao inheritance and converters

Bug: 65903121
Test: Kotlintestapp

Change-Id: I1944da13533e6b49c83971b4aa1b448ba8d7e19d
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.TestDatabase/1.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/BooksDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/TestDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BaseDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/dao/DerivedDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestDatabaseTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Author.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/DateConverter.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/StringToIntListConverters.kt
2daa063034703a38a8a510727ebc8f63b49cd8b3 19-Sep-2017 Yuichi Araki <yaraki@google.com> Mockito on device for Room

Bug: 65858477
Test: This fixes the test
Change-Id: I23ea0515b24c92785b0acea3cf0747108a9960d6
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/CustomDatabaseTest.java
a3a639f77c2d82b09b5cbcd4125b1d3b2a8ed252 18-Sep-2017 Yigit Boyar <yboyar@google.com> Ignore transient fields while processing Pojos

Bug: 62600692
Test: PojoProcessorTest#ignoreTransient
Change-Id: I5e8753543dacdccc99ca7154b04bcd196993f087
ommon/src/main/java/android/arch/persistence/room/Entity.java
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
untime/src/main/java/android/arch/persistence/room/package-info.java
8fe7624039b42a6ae9477334ac86a12267113a3b 18-Sep-2017 Yigit Boyar <yboyar@google.com> Move support db to its own group

Also renamed db-impl to db-framework.
new artifact names:
android.arch.persistence.db
android.arch.persistence.db-framework

Bug: 65499710
Test: existing tests pass
Change-Id: I4134ef770bf2fee08716016cb93af36377b6389b
ompiler/build.gradle
b-impl/.gitignore
b-impl/build.gradle
b-impl/src/main/AndroidManifest.xml
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteDatabase.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelper.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelperFactory.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteProgram.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteStatement.java
b/build.gradle
b/src/main/AndroidManifest.xml
b/src/main/java/android/arch/persistence/db/SimpleSQLiteQuery.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteDatabase.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteOpenHelper.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteProgram.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteQuery.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteQueryBuilder.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteStatement.java
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
untime/build.gradle
esting/build.gradle
2b4a201ee53be9d5e3995e62c76f83c07a1ddfdd 16-Sep-2017 Yigit Boyar <yboyar@google.com> API changes in SupportSQLiteDatabase

b/65499876:
Moved versions and database error handler into the callback so that
constants things can be separated from runtime values (context, name).

b/65349673:
Moved database error handler inside the Callback, which avoids the
problem the DatabaseErrorHandler gets an SQLiteDatabase instead of
a SupportSQLiteDatabase. It also seems more suitable in the Callback
since it has other lifecycle events like downgrade, open etc.

Bug: 65499876
Bug: 65349673
Test: room tests pass.

Change-Id: I082e15007556e6d9a4239081150db28b55950572
ompiler/src/main/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelper.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelperFactory.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteOpenHelper.java
untime/src/androidTest/java/android/arch/persistence/room/migration/TableInfoTest.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
540e3498175652abe452d8e0ed1c252e718ddf5a 13-Sep-2017 Florina Muntenescu <florinam@google.com> Enforcing a NON NULL constraint on the PrimaryKey

Intended behaviour:
1. If a key is not autogenerated, but is Primary key or is
part of Primary key we force the developer to add @NonNull annotation
2. if a key is autogenerate, we generate NOT NULL in table spec,
but we don't require @NonNull annotation on the field itself.

Bug: 64292391
Test: EntityProcessorTest, room integration tests

Change-Id: I0b76122680a8f78080a715919e855aa7f414f700
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/test/data/common/input/MultiPKeyEntity.java
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PrimaryKeyTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/ObjectPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetCouple.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/SampleDatabase.java
0a8fd09f1ad194f5e644892c04b78a6fa8026335 15-Sep-2017 Chris Craik <ccraik@google.com> Remove Paging references to LifecycleRegistryOwner

Bug: 65693564
Test: none

It's deprecated, no longer needed with 26.1

Change-Id: I08895ef2a8dfdb27dc8f2afa9fce7c3e4d25381e
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
00ee5dbf62f2238f5cf99ce09ae90ca21c77b60e 15-Sep-2017 Sergey Vasilinets <sergeyv@google.com> Merge "Mark classes not designed for inheritance as 'final'." into oc-mr1-dev
baf7a44c99dfcfb30306906cd264e0692c8e1fbc 14-Sep-2017 Jake Wharton <jakew@google.com> Mark classes not designed for inheritance as 'final'.

In the case of 'SimpleSQLiteQuery' and 'FrameworkSQLiteOpenHelperFactory' they
each implement an interface that is easy to implement yourself and optionally
delegate behavior, or to mock in tests. For 'SupportSQLiteQueryBuilder' there
should not be a reason to extend or mock a builder.

Bug: 65739669
Test: none

Change-Id: Icecd11c8405d6d9a0291b024c1cd949744981edc
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelperFactory.java
b/src/main/java/android/arch/persistence/db/SimpleSQLiteQuery.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteQueryBuilder.java
f830f7064ab813c85b14e5abee8ef349bd7e5177 15-Sep-2017 Yigit Boyar <yboyar@google.com> Merge "Support for the collation sequences in @ColumnInfo" into oc-mr1-dev
83628c90655e3cb8d6d45be7ad88d13ff67d5df8 15-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Javadoc code sample error fixed Bug: 64382126 Test: NA" into oc-mr1-dev
d809f486ce6260186b103cdcda158ff919b4e15e 14-Sep-2017 Yigit Boyar <yboyar@google.com> Move kotlin projects to a plugin

This CL creates the kotlin project plugin so that we can share
the same infra with other projects

Bug: 65644018
Test: local build has the license in pom
Change-Id: Id4f67f1fa75a0398c7f33c5dfc0f97f107bd9ca3
ompiler/build.gradle
cb1c88d8ed89fe3fe7ac44dfaf80f511b866d8e6 13-Sep-2017 Sergey Vasilinets <sergeyv@google.com> Bump supportlib dependency to 26.1

Test: refactoring
bug: 34416241
Change-Id: Ib0c85116d022e426b1a444e942d71ce4c0f68996
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/testapp/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
e60481d48cab1cd64333c23662cc29350d9de715 13-Sep-2017 Florina Muntenescu <florinam@google.com> Javadoc code sample error fixed
Bug: 64382126
Test: NA

Change-Id: If277d5a896d8876d74007e364e3120b1dafd4918
ommon/src/main/java/android/arch/persistence/room/Relation.java
f0d13608aae3b4700d84c1c4532abbea56ea7a28 08-Sep-2017 Chris Craik <ccraik@google.com> Paging doc codesample improvements, api cleanup

Added detail to several docs:
- Both DataSources, added invalidation code.
- All Adapters/AdapterHelpers, added DiffCallback samples
- Simplified samples by removing @NonNull/@Nullable in specific cases

Also rename loadCount -> countItems, to match with the KeyedDataSource
counting APIs.

Avoid need for LiveListAdapterUtil by using a weak reference from the
PagedList to the data presentation layer (Adapter/AdapterHelper)

Bug: 64809611
Test: ./gradlew createFlatfootDocsArchive -PofflineDocs=true

Change-Id: I2df5a9891a96e96f009a311100d7ff4b48a01d3f
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
abd098954d3fe996f336201ccb25884aaa34e07f 12-Sep-2017 Yigit Boyar <yboyar@google.com> Move room to use TiledDataSource

Bug: 64809611
Test: TypeAdapterStoreTest
Change-Id: Ie65a842b64af11fa8485d5c0847cc81b2de89001
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LivePagedListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/CountedDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/TiledDataSourceQueryResultBinder.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
02fd72384988665925726323665068706ecf53d8 11-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Keyed sample with save/restore, associated fixes" into oc-mr1-dev
fd4fa4a65be59806d14e4625397948da008506b4 31-Aug-2017 Chris Craik <ccraik@google.com> Keyed sample with save/restore, associated fixes

Bug:64809611
Test: room-integration-tests-testapp, paging-common, paging-runtime

Full keyed sample, and save/restore added to both the keyed
and positional samples.

Also moves DataSource#isInvalid() checks to be internal and automatic, so e.g.
DB DataSources don't need to call them manually.

Change-Id: I2c674b2d8d45151a23c953bd7d5354cd38f773ec
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomKeyedPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/Customer.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/LastNameAscCustomerDataSource.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
99199c7ef08409ac36c4608e29d3ddbb3f356619 06-Sep-2017 Yigit Boyar <yboyar@google.com> Fix byte buddy error

Looks like core-testing depends on it, which we should remove.
Meanwhile, this fixes the test runner

Bug: 65016384
Test: local am works
Change-Id: I746221762c522f6edf582dbd225ea0eb2e1a3874
ntegration-tests/testapp/build.gradle
8575db83b616ee9f3c35a49a00f51cb672b82d2d 04-Sep-2017 Yuichi Araki <yaraki@google.com> Merge "Fix some integration tests for Room" into oc-mr1-dev
257606324917716435a1a555ef633851e7efcc0f 01-Sep-2017 Yigit Boyar <yboyar@google.com> exclude byte buddy more broadly

Test: local build
Bug: 65016384
Change-Id: I7a279f71acc246bbee69b3fe9ddc8d1c81eb32e2
ntegration-tests/testapp/build.gradle
5a618984f4598fb02c75a59e77de94d1cae15600 01-Sep-2017 Chris Craik <ccraik@google.com> Merge "Paging API refinements, and package name rework" into oc-mr1-dev
ef346ae131affbba6345e00d833103acc5743c8a 29-Aug-2017 Chris Craik <ccraik@google.com> Paging API refinements, and package name rework

Bug: 64809611
Test: tests in paging-runtime, paging-common, room-integration-tests

Change-Id: I1e26f130d95b31494f9a0ef734fd87594de9ddd1
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/test/data/common/input/LivePagedListProvider.java
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/Customer.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
4426106188a6a82a7dbc43e1e068721eee45a799 31-Aug-2017 Shep Shapard <shepshapard@google.com> Merge "Fixed bug where System.lineSeparator() mistakenly used to find new lines in kotlin multiline literals." into oc-mr1-dev
b78956d6a56230a8c2f86b6e749d35e880e4d6ef 30-Aug-2017 shepshapard <shepshapard@google.com> Fixed bug where System.lineSeparator() mistakenly used to find new lines in kotlin multiline literals.

Bug: 64470691
Test: None.

Change-Id: I3ca68bf256cce2b930932925c6034ed72866307c
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Index.kt
d38298284cef36dfa8b0749c675fc653b3ea7935 26-Aug-2017 Yigit Boyar <yboyar@google.com> use explicit versions for flatfoot

This CL moves flatfoot libs to 1.0.0 if SL depends on them.
Also generated the api.txt for these libraries.

Bug: 65022193
Bug: 36069458
Test: checked generated zip file
Change-Id: I405d939e3d0b335a17bbed02eab1792ab6516612
ommon/build.gradle
ompiler/build.gradle
b-impl/build.gradle
b/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
2e9d5136685b07ef5bfabcd3936b1eedb5d24e91 25-Aug-2017 Chris Craik <ccraik@google.com> DataSource key rework

Bug: 64809611
Test: tests in paging-runtime, paging-common, room-integration-tests

Test: QueryDataSourceTest, ComplexQueryDataSourceTest, LimitOffsetDataSourceTest, KeyedDataSourceTest
All data sources now have a Key type, so that KeyedDataSource entirely
avoids positions.

Change-Id: I10ea33794621580e54876e422ffc69c3e21f453e
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LivePagedListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/test/data/common/input/LivePagedListProvider.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
e385da30d6d674daa1dccef17e5e7ccc519bc3dd 29-Aug-2017 Yigit Boyar <yboyar@google.com> Fix LivePagedListProviderTest

The test was relying on old behavior where get triggers a load. It was also
not defining the initial page size.

Bug: 65016384
Test: LivePagedListProviderTest passes

Change-Id: I7eec8693521caf3fbad241bf70ad932957552c86
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
0fea4879bc8ed3c2999bf440ebd6e6ce26e7fc1c 29-Aug-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix mockito setup in Room integration test" into oc-mr1-dev
6be69eb5aa66706ff5880e12c17ea6e62c35eda3 15-Aug-2017 Yuichi Araki <yaraki@google.com> Fix some integration tests for Room

Test: test fixes
Bug: 65138847
Change-Id: I6ad29b2aa19d0ee1e72ca9bc30d3dc4bdfb63ea1
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ConstructorTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ForeignKeyTest.java
9a31bf2f73304e0ad3f5e6a6261c7683bfeeff91 29-Aug-2017 Yuichi Araki <yaraki@google.com> Merge "InvalidationTracker.Observer for multiple tables" into oc-mr1-dev
7d5d958a195a2a69643a2272e95395b2b0276b2a 29-Aug-2017 Yigit Boyar <yboyar@google.com> Fix mockito setup in Room integration test

Bug: 65016384
Test: N/A
Change-Id: I9fc1243fd326555ec394f24d99b9460f90762725
ntegration-tests/testapp/build.gradle
8213d3809b511cd10ebf2f93e1904ff1dc340dee 28-Aug-2017 Chris Craik <ccraik@google.com> Merge "AdapterHelper cleanups, and ContigPagedList fixes" into oc-mr1-dev
114bdca94b6571ef9f45ea6e826715141741d49e 25-Aug-2017 Chris Craik <ccraik@google.com> AdapterHelper cleanups, and ContigPagedList fixes

Test: ContiguousPagedListTest
Bug: 64809611

- fixes off-by-one in ContiguousPagedList prepend
- fixes prefetch load when data already loaded
- misc doc updates

Change-Id: I27cac2dcf9689b26572c4ef0ff8b3604bb46775c
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
68c65b3d9b80517aa814aa6090c99568362214ff 27-Jul-2017 Yuichi Araki <yaraki@google.com> Support for the collation sequences in @ColumnInfo

Add support for the collation sequences for database columns by putting
`collate` parameter in @ColumnInfo.

Bug: 62007004
Test: SimpleEntityReadWriteTest, FieldProcessorTest
Change-Id: I995e200038c580721e8a8088aab7268e6dd437a4
ommon/src/main/java/android/arch/persistence/room/ColumnInfo.java
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Field.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/FieldProcessorTest.kt
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/User.java
08385cfa2c450904f437f8361ec3d3553834989b 28-Aug-2017 Yuichi Araki <yaraki@google.com> InvalidationTracker.Observer for multiple tables

Fix InvalidationTracker to correctly notify a set of invalidated tables
when multiple tables are observed.

Bug: 65099281
Test: InvalidationTest, InvalidationTrackerTest
Change-Id: Ib2d1182dde844bc0169bfb8bf8eb5838102fa9d0
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/InvalidationTest.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
2c56b466fc39da8bc5cb82dc494e534768e65eab 12-Aug-2017 shepshapard <shepshapard@google.com> Fix issue where the name of a common extension table is expected to be
observable when a Dao returns LiveData.

Bug: 62510164
Test: DaoWriterTest#updateDao,
QueryMethodProcessorTest#testLiveDataWithNothingToObserve,
QueryMethodProcessorTest#testLiveDataWithWithClauseAndNothingToObserve,
WithClauseTest#noSourceOfData,
WithClauseTest#sourceOfData,
LiveDataQueryTest#withRelationOnly,
LivedataQueryTest#withWithClause

Change-Id: Id1ac0b5d96cb7db237630dfdd4c8c8c6b502bc28
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveDataQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/SpecificDogDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/WithClauseDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/WithClauseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetsToys.java
04dc233c919a5916a95aec79e70dd4c17a02c8bf 25-Aug-2017 Aurimas Liutikas <aurimas@google.com> Merge "More build setup for flatfoot projects." into oc-mr1-dev
bb85facdec67ba2d8c47fca3e80e6ba480e14fd3 24-Aug-2017 Aurimas Liutikas <aurimas@google.com> More build setup for flatfoot projects.

Bug: 64974262
Test: ./gradlew runBuildServerCompilationTasks
Change-Id: I9d3468603391b573501c1de5e797617bbb91319a
ommon/build.gradle
b-impl/build.gradle
b-impl/proguard-rules.pro
b/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
9adfe48e0670127286c20420be729aa9eab204dc 18-Aug-2017 Chris Craik <ccraik@google.com> Refactor PagedListAdapter(Helper), and add ListAdapter, the plain List version

bug:64809611

Change-Id: Ib6627e8ccdf389d7f16b19bf30470bb485d35196
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/res/values/strings.xml
3738847ee36fbb5d5c4786199268a89d3a4681a3 02-Aug-2017 shepshapard <shepshapard@google.com> Added @Generated annotation to generated files in Room when javax.annotation.Generated exists on classpath.

Bug: 35754778
Change-Id: I0c77b622a0e8a4783cc1e045eab1e97ddb735f70
Fixes: 35754778
Test: Modified unit tests pass.
ompiler/build.gradle
ompiler/src/main/kotlin/android/arch/persistence/room/writer/ClassWriter.kt
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriterTest.kt
24418e9aafa6ae3128ae47cf7087eda46dae4f5d 18-Aug-2017 Chris Craik <ccraik@google.com> Revert "Revert "Paging refactor to unify list/data source types, and simplify mutability""

bug:64838013

Fixed build breakage.

This reverts commit c051b0691f4363110fb3d62193a114b04a8ef344.

Change-Id: I4fd2442d185b4b107e2db45c402f79ed9948bc38
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/CountedDataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveLazyListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LivePagedListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveLazyListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/test/data/common/input/LiveLazyListProvider.java
ompiler/src/test/data/common/input/LivePagedListProvider.java
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LiveLazyListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
untime/src/main/java/android/arch/persistence/room/Room.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
c051b0691f4363110fb3d62193a114b04a8ef344 18-Aug-2017 Chris Craik <ccraik@google.com> Revert "Paging refactor to unify list/data source types, and simplify mutability"

bug:64838013 Fix build breakage

This reverts commit 1cb45e73a41f91534febb7e5d799e1f703fb3763.

Change-Id: I88d2c954f48f1c6693ccfc31b3b62a37c5abac9a
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/CountedDataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveLazyListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LivePagedListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveLazyListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/test/data/common/input/LiveLazyListProvider.java
ompiler/src/test/data/common/input/LivePagedListProvider.java
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LiveLazyListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
untime/src/main/java/android/arch/persistence/room/Room.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
1cb45e73a41f91534febb7e5d799e1f703fb3763 15-Jul-2017 Chris Craik <ccraik@google.com> Paging refactor to unify list/data source types, and simplify mutability

Bug: 64809611
Test: new tests passing

- Unified list type for contiguous data sources - null padding is created at initialization, and
consumed as items are loaded. Infinite unpadded, and counted padded lists use same list type
entirely.

- New list and DataSource type for tiled data sources, which can access data at any location.

- Split data source based on keyed vs tiled based implementations. This massively simplified the
few existing data sources, and allowed us to specialize further, making the trivial test (and
limit-offset) code much simpler (and avoiding code that was extremely prone to off by one errors)

- Added PagedListAdapter, which provides convenience wrapper for the AdapterHelper, saving users a
few extra lines of code.

- Uncountable positioning - rework also has relative data source position stored at initialization
so that countable items can use position, without being required to count their dataset. This
supports cases with simple position IDs, but where you: 1) don't want nulls in the data, 2) don't
care about count/scrollbars, 3) can't easily compute the total number.

- PagedList requires data to initialize - Removes need for weird warmup API, avoids showing a list
of nulls to user in countable case, and unifies initialization codepaths.

- PagedList has a snapshot() method that enables DiffUtil to run safely on a background thread on
immutable data, and snapshot-aware diffing that allows a new list to load content while it's being
used in diffing on a background thread.

Not done:

- Parameterized initialization (both init from key, storing key, passing key when creating LiveData<PagedList>)

Change-Id: I7cb945afe37e68aad44cde45277afd7a27416e52
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/CountedDataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/DataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveLazyListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LivePagedListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveLazyListQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LivePagedListQueryResultBinder.kt
ompiler/src/test/data/common/input/LiveLazyListProvider.java
ompiler/src/test/data/common/input/LivePagedListProvider.java
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LiveLazyListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LivePagedListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/PagedListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/RoomPagedListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
untime/src/main/java/android/arch/persistence/room/Room.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
878166e100a507f67bcca16b3963d54fb5e3fdd7 17-Aug-2017 Florina Muntenescu <florinam@google.com> Merge "Updated Kotlin tests to cover Maybe, Single and non_null column constraints. Bug: N/A Test: BooksDaoTest.kt, RxJava2QueryTest.kt" into oc-support-26.0-dev am: 5ef199d768
am: 7b4ea7411b

Change-Id: I0507ae3e372c250a2b7edf6b3f70f1335ac20e4c
7b4ea7411b9ccceda6fe80f96e1705bd41ef413d 17-Aug-2017 Florina Muntenescu <florinam@google.com> Merge "Updated Kotlin tests to cover Maybe, Single and non_null column constraints. Bug: N/A Test: BooksDaoTest.kt, RxJava2QueryTest.kt" into oc-support-26.0-dev
am: 5ef199d768

Change-Id: I29b020340f777287a8ce6a669692be6aece36d52
7167222ccd7a916d7e286352c1399c60f85c090d 16-Aug-2017 Florina Muntenescu <florinam@google.com> Updated Kotlin tests to cover Maybe, Single and non_null column constraints.
Bug: N/A
Test: BooksDaoTest.kt, RxJava2QueryTest.kt

Change-Id: I7e27d78100779eff36fbcd31855bc356cf753a04
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/RxJava2QueryTest.kt
3b66473c11194310b8eeaa21298d5ac549ed3ed0 11-Aug-2017 Shep Shapard <shepshapard@google.com> Merge "Added dontwarn line to room runtime proguard rules to prevent paging library errors." into oc-support-26.0-dev am: 8b47637220
am: 6ddd8fff3f

Change-Id: I90ce6400019295b19defde3f763d72e699fb287f
6ddd8fff3ff51a98d9bb64ac0419043ca2cef7a3 11-Aug-2017 Shep Shapard <shepshapard@google.com> Merge "Added dontwarn line to room runtime proguard rules to prevent paging library errors." into oc-support-26.0-dev
am: 8b47637220

Change-Id: Ic2037eeaf52ff194dc9ee8fa53cd711099c3fbf0
8b47637220897902dd386a0f19bd5425cb5eced6 11-Aug-2017 Shep Shapard <shepshapard@google.com> Merge "Added dontwarn line to room runtime proguard rules to prevent paging library errors." into oc-support-26.0-dev
a0c1a60c78d8b57dcc7e48c63f412d00ea290e13 11-Aug-2017 Florina Muntenescu <florinam@google.com> Incorrect annotation name used in doc. Test: N/A Bug: 64559631 am: 7380433796
am: dfa34df618

Change-Id: Ic2c37bcec9dbea00ba477c6e46465bb28a78544b
dfa34df618d87f65c6b96601deba47a5f41b469a 11-Aug-2017 Florina Muntenescu <florinam@google.com> Incorrect annotation name used in doc. Test: N/A Bug: 64559631
am: 7380433796

Change-Id: I5e58eb03f47bfdd46ca83cf7ab7f155d0c00c0ac
7380433796b419aa4978a611b36af01bd2fde56f 10-Aug-2017 Florina Muntenescu <florinam@google.com> Incorrect annotation name used in doc.
Test: N/A
Bug: 64559631

Change-Id: Ib85f1f51046934935baef5a9b8cf4ca14e2a6c88
ommon/src/main/java/android/arch/persistence/room/TypeConverter.java
2fbef2407486f49d4112bce555fba36b47a3f7a4 08-Aug-2017 shepshapard <shepshapard@google.com> Added dontwarn line to room runtime proguard rules to prevent paging library errors.

Bug: 63945591
Fixes: 63945591
Test: Manually verified bug is fixed.
Change-Id: I662912a242772ea607a5023d7005686b06771bf0
untime/proguard-rules.pro
ac352dde20dca9fa603a85d1910f24f30a14883e 02-Aug-2017 Sergey Vasilinets <sergeyv@google.com> Merge "Fix compilation warnings in Room" into oc-support-26.0-dev am: c4ac41ade3
am: 63df3188f5

Change-Id: I1cf07ba00127e179256e205c09f0cfdbf34d2b05
63df3188f5a7e2214f8d1a1594d9465286888702 02-Aug-2017 Sergey Vasilinets <sergeyv@google.com> Merge "Fix compilation warnings in Room" into oc-support-26.0-dev
am: c4ac41ade3

Change-Id: I35e83bc9060c45f905f0be3d80eb614f9993f7a7
ab02314da9890554022241651f580bae8df43e18 31-Jul-2017 Aurimas Liutikas <aurimas@google.com> Start inserting meta-data version tags per library.

Originally, we inserted one tag for all support library, however
we have libraries (e.g. Lifecycles) that have different versioning
and to support that use case we need to insert a version number per
library.

Test: ./gradlew assembleDebug
Change-Id: Iea71416026e64781ddc249be94ef5242208c1701
b-impl/src/main/AndroidManifest.xml
b/src/main/AndroidManifest.xml
untime/src/main/AndroidManifest.xml
xjava2/src/main/AndroidManifest.xml
esting/src/main/AndroidManifest.xml
d2649c45a34db46fb03a24dcb2a443a92298b5ad 01-Aug-2017 Sergey Vasilinets <sergeyv@google.com> Fix compilation warnings in Room

Test: refactoring.
Change-Id: Id47b88f6ec4e12822865f38845c352093cdef4ee
ompiler/src/main/kotlin/android/arch/persistence/room/RoomProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/TableInfoValidationWriter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriterTest.kt
6c72e20a6cff33956d8803f6d43cdb2e053c769f 28-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "NOT NULL constraint by @NonNull" into oc-support-26.0-dev
am: 4a16fdef70

Change-Id: I5072d879602b4f77dee6ea2a73ba6958a70f8c9e
b2bfd37e6320e795bffafe24cfdc6a1d1b3da035 21-Jul-2017 Yuichi Araki <yaraki@google.com> NOT NULL constraint by @NonNull

NonNull entity fields automatically have NOT NULL constraint in SQLite.

A field is regarded as NonNull when it is either one of these:
- A primitive type
- Annotated with @android.support.annotation.NonNull
- Annotated with @org.jetbrains.annotations.NotNull

Bug: 62007004
Test: SimpleEntityReadWriteTest, EntityProcessorTest
Change-Id: I1d06a89874e8804cca87736573eb0b81166bbab0
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/EmbeddedField.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Field.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/TableInfoValidationWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ompiler/src/test/kotlin/android/arch/persistence/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/vo/IndexTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriterTest.kt
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.BooksDatabase/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/2.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/3.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/4.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/5.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/6.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/7.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/1.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/2.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/3.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/4.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/5.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/6.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/ProductDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Product.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/EntityBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/FieldBundle.java
untime/src/androidTest/java/android/arch/persistence/room/migration/TableInfoTest.java
untime/src/main/java/android/arch/persistence/room/util/TableInfo.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
378cc1a18310397b467604cb18006968d18c63d6 27-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Make support sqlite statement AutoClosable." into oc-support-26.0-dev
am: dccb69dfc2

Change-Id: Id8d0c64ed6d1a0b2d15d4e4bca6e5943d5723360
dccb69dfc235eb7f61096936330e47902e75beb8 27-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Make support sqlite statement AutoClosable." into oc-support-26.0-dev
e0588bf9ceb1228257500a5f982b578d255d6fe0 26-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Document migration transaction case" into oc-support-26.0-dev
am: 87fc5556fe

Change-Id: Ibc95ef813ade7a9df4f46cd369f52961e71062b2
87fc5556fea64d46be2ebc41796d2448a1c8ba30 26-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Document migration transaction case" into oc-support-26.0-dev
efbdbac0bace867527845ceea251b2464ce9af96 26-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "Fix InvalidationTracker for custom database" into oc-support-26.0-dev
am: 720567eba7

Change-Id: I8c4f0ae65f97471dbb66dc69b59bedae80874f74
720567eba70634b9d4efa27e29a3c2bab2bd2a52 26-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "Fix InvalidationTracker for custom database" into oc-support-26.0-dev
a5a871021b3a918085f94641b892cf99d9fb6c6c 25-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Room: Throw if migration is missing." into oc-support-26.0-dev
am: f24ecb4d1e

Change-Id: Ibe67981011ed5fe083a5ffcce43fcf1bf4c9a0dd
f24ecb4d1edf2073d12bf350ae4acf318167402a 25-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Room: Throw if migration is missing." into oc-support-26.0-dev
0d1b036f6868844705cd3b57e96d373edd09b3d5 25-Jul-2017 Yigit Boyar <yboyar@google.com> Make support sqlite statement AutoClosable.

Bug: 63131997
Test: tests on api 15 pass
Change-Id: If12a93d6a083c75ac3843ebbea7dba6f34dbb812
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteProgram.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteStatement.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteProgram.java
untime/src/main/java/android/arch/persistence/room/RoomSQLiteQuery.java
ca7dfff7e510da1833cd4611056cf91f4c44ef19 25-Jul-2017 Yigit Boyar <yboyar@google.com> Document migration transaction case

Bug: 63133319
Test: N/A
Change-Id: I5b3f92548863f11b179104c463b24f86c779923d
untime/src/main/java/android/arch/persistence/room/migration/Migration.java
234f073e2227fcb62a9ed8285c79724de1f0fa92 24-Jul-2017 Yigit Boyar <yboyar@google.com> Room: Throw if migration is missing.

This CL changes the default behavior of Room when a migration is missing.
Previously, we would just clear the database, now we crash.

Developer can opt-in to the clearing behavior by calling the builder
API.

Bug: 63872392
Test: BuilderTest, MigrationTest
Change-Id: I8cdbc42ec0360f2b3354bbeae4e7b718a6ef1fe7
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
untime/src/main/java/android/arch/persistence/room/DatabaseConfiguration.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
untime/src/test/java/android/arch/persistence/room/BuilderTest.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
866c537266e079624da5e36c7760f15567fdfe5c 24-Jul-2017 Florina Muntenescu <florinam@google.com> Merge "Adding a constructor with 2 params for the MigrationTestHelper. Bug: 63130998 Test: MigrationTest" into oc-support-26.0-dev
am: f752b9f28c

Change-Id: I3c901bc2bda5c6fd79930944277790271d08f3e1
f752b9f28cb4c326f46ccfea450ba587fd321ee1 24-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Adding a constructor with 2 params for the MigrationTestHelper. Bug: 63130998 Test: MigrationTest" into oc-support-26.0-dev
1b9a1e7f86ba3740640e23f19aed02b9c852e241 24-Jul-2017 Florina Muntenescu <florinam@google.com> Merge "Kotlin integration tests for Room" into oc-support-26.0-dev
am: 0868b84dda

Change-Id: Ifeed1f39645aab6757594ff7c63e71a76d058cd7
0868b84dda5387d745fd6fd330c49e862d5f4008 24-Jul-2017 Florina Muntenescu <florinam@google.com> Merge "Kotlin integration tests for Room" into oc-support-26.0-dev
14bd6a8aff57a55980159ae8b5cbdb8713725ab7 24-Jul-2017 Florina Muntenescu <florinam@google.com> Adding a constructor with 2 params for the MigrationTestHelper.
Bug: 63130998
Test: MigrationTest

Change-Id: Ib1d0d117df12d736e139750252a74af0860823cc
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
34f575b4b17fe635684e76e02685978477538622 17-Jul-2017 Florina Muntenescu <florinam@google.com> Kotlin integration tests for Room

Bug: N/A
Test: room:integration-tests:kotlintestapp

Change-Id: I25ab46fa45f10f5d38301e2e1edfd365998287ba
ntegration-tests/kotlintestapp/.gitignore
ntegration-tests/kotlintestapp/build.gradle
ntegration-tests/kotlintestapp/proguard-rules.pro
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.BooksDatabase/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/1.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/2.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/3.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/4.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/5.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/6.json
ntegration-tests/kotlintestapp/schemas/android.arch.persistence.room.integration.kotlintestapp.migration.MigrationDbKotlin/7.json
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/BooksDao.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/BooksDatabase.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/migration/MigrationDbKotlin.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/BooksDaoTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/LiveDataQueryTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/LiveDataTestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/RxJava2QueryTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestDatabaseTest.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/test/TestUtil.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Author.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Book.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/BookAuthor.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/BookWithPublisher.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/Publisher.kt
ntegration-tests/kotlintestapp/src/androidTest/java/android/arch/persistence/room/integration/kotlintestapp/vo/PublisherWithBooks.kt
ntegration-tests/kotlintestapp/src/main/AndroidManifest.xml
4790167fe0d6a06d68633a85d7bbe55bcb05130a 24-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "Fix migration with autoincrement primary key" into oc-support-26.0-dev
am: 62de5e0b4c

Change-Id: I69a0c289f1537b9a9e8e727643bb9989715ad67f
62de5e0b4c4f0498e0af8a88eda5696241441ef0 24-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "Fix migration with autoincrement primary key" into oc-support-26.0-dev
48912800f1ec80dab6336191483304082a7a3ecb 22-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Keep list size variables list for DELETE|UPDATE queries" into oc-support-26.0-dev
am: bd9f55f9e1

Change-Id: Idbff218e49eb0cadaef944afc0d8a860ba14ae19
bd9f55f9e165d36f944666d5c2a9ccc170e56dc4 22-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Keep list size variables list for DELETE|UPDATE queries" into oc-support-26.0-dev
1069f0bdadb4068ed0b62276d4e418c9a0ca30c6 21-Jul-2017 Sergey Vasilinets <sergeyv@google.com> Merge "Update com.google.testing.compile:compile-testing to 0.11" into oc-support-26.0-dev
am: fed93f44c7

Change-Id: I763d6c3626e6e7095ca9651f3c365c9e4d76287c
fed93f44c72aea66f066a72fc6b0bf420489ac1a 21-Jul-2017 Sergey Vasilinets <sergeyv@google.com> Merge "Update com.google.testing.compile:compile-testing to 0.11" into oc-support-26.0-dev
5843a353d7d4740a2d6119fdd90f258f645f4f20 13-Jul-2017 Yuichi Araki <yaraki@google.com> Fix InvalidationTracker for custom database

InvalidationTracker queries the database when something changes, but
this can cause exception when the database is closed during the query is
being run. We prevent this by catching the exception, but that's not
enough for custom database implementation as it might throw some types
of exception we don't know about.

This CL introduces a close lock between RoomDatabase and
InvalidationTracker. As far as the database is closed with
RoomDatabase.close(), InvalidationTracker can tell that it is being
closed and stop querying it.

We still need to catch IllegalStateException and SQLiteException because
some tests have to close the underlying SupportSQLiteDatabase bypassing
RoomDatabase and currently there's no way InvalidationTracker can hook
into it.

Bug: 63162311
Test: CustomDatbaseTest
Change-Id: Iece7f95eac886287ea09d69ed44cba786340872b
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/CustomDatabaseTest.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
63e44ca6060a78f1313a4946655f6f0471681867 21-Jul-2017 Yuichi Araki <yaraki@google.com> Fix migration with autoincrement primary key

Ignore the special SQLite3 table `sqlite_sequence` in validation for
unreferenced tables.

Bug: 63393618
Test: MigrationTest
Change-Id: I93748b83970022aca156a6a3005df0de6fc57279
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
0af2c3fe23515ba1b51095e331cd354ecf970010 20-Jul-2017 Sergey Vasilinets <sergeyv@google.com> Update com.google.testing.compile:compile-testing to 0.11

Test: ./gradlew :lifecycle:compiler:test :room:compiler:test
Change-Id: I77c776b328224edd4c07d20a666a2355a59e0b28
ompiler/build.gradle
c0c5dde532e32d5aa3a4271f1a90832ba4ad3143 20-Jul-2017 Yigit Boyar <yboyar@google.com> Read relationships while reading fields
am: c890c012cd

Change-Id: Ia702f1ae3c40ad52ca663ccdd6cac1de87bbc29e
c890c012cd74887025f69a23478bda304076d049 20-Jul-2017 Yigit Boyar <yboyar@google.com> Read relationships while reading fields

This CL fixes a bug where if a Relationship is inside an embedded item,
we would try to set it in the root object.

With this CL, we actually read and set it while reading the embedded
item.

Bug: 63736065
Test: PojoWithRelationTest
Change-Id: I5a49523695498299ac4ddd198e7090bd31a1b65d
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/FieldReadWriteWriter.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoWithRelationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/EmbeddedUserAndAllPets.java
d9a1c84670c4f684943c23efc8813c20ef965eca 20-Jul-2017 Yigit Boyar <yboyar@google.com> Keep list size variables list for DELETE|UPDATE queries

This CL fixes a bug where we would assume that @Query annotations that
run DELETE or UPDATE queries would not receive any arguments. This was
caused because no-arg queries are prepared separately.

Bug: 63872538
Test: SimpleEntityReadWriteTest
Change-Id: I87883a9d67932f0176e6e0f26ef8bd071633f34b
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/QueryWriter.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
a3e3a34b948fc803544bfecc9123cb87d63fa587 20-Jul-2017 Florina Muntenescu <florinam@google.com> Merge "Retaining the Relation annotation for Kotlin. Bug: 62778467 Test: N/A" into oc-support-26.0-dev
am: 2fab9e128a

Change-Id: I1461142532ebe2105dfcfa74dbbc3c3e9a80e1af
2fab9e128aaed2c4139657748dd92e23dc10cb02 20-Jul-2017 Florina Muntenescu <florinam@google.com> Merge "Retaining the Relation annotation for Kotlin. Bug: 62778467 Test: N/A" into oc-support-26.0-dev
da97cf2faf58fa5a74c33bb3d299957ee4d87176 18-Jul-2017 Florina Muntenescu <florinam@google.com> Retaining the Relation annotation for Kotlin.
Bug: 62778467
Test: N/A

Change-Id: I4adff2971ef7b699a162c6e003a6714e8a0dfb99
ommon/src/main/java/android/arch/persistence/room/Relation.java
ba52a75f374afc9e5fc67bc67b0f7875b8e8da1e 18-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Remove paging dependency from compiler." into oc-support-26.0-dev
am: 08a5aa300f

Change-Id: Ifc49373e9fc9f68efe42efc522a55acaf02508b3
08a5aa300f8fe36790e04a2a4da2ee81bf595aee 18-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Remove paging dependency from compiler." into oc-support-26.0-dev
d4eb0d03719ec3f15ae7350125fc0de63f6b5cf0 18-Jul-2017 Yigit Boyar <yboyar@google.com> Remove paging dependency from compiler.

Test: N/A
Bug: 36069458
Change-Id: I3d4ca7e15f247e391b7d788856592edc2bd04622
ompiler/build.gradle
0a960e551c30a074d0942215ae888b7f9ec0df33 18-Jul-2017 Yigit Boyar <yboyar@google.com> Update Query docs to include RxJava Maybe & Single
am: b6faa288a6

Change-Id: I387f71355365bb1507b84bb2e33bb0ea35ce79ac
b6faa288a6994ca345f10a4dedb1dac12c1af0d0 18-Jul-2017 Yigit Boyar <yboyar@google.com> Update Query docs to include RxJava Maybe & Single

Bug: 2548497
Test: built offline docs
Change-Id: I5686f3af205252b3067b9a436004e506e56e00dc
ommon/src/main/java/android/arch/persistence/room/Query.java
ad73eb9405045a8194c5b1296d878b9b2dfb98bf 18-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "hide paging from release" into oc-support-26.0-dev
am: 50442a97e4

Change-Id: Ifc296877e3a1d040e25c7be8136daefac3fb44a5
50442a97e491067205421ac75b240438597a4756 18-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "hide paging from release" into oc-support-26.0-dev
cf0a56aed972a4cf58fbe5e00b39741544709ed4 18-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "Fix @Query without any parameters" into oc-support-26.0-dev
am: a595f18019

Change-Id: I3a4e1f85310ada1854c71f5671926d35d098ac14
a595f18019fa63b75fadc2c9a36f85503ca8b94b 18-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix @Query without any parameters" into oc-support-26.0-dev
3ec9f6254d909d0714f39ebea24250755582b3ef 18-Jul-2017 Yigit Boyar <yboyar@google.com> hide paging from release

Bug: 36069458
Test: N/A
Change-Id: Ic28bc0f12e20c9df1cd6a2f07bbc3c9252870ac9
untime/build.gradle
c72c57c2aa502de616ca409e2144569ff5b53bb7 18-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "Fix integration-tests for Room" into oc-support-26.0-dev
am: c99ef3ade9

Change-Id: I40dc0c73443d5ca0918b83e624dc48472262a607
c99ef3ade9237f0ff7ad006351940e0b1a473383 18-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix integration-tests for Room" into oc-support-26.0-dev
4d0cbeae4358bc55a75e58df488309d152699f2e 18-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Check types while assigning getters/setters." into oc-support-26.0-dev
am: 3af412ec65

Change-Id: I61ec7e8afdd69de4a09b98598281878408ead079
ce93a2f1694895bc19d8974668784d22b04edb30 18-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Add support for Maybe and Single" into oc-support-26.0-dev
am: 8c1b7c7269

Change-Id: Ia7265febdc8d5cfec32e8bbe28f5f67184f3aa6b
3af412ec65aad583df93d03d4a88eac973b9f9dc 18-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Check types while assigning getters/setters." into oc-support-26.0-dev
d4fdfb653308477ad94b64dc976e43041036dfd1 18-Jul-2017 Yuichi Araki <yaraki@google.com> Fix integration-tests for Room

Remove multidex. Fix MigrationTest.

Test: All tests in integration-tests:testapp
Change-Id: Icbfdbaa45344f51e9fe7e2dff171fa279575d60f
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
e088306a4368329d3e00b3da0f4682fc37e54cb8 13-Jul-2017 Yuichi Araki <yaraki@google.com> Fix @Query without any parameters

Bug: 63608092
Test: SimpleEntityReadWriteTest and DaoWriterTest
Change-Id: I9998c18ea2f16501ea57925d6e5b0605ba2f946b
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/data/daoWriter/input/DeletionDao.java
ompiler/src/test/data/daoWriter/input/UpdateDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
0cf0bfe0e88f5d511a2a23495005c2da9ea91fd5 17-Jul-2017 Yigit Boyar <yboyar@google.com> Add support for Maybe and Single

Bug: 62231019
Test: RxJava2Test
Change-Id: Ib747eec847bb22b24b945fa3cfa9c2ea7ef69716
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/RxCallableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RxCallableQueryResultBinder.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
xjava2/src/main/java/android/arch/persistence/room/EmptyResultSetException.java
6d6fe7fde68c1285107cedd5fc18d4c02232a4a6 17-Jul-2017 Yigit Boyar <yboyar@google.com> Check types while assigning getters/setters.

Bug: 63733651
Test: EntityProcessorTest
Change-Id: Ib91cd73a72ae9083e1a638e51ff70e00cc276901
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
e4741f3c41ac76daa649a15764eb3bd4cac3157c 15-Jul-2017 Aurimas Liutikas <aurimas@google.com> Remove unused variables in gradle code of AppToolkit.

Test: None
Change-Id: I7ae166a0058f6ff64e3d27db72ec503120cb5e54
ommon/build.gradle
ompiler/build.gradle
b-impl/build.gradle
b/build.gradle
igration/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
85ca93db24df5965a7f248ee716442f69ae2e265 14-Jul-2017 Chris Craik <ccraik@google.com> Merge "Initial commit of paging component." into oc-support-26.0-dev
f56bb2fe802df5609c01012f0b4c46041603428e 14-Jul-2017 Sergey Vasilinets <sergeyv@google.com> Speculative fix for LiveDataQueryTest.handleGc

Test: LiveDataQueryTest#handleGc
Change-Id: Ie8b3ac933b0ca5d0333cef79744988bcfbb216f2
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
9fd8e6171bbdc37f5516fe15b2d96f4ae926ef1a 23-Jun-2017 Chris Craik <ccraik@google.com> Initial commit of paging component.

This commit introduces a paging component to enable gradual, lazy
loading from large data sources, including Room queries.

The primary entry points are:

1) CountedDataSource, the base class for defining a countable (i.e.
fixed, known size) source of items, such as a Database query.

2) LazyList, the lazy-loading List-like component which pages content
in on a background thread from a CountedDataSource.

3) LiveLazyListProvider, the class which produces DataSources, and
presents a LiveData<LazyList<T>>.

4) LazyListAdapterHelper, which takes a LiveData<LazyList>, and
presents the data simply to an adapter. It computes differences
between versions with DiffUtil, and signalling updates to the adapter.

Currently, Room only presents a limit-offset query as an easy means to
get a LiveData of a LazyList, but it's possible to write a custom data
source to page in data from keyed (including composite-keyed) queries.

Test: new tests
Change-Id: I415879a032d83786d734c26c429828da3b8bc76a
ompiler/build.gradle
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/QueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/CountedDataSourceQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/CursorQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/FlowableQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/InstantQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveDataQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/binderprovider/LiveLazyListQueryResultBinderProvider.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/CountedDataSourceQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveLazyListQueryResultBinder.kt
ompiler/src/test/data/common/input/LiveLazyListProvider.java
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/paging/LiveLazyListProviderTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ComplexQueryDataSourceTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/QueryDataSourceTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/CustomerViewModel.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListActivity.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/LazyListCustomerAdapter.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/Customer.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/CustomerDao.java
ntegration-tests/testapp/src/main/java/android/arch/persistence/room/integration/testapp/database/SampleDatabase.java
ntegration-tests/testapp/src/main/res/layout/activity_recycler_view.xml
ntegration-tests/testapp/src/main/res/values-w820dp/dimens.xml
ntegration-tests/testapp/src/main/res/values/dimens.xml
ntegration-tests/testapp/src/main/res/values/strings.xml
ntegration-tests/testapp/src/test/java/android/arch/persistence/room/integration/testapp/db/JDBCOpenHelper.java
untime/build.gradle
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/RoomSQLiteQuery.java
untime/src/main/java/android/arch/persistence/room/paging/LimitOffsetDataSource.java
e4f10a8bf64e8a672b4ac57e482735d5ec76c4c8 12-Jul-2017 Aurimas Liutikas <aurimas@google.com> Mark LiveDataQueryTest#handleGc medium so it does not block presubmit.

This test is flaking on presubmit blocking changes from landing.

Test: None
Change-Id: I96a4aa99670146184b7efb78c0d95012310b531d
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
85b81aedb3f8ed5482bebaeddc6265e785b8202b 12-Jul-2017 Yuichi Araki <yaraki@google.com> Merge "Add RoomDatabase.Callback" into oc-support-26.0-dev
cf4d34906517d8ced296a96e50339c926a7dfdcd 30-Jun-2017 Yuichi Araki <yaraki@google.com> Add RoomDatabase.Callback

Users can now add Callbacks to RoomDatabase.

Bug: 62699324
Test: DatabaseCallbackTest
Change-Id: I0fa38ba97614e1ad721594d238960b8183e96769
ompiler/src/main/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DatabaseCallbackTest.java
untime/src/main/java/android/arch/persistence/room/DatabaseConfiguration.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
a705df8d15857046453d2670213afcd7cd9462d8 12-Jul-2017 Yigit Boyar <yboyar@google.com> Move to the counting executor to speedup tests.

Bug: 63513657
Test: existing tests pass
Change-Id: I1808a3cfbfe21036603dbc95f53a1663af30e3da
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
1c53f7abe91fb2c6e2a94465b894383ab701857b 12-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Make LiveDataQueryTest.handleGc a MediumTest" into oc-support-26.0-dev
84febb5a3fe9590400d00cbb953a634e6c233cc1 12-Jul-2017 Ian Lake <ilake@google.com> Make LiveDataQueryTest.handleGc a MediumTest

Avoid running the handleGc test on presubmit by
making it a MediumTest

Test: ran the test
BUG: 63513657
Change-Id: Idbb4f10152b5a6c3bd6e6942dd6b9d54226629be
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
b11c4b2147d8c73665a0616f8c6b214469d76eeb 11-Jul-2017 Florina Muntenescu <florinam@google.com> Removing user. from parentColumn mentions in the java doc.
Test: no tests
bug: 63584249

Change-Id: I80ab8b3f479fd7db8c70fd1da249e5b9c881b1dd
ommon/src/main/java/android/arch/persistence/room/Relation.java
b99f8052c06fc71aa623ad589c86fcacf61217e6 11-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Add tests for GC." into oc-support-26.0-dev
64452776029d1f94f54d150c5a0e3d4761ad7c35 10-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Divide core components into runtime and common." into oc-support-26.0-dev
2bc5b84ed32ea5d4643a3e7fc50fb4e8086c2df1 10-Jul-2017 Yigit Boyar <yboyar@google.com> Add tests for GC.

Bug: 63513657
Test: LiveDataQueryTest, InvalidationTrackerTest
Change-Id: I6d7a6efc5b180236e6f41dd44049397af3f5c151
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/InvalidationTrackerTrojan.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
aa4decb2298d680bae12333764b3bccd859c76ac 10-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Revert "Make ComputableLiveData a real LiveData"" into oc-support-26.0-dev
f59164365fb6de9f148b597af5a6e19b3b7c8c2e 10-Jul-2017 Yigit Boyar <yboyar@google.com> Revert "Make ComputableLiveData a real LiveData"

This reverts commit d58f4645f2a8bf29a5e62f7dceceb7b4da9ff337.

Change-Id: I3bd24ed09bdcc63db98a0cdf4f401f2bf682aefe
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/test/data/common/input/ComputableLiveData.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/InvalidationTrackerTrojan.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
97d8e7f3c524b1bc986c9c86f0f92bd8831890a3 10-Jul-2017 Yigit Boyar <yboyar@google.com> Merge "Make ComputableLiveData a real LiveData" into oc-support-26.0-dev
d58f4645f2a8bf29a5e62f7dceceb7b4da9ff337 28-Jun-2017 Yigit Boyar <yboyar@google.com> Make ComputableLiveData a real LiveData

This CL removes the intermediate ComputableLiveData class which
was not a live data :/.

I've also added more tests to ensure that we are handling GC
properly (we were).

Bug: 63513657
Test: LiveDataQueryTest, ComputableLiveDataTest, InvalidationTrackerTest
Change-Id: I9be2330d8009014a1147b6f3ec8aac67b06229ab
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/test/data/common/input/ComputableLiveData.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/InvalidationTrackerTrojan.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
8205ce117ac0673ae2cb62efd9ba888093ffcb71 10-Jul-2017 Yigit Boyar <yboyar@google.com> Divide core components into runtime and common.

Bug: 36069458
Test: existing tests pass
Change-Id: I2fee9af971d540e41eb448ff345c2d57dbd54fb1
ntegration-tests/testapp/build.gradle
untime/build.gradle
xjava2/build.gradle
esting/build.gradle
86b3f8d9bd637749668174e0736fe9fbecbcfb09 27-Jun-2017 Yuichi Araki <yaraki@google.com> Multiple Entities in Insert, Update and Delete

Dao can now have @Insert, @Update and @Delete methods with more than one
types of Entities.

Bug: 62682405
Test: SimpleEntityReadWriteTest, *ProcessorTests
Change-Id: Ib2f1afabff237f26d250b3fcf7b2fdf50d01ecff
(cherry picked from commit 77d77afb0cde4df833c6d10f641de2dc81f859b8)
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ShortcutMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/UpdateMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/data/daoWriter/input/DeletionDao.java
ompiler/src/test/data/daoWriter/input/UpdateDao.java
ompiler/src/test/data/daoWriter/input/WriterDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DaoWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
b323d28effe89308dabf211aab93718826ff4f33 28-Jun-2017 Yigit Boyar <yboyar@google.com> stop using mockito all, which is discontinued

Bug: 36069458
Test: existing tests pass
Change-Id: Iafdfef01efac391fb95bcf4e405d6e9c2c0aee0e
ntegration-tests/testapp/build.gradle
untime/build.gradle
xjava2/build.gradle
bccb62d8b52e4683318329411928156997ecb405 26-Jun-2017 Yuichi Araki <yaraki@google.com> BLOB byte array in Query methods

Bug: 62460045
Test: SimpleEntityReadWriteTest
Change-Id: I8022bc7b817e2e949d6d28051beff31419b2e4cc
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/BlobEntityDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/BlobEntity.java
fe2d8696a7ac2ff8192c2f08e556028388735bae 26-Jun-2017 Yuichi Araki <yaraki@google.com> Make column type checks case-insensitive

Bug: 62875382
Test: TableInfoTest
Change-Id: Id98eae152b24e7e2ac5c622db2e819b248dd6322
untime/src/androidTest/java/android/arch/persistence/room/migration/TableInfoTest.java
untime/src/main/java/android/arch/persistence/room/util/TableInfo.java
64cba1f9990a73204dda5f24fdbf249926acc2e0 14-Jun-2017 Yuichi Araki <yaraki@google.com> Add RoomDatabase.runInTransaction

Test: SimpleEntityReadWriteTest
Bug: 38488747
Change-Id: I253b69fa8dcd281c5e4b1665bf2955e65455b192
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
daa68aab1adbf8c5b5c64d2b34a60955da742f1d 15-Jun-2017 Sergey Vasilinets <sergeyv@google.com> Don't call overriden methods with @OnLifecycleEvent twice

bug:62658006
Test: ReflectiveGenericLifecycleObserver
Change-Id: I382a6afc565a8a13902e31d44044bdfc4bd22f00
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
1d3d9d6121d53a4c11223ba475d8954315952a09 15-Jun-2017 Yigit Boyar <yboyar@google.com> Fix addition code for argument size

This CL fixes a problem in the query writer where, while
summing the argument list counts, we would not specify a
separator which defaults to ','. Now we specify empty
string to avoid adding unwanted characters.

Bug: 62608681
Test: DaoWriterTest
Change-Id: If7a9fac6fa0e61d0730845691eb23579ebd30ba1
ompiler/src/main/kotlin/android/arch/persistence/room/writer/QueryWriter.kt
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
17caba59e1fd850fe1381d7311d23afc4e07cdfb 05-Jun-2017 Yuichi Araki <yaraki@google.com> Allow Dao to have constructor with DB param

This change allows abstract Dao class to have a constructor with a
RoomDatabase parameter. The implementation Dao class will call it with
the approppriate database instance.

Bug: 38488747
Test: DaoWriterTest, DatabaseProcessorTest
Change-Id: I6d7fa98b19a99b7a171983422c882557bde306bc
ommon/src/main/java/android/arch/persistence/room/Dao.java
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Dao.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseDaoTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DaoWriterTest.kt
efc6d0fa448a1b64c889a73c6795256f5df654af 09-Jun-2017 Yuichi Araki <yaraki@google.com> Allow Iterable for @Insert, @Update and @Delete

Bug: 62259820
Test: Insertion/ShortcutMethodProcessorTest
Change-Id: I68a17616cdbb955372a5fda1cc84003aeab91df6
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutParameterProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessorTest.kt
untime/src/main/java/android/arch/persistence/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/android/arch/persistence/room/EntityInsertionAdapter.java
e7aea42491c810542ee3f8d9b106d5b8e14bdd14 07-Jun-2017 Yigit Boyar <yboyar@google.com> Change migration test helper to receive instrumentation instance

MigrationTestHelper was trying to open the database in the
test context which does not seem to work in some cases.

Just getting the Instrumentation as an input and using the target
context to open to db solves the problem.

Bug: 62409449
Test: MigrationTest
Change-Id: Ic21baa4853414c78cb365717d38968fbf967c8c6
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
2236f645056249c7b7b7bd9cfb67d8e5256c446d 04-Jun-2017 Yigit Boyar <yboyar@google.com> Support DOA base classes

This CL fixes an isuse where a generic base dao would
be processed properly but the generated code would still
use the generics hence won't compile.

Bug: 62103620
Test: BaseDaoTest.kt
Change-Id: Ibb6ad15e1376f121410a32f770dce442368ae267
ompiler/src/main/kotlin/android/arch/persistence/room/RoomProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseDaoTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DaoWriterTest.kt
c7ec99790d7ae8bdd0cf88b43c3516f667e2fb59 03-Jun-2017 Yigit Boyar <yboyar@google.com> add test for empty in query

Bug: 36023544
Test: SimpleReadWriteTest#emptyInQuery
Change-Id: Idd9aa05c53a33785d4a31a75b9a73af880f4faf0
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
2ec1285ef79d4849069efe95cfbac2307d291a47 31-May-2017 Yuichi Araki <yaraki@google.com> InvalidationTracker now passes invalidated tables

This allows developers to observe multiple tables at the same time and
get notified of which table was actually invalidated.

Bug: 38468740
Test: InvalidationTrackerTest, InvalidationTest, RxRoomTest
Change-Id: I6c2a8c36417c4d9b223a03a54ff5183f17974ab2
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/InvalidationTest.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
xjava2/src/main/java/android/arch/persistence/room/RxRoom.java
xjava2/src/test/java/android/arch/persistence/room/RxRoomTest.java
dd6aaec8254abfee2dd82a5f2c59282f8eeee9ee 31-May-2017 Yuichi Araki <yaraki@google.com> Allow Long[] as return type of @Insert

Bug: 38456866
Test: InsertionMethodProcessorTest
Change-Id: Ic35c93d812fbee2d20cdfe90851d7caee6acd914
ompiler/src/main/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/InsertionMethod.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessorTest.kt
untime/src/main/java/android/arch/persistence/room/EntityInsertionAdapter.java
24b0c2d5bde2848da5caa57d9b1ec2a95d12bcd9 31-May-2017 Yuichi Araki <yaraki@google.com> Fix ForeignKeyTest on API 15 and below

The error message about foreign key constraint has changed from time to
time. This test was failing on API level 14 and 15.

The error message is:
api14: ERROR CODE 19: CONSTRAINT FAILED
api18: FOREIGN KEY CONSTRAINT FAILED (CODE 19)
api21: FOREIGN KEY CONSTRAINT FAILED (CODE 787)

Test: This is a test
Change-Id: Icf2aff95fed7894a18898b671d359f4beccdfe80
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ForeignKeyTest.java
e185ed6ba937bdc218104c18d2615e1ce524adb7 27-May-2017 Yigit Boyar <yboyar@google.com> Simpler SQLite interface

This CL reduces the API surface of the SupportSQLiteDatabase not to include
factory methods or methods. It also changes query methods that receive
String[] to Object[] to workaround the binding bug.

This is still not enough as it depends on android classes. We may later
further reduce this to use no-android APIs but that api will look very
limited unless we can use default methods (which requres android
gradle plugin 3.0 that is not stable right now).

I've also added a simple QueryBuilder to replace methods in the SQLiteDatabase
that receive a million arguments.

Bug: 38481640
Test: existing tests pass
Change-Id: I37dc666235fa31877725d85cc98fb01542d4638a
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteDatabase.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelper.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelperFactory.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteProgram.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteStatement.java
b/src/main/java/android/arch/persistence/db/SimpleSQLiteQuery.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteDatabase.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteOpenHelper.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteQueryBuilder.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteStatement.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationDb.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
untime/src/main/java/android/arch/persistence/room/util/TableInfo.java
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
9ca57725ac137fe0f6ae50c1053ac37b160f43ea 30-May-2017 Yigit Boyar <yboyar@google.com> Fix migration docs

Docs were mentioning that column order must be kept which is
not required anymore.

Bug: 62184684
Test: n/a
Change-Id: I4f4b32befcb0b02ac9b8feffe705e5cf9ace76dc
untime/src/main/java/android/arch/persistence/room/migration/Migration.java
1676c28584028f8427475745d7a779607af67ecb 29-May-2017 Yigit Boyar <yboyar@google.com> Consider nullable types for known column types

When we can get the column type from sqlite at compile time,
we were only considering primitives which is a problem since
the column might be nullable.

This CL fixes that issue by adding nullables into the list.

I've also removed the conveters from basic type to/from string
since it was only useful when we were using the old sqlite API
that requires parameters to be strings. Right now, it just
serves as a misleading edge between type nodes.

Bug: 62100716
Test: TypeAdapterStoreTest, SimpleReadWriteTest
Change-Id: Ifb9c9d41aa694d7a3e1a04b617bbe3dc6e473839
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedPrimitiveToStringConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/PrimitiveToStringConverter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
18f17f79daecd759ec66a2d2d7bf551542fcda4a 26-May-2017 Florina Muntenescu <florinam@google.com> Fixed typo in error message
Bug: 62113348
Test: n/a

Change-Id: I436bdbcad79f7ebd49fd0ccb28922dce1379b041
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
4d4bae3f216e55f824d7d7fbfe2f8861906ee3e2 04-May-2017 Yigit Boyar <yboyar@google.com> s/decompose/embedded

Bug: 37999488
Test: existing test pass
Change-Id: Iafd5ff1a00bea99041f6bef6e70e6050f3b6329d
ommon/src/main/java/android/arch/persistence/room/Decompose.java
ommon/src/main/java/android/arch/persistence/room/Embedded.java
ommon/src/main/java/android/arch/persistence/room/Index.java
ommon/src/main/java/android/arch/persistence/room/PrimaryKey.java
ommon/src/main/java/android/arch/persistence/room/Relation.java
ommon/src/main/java/android/arch/persistence/room/RoomWarnings.java
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/cache/Cache.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Constructor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DecomposedField.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/EmbeddedField.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Entity.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Field.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Pojo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Warning.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/FieldReadWriteWriter.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ompiler/src/test/kotlin/android/arch/persistence/room/verifier/DatabaseVerifierTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ConstructorTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DecompositionTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/EmbeddedTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Address.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetAndToys.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetCouple.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/School.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPet.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPetNonNull.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserWithPetsAndToys.java
3542101509120586bbae17b1f748f302e1fb82a3 04-May-2017 Yigit Boyar <yboyar@google.com> Don't allow anonymous bind parameters.

Bug: 37990862
Test: existing tests pass
Change-Id: I3db2de89a4f46acf1396af4e1d3793bd2def6aec
ommon/src/main/java/android/arch/persistence/room/Query.java
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParserErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Relation.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RelationCollector.kt
ompiler/src/test/data/daoWriter/input/DeletionDao.java
ompiler/src/test/kotlin/android/arch/persistence/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/query/QueryWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ForeignKeyTest.java
untime/src/main/java/android/arch/persistence/room/package-info.java
2e8d5608ba4b3da0a05d6b6cc23d81fe10371970 02-May-2017 Yigit Boyar <yboyar@google.com> Don't allow main thread queries

This CL adds assertions not to run main thread queries in Room.

Bug: 32342709
Test: MainThreadCheckTest
Change-Id: Ib776fa7d1b3a5571008d8804ca9f373cb007101d
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/MainThreadCheckTest.java
untime/src/main/java/android/arch/persistence/room/DatabaseConfiguration.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/SharedSQLiteStatement.java
untime/src/test/java/android/arch/persistence/room/BuilderTest.java
untime/src/test/java/android/arch/persistence/room/SharedSQLiteStatementTest.java
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
d32708b4035303c12f27dfe029a9b8a0881d00a8 25-Apr-2017 Yigit Boyar <yboyar@google.com> update kotlin to 1.1.1

Bug: 36069458
Test: existing tests pass
Change-Id: Ibbe47290185ee4b4cc972af8fac33c0d242d9afd
ompiler/build.gradle
ompiler/src/main/resources/NOTICE.txt
b86bef286718da421268bc52cf4fab7cccb3104c 22-Apr-2017 Sergey Vasilinets <sergeyv@google.com> Make Event an Enum

bug:37571769
Test: refactoring CL.
Change-Id: I30316d3ccecd7720b90968957dcab75c71443d5d
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
64db0cc15b78b62a1d44a70fc8b4552e660d952c 17-Apr-2017 Yigit Boyar <yboyar@google.com> Mass package renaming from android.support to android.arch

Bug: 37429162
Test: ./gradlew check passes

Change-Id: I911766254b6a9f957ef90429a1efc01c209d693a
ommon/src/main/java/android/arch/persistence/room/ColumnInfo.java
ommon/src/main/java/android/arch/persistence/room/Dao.java
ommon/src/main/java/android/arch/persistence/room/Database.java
ommon/src/main/java/android/arch/persistence/room/Decompose.java
ommon/src/main/java/android/arch/persistence/room/Delete.java
ommon/src/main/java/android/arch/persistence/room/Entity.java
ommon/src/main/java/android/arch/persistence/room/ForeignKey.java
ommon/src/main/java/android/arch/persistence/room/Ignore.java
ommon/src/main/java/android/arch/persistence/room/Index.java
ommon/src/main/java/android/arch/persistence/room/Insert.java
ommon/src/main/java/android/arch/persistence/room/OnConflictStrategy.java
ommon/src/main/java/android/arch/persistence/room/PrimaryKey.java
ommon/src/main/java/android/arch/persistence/room/Query.java
ommon/src/main/java/android/arch/persistence/room/Relation.java
ommon/src/main/java/android/arch/persistence/room/RoomMasterTable.java
ommon/src/main/java/android/arch/persistence/room/RoomWarnings.java
ommon/src/main/java/android/arch/persistence/room/SkipQueryVerification.java
ommon/src/main/java/android/arch/persistence/room/TypeConverter.java
ommon/src/main/java/android/arch/persistence/room/TypeConverters.java
ommon/src/main/java/android/arch/persistence/room/Update.java
ommon/src/main/java/com/android/support/room/ColumnInfo.java
ommon/src/main/java/com/android/support/room/Dao.java
ommon/src/main/java/com/android/support/room/Database.java
ommon/src/main/java/com/android/support/room/Decompose.java
ommon/src/main/java/com/android/support/room/Delete.java
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/ForeignKey.java
ommon/src/main/java/com/android/support/room/Ignore.java
ommon/src/main/java/com/android/support/room/Index.java
ommon/src/main/java/com/android/support/room/Insert.java
ommon/src/main/java/com/android/support/room/OnConflictStrategy.java
ommon/src/main/java/com/android/support/room/PrimaryKey.java
ommon/src/main/java/com/android/support/room/Query.java
ommon/src/main/java/com/android/support/room/Relation.java
ommon/src/main/java/com/android/support/room/RoomMasterTable.java
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ommon/src/main/java/com/android/support/room/SkipQueryVerification.java
ommon/src/main/java/com/android/support/room/TypeConverter.java
ommon/src/main/java/com/android/support/room/TypeConverters.java
ommon/src/main/java/com/android/support/room/Update.java
ompiler/build.gradle
ompiler/src/main/kotlin/android/arch/persistence/room/RoomProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/element_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/string_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/ext/type_mirror_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/log/RLog.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/ParserErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/parser/SqlParser.kt
ompiler/src/main/kotlin/android/arch/persistence/room/preconditions/Checks.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/Context.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/OnConflictProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/ShortcutParameterProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/processor/cache/Cache.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/BaseObservableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedPrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/BoxedPrimitiveToStringConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/ByteArrayColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CompositeTypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/CustomTypeConverterWrapper.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/PrimitiveToStringConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/StatementValueBinder.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/ColumnInfo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerificaitonErrors.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/DatabaseVerifier.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/QueryResultInfo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/verifier/jdbc_ext.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/CallType.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Constructor.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/CustomTypeConverter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Dao.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DaoMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Database.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DecomposedField.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Entity.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Field.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/FieldWithIndex.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ForeignKeyAction.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Index.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Pojo.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Relation.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/RelationCollector.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ShortcutMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/ShortcutQueryParameter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/UpdateMethod.kt
ompiler/src/main/kotlin/android/arch/persistence/room/vo/Warning.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/FieldReadWriteWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/PreparedStatementWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/QueryWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/RelationCollectorMethodWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/kotlin/android/arch/persistence/room/writer/TableInfoValidationWriter.kt
ompiler/src/main/kotlin/com/android/support/room/RoomProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/ext/string_ext.kt
ompiler/src/main/kotlin/com/android/support/room/ext/type_mirror_ext.kt
ompiler/src/main/kotlin/com/android/support/room/log/RLog.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParserErrors.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/OnConflictProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ShortcutParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/cache/Cache.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/BaseObservableQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedPrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedPrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ByteArrayColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CustomTypeConverterWrapper.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/StatementValueBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/ColumnInfo.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/DatabaseVerificaitonErrors.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/DatabaseVerifier.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/QueryResultInfo.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/jdbc_ext.kt
ompiler/src/main/kotlin/com/android/support/room/vo/CallType.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Constructor.kt
ompiler/src/main/kotlin/com/android/support/room/vo/CustomTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DaoMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DecomposedField.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldWithIndex.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ForeignKeyAction.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Index.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Pojo.kt
ompiler/src/main/kotlin/com/android/support/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Relation.kt
ompiler/src/main/kotlin/com/android/support/room/vo/RelationCollector.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ShortcutMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ShortcutQueryParameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/UpdateMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/main/kotlin/com/android/support/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/FieldReadWriteWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/PreparedStatementWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/QueryWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/RelationCollectorMethodWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/TableInfoValidationWriter.kt
ompiler/src/main/resources/META-INF/services/javax.annotation.processing.Processor
ompiler/src/test/data/common/input/Book.java
ompiler/src/test/data/common/input/ComputableLiveData.java
ompiler/src/test/data/common/input/LiveData.java
ompiler/src/test/data/common/input/MultiPKeyEntity.java
ompiler/src/test/data/common/input/NotAnEntity.java
ompiler/src/test/data/common/input/Rx2Room.java
ompiler/src/test/data/common/input/User.java
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/input/DeletionDao.java
ompiler/src/test/data/daoWriter/input/UpdateDao.java
ompiler/src/test/data/daoWriter/input/WriterDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/data/databasewriter/input/ComplexDatabase.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/android/arch/persistence/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/processor/UpdateMethodProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/InProcessorTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/TestProcessor.kt
ompiler/src/test/kotlin/android/arch/persistence/room/testing/test_util.kt
ompiler/src/test/kotlin/android/arch/persistence/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/vo/IndexTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/DatabaseWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/EntityCursorConverterWriterTest.kt
ompiler/src/test/kotlin/android/arch/persistence/room/writer/SQLiteOpenHelperWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/UpdateMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/InProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/com/android/support/room/vo/IndexTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DatabaseWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/EntityCursorConverterWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriterTest.kt
b-impl/src/main/AndroidManifest.xml
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteDatabase.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelper.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteOpenHelperFactory.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteProgram.java
b-impl/src/main/java/android/arch/persistence/db/framework/FrameworkSQLiteStatement.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteDatabase.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteOpenHelper.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteOpenHelperFactory.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteProgram.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteStatement.java
b/src/main/AndroidManifest.xml
b/src/main/java/android/arch/persistence/db/SupportSQLiteDatabase.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteOpenHelper.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteProgram.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteQuery.java
b/src/main/java/android/arch/persistence/db/SupportSQLiteStatement.java
b/src/main/java/com/android/support/db/SupportSQLiteDatabase.java
b/src/main/java/com/android/support/db/SupportSQLiteOpenHelper.java
b/src/main/java/com/android/support/db/SupportSQLiteProgram.java
b/src/main/java/com/android/support/db/SupportSQLiteQuery.java
b/src/main/java/com/android/support/db/SupportSQLiteStatement.java
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/1.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/2.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/3.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/4.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/5.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/6.json
ntegration-tests/testapp/schemas/android.arch.persistence.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/1.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/2.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/3.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/4.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/5.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/6.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/PetCoupleDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/SchoolDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/ToyDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ConstructorTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/DecompositionTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/ForeignKeyTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/IdentityDetectionTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/IndexingTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/InvalidationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PojoWithRelationTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/PrimaryKeyTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Address.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/AvgWeightByAge.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Coordinates.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/IntAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/IntegerAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Pet.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetAndToys.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/PetCouple.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/School.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/SchoolRef.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/Toy.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/User.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPet.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserAndPetNonNull.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserIdAndPetNames.java
ntegration-tests/testapp/src/androidTest/java/android/arch/persistence/room/integration/testapp/vo/UserWithPetsAndToys.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/PetCoupleDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/SchoolDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/ToyDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/ConstructorTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/DecompositionTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/ForeignKeyTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/IdentityDetectionTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/IndexingTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/InvalidationTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/PojoTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/PojoWithRelationTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/PrimaryKeyTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/RxJava2Test.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Address.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/AvgWeightByAge.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Coordinates.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/IntAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/IntegerAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Pet.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/PetAndToys.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/PetCouple.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/School.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/SchoolRef.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Toy.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserAndPet.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserAndPetNonNull.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserIdAndPetNames.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserWithPetsAndToys.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
igration/src/main/java/android/arch/persistence/room/migration/bundle/BundleUtil.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/DatabaseBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/EntityBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/FieldBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/ForeignKeyBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/IndexBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/PrimaryKeyBundle.java
igration/src/main/java/android/arch/persistence/room/migration/bundle/SchemaBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/BundleUtil.java
igration/src/main/java/com/android/support/room/migration/bundle/DatabaseBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/EntityBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/FieldBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/ForeignKeyBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/IndexBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/PrimaryKeyBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/SchemaBundle.java
untime/build.gradle
untime/proguard-rules.pro
untime/src/androidTest/java/android/arch/persistence/room/migration/TableInfoTest.java
untime/src/androidTest/java/com/android/support/room/migration/TableInfoTest.java
untime/src/main/AndroidManifest.xml
untime/src/main/java/android/arch/persistence/room/DatabaseConfiguration.java
untime/src/main/java/android/arch/persistence/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/android/arch/persistence/room/EntityInsertionAdapter.java
untime/src/main/java/android/arch/persistence/room/InvalidationTracker.java
untime/src/main/java/android/arch/persistence/room/Room.java
untime/src/main/java/android/arch/persistence/room/RoomDatabase.java
untime/src/main/java/android/arch/persistence/room/RoomOpenHelper.java
untime/src/main/java/android/arch/persistence/room/RoomSQLiteQuery.java
untime/src/main/java/android/arch/persistence/room/SharedSQLiteStatement.java
untime/src/main/java/android/arch/persistence/room/migration/Migration.java
untime/src/main/java/android/arch/persistence/room/package-info.java
untime/src/main/java/android/arch/persistence/room/util/StringUtil.java
untime/src/main/java/android/arch/persistence/room/util/TableInfo.java
untime/src/main/java/com/android/support/room/DatabaseConfiguration.java
untime/src/main/java/com/android/support/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/com/android/support/room/EntityInsertionAdapter.java
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
untime/src/main/java/com/android/support/room/RoomOpenHelper.java
untime/src/main/java/com/android/support/room/RoomSQLiteQuery.java
untime/src/main/java/com/android/support/room/SharedSQLiteStatement.java
untime/src/main/java/com/android/support/room/migration/Migration.java
untime/src/main/java/com/android/support/room/package-info.java
untime/src/main/java/com/android/support/room/util/StringUtil.java
untime/src/main/java/com/android/support/room/util/TableInfo.java
untime/src/test/java/android/arch/persistence/room/BuilderTest.java
untime/src/test/java/android/arch/persistence/room/BuilderTest_TestDatabase_Impl.java
untime/src/test/java/android/arch/persistence/room/InvalidationTrackerTest.java
untime/src/test/java/android/arch/persistence/room/ObservedTableTrackerTest.java
untime/src/test/java/android/arch/persistence/room/RoomSQLiteQueryTest.java
untime/src/test/java/android/arch/persistence/room/SharedSQLiteStatementTest.java
untime/src/test/java/android/arch/persistence/room/util/StringUtilTest.java
untime/src/test/java/com/android/support/room/BuilderTest.java
untime/src/test/java/com/android/support/room/BuilderTest_TestDatabase_Impl.java
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
untime/src/test/java/com/android/support/room/ObservedTableTrackerTest.java
untime/src/test/java/com/android/support/room/RoomSQLiteQueryTest.java
untime/src/test/java/com/android/support/room/SharedSQLiteStatementTest.java
untime/src/test/java/com/android/support/room/util/StringUtilTest.java
xjava2/build.gradle
xjava2/src/main/AndroidManifest.xml
xjava2/src/main/java/android/arch/persistence/room/RxRoom.java
xjava2/src/main/java/com/android/support/room/RxRoom.java
xjava2/src/test/java/android/arch/persistence/room/RxRoomTest.java
xjava2/src/test/java/com/android/support/room/RxRoomTest.java
esting/build.gradle
esting/src/main/AndroidManifest.xml
esting/src/main/java/android/arch/persistence/room/testing/MigrationTestHelper.java
esting/src/main/java/com/android/support/room/testing/MigrationTestHelper.java
f8c3624579d5761a2d34a7199932492d267f5f85 10-Apr-2017 Yigit Boyar <yboyar@google.com> Add support for arg constructors

This CL adds constructor support to Pojo and Entity processors.
We try to map each constructor parameter to a field based on
its name. If there are conflicts, we fail the compilation.
If there are multiple matching constructors, we fail the compilation
and developer can annotate unwanted ones with @Ignore to workaround
the issue.

This CL also prioritizes PojoRowAdapter over EntityRowAdapter since
it is faster and proguard does a good job on shrinking the generated
code.

Bug: 34611719
Bug: 36473441
Bug: 34754519
Test: ConstructorTest, PojoProcessorTest

Change-Id: I70592b129c7dcb9cacfb072b2c63169630eadf9a
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/Ignore.java
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/CallType.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Constructor.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldWithIndex.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Pojo.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/FieldReadWriteWriter.kt
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/EntityCursorConverterWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/ConstructorTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/ForeignKeyTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/AvgWeightByAge.java
489d61a70a742408cda5ca1a4d9788b9f14282a0 11-Apr-2017 Yigit Boyar <yboyar@google.com> Make invalidation tracker test friendly

This CL guards invalidation tracker from unwated failures which
can happen when database is closed.

Bug: 37160100
Test: InvalidationTrackerTest
Change-Id: I53511d89ab30f3dba01bac069a224c3fd5bc1ec0
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationTest.java
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
esting/src/main/java/com/android/support/room/testing/MigrationTestHelper.java
7a705bcaf6c86eae4c28e38f119289826a651e5b 10-Apr-2017 Yigit Boyar <yboyar@google.com> Reuse type adapter store when we can

We used to create a new type adapter store which requires
re-creating all basic adapters. Doing this for each element
is unnecessary and expensive. This CL changes the Context
to copy existing type adapter store if no converters are
specified by the user.

Bug: 37187685
Test: existing tests pass
Change-Id: I5ebf62632dc75de3e6111090a86472cfa7f6fb88
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
5124503104860e68981cc3e3092b95932586f66f 09-Apr-2017 Yigit Boyar <yboyar@google.com> Cache processes pojos and entities

Up until now, we were reprocessing pojos and entities each
time we visit them. e.g. for each dao method. This is
unnecessary as the result won't change unless there are type
adapters involved. This CL adds a global cache for entities
and pojos to avoid re-processing.

Bug: 37187685
Test: DatabaseProcessorTest

Change-Id: If77abb0009b3395b65e1fe9b2ecaf01133f24a50
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/cache/Cache.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DecomposedField.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/test/kotlin/com/android/support/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/PojoProcessorTest.kt
3c592c4ccbc6052b11443b0fa575052c08fefa55 04-Apr-2017 Yigit Boyar <yboyar@google.com> Room RxJava2 Support, Step 1

This CL adds support for returning Flowable & Publisher from
Room DAO queries. We may introduce an Optional support later
for nullable queries.

I've also changed live data check to use type utils instead of string
matching.

Bug: 37009497
Test: RxRoomTest, RxJava2Test
Change-Id: I00e10efcf7599f3d33cd7e4b6b638b546fb5c1e9
ommon/src/main/java/com/android/support/room/Query.java
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/BaseObservableQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/FlowableQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/test/data/common/input/Rx2Room.java
ompiler/src/test/data/common/input/reactivestreams/Publisher.java
ompiler/src/test/data/common/input/rxjava2/Flowable.java
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/RxJava2Test.java
xjava2/build.gradle
xjava2/src/main/AndroidManifest.xml
xjava2/src/main/java/com/android/support/room/RxRoom.java
xjava2/src/test/java/com/android/support/room/RxRoomTest.java
08ddf77b7cc743f85b23e83de8b22b69fe4bf6d2 07-Apr-2017 Yigit Boyar <yboyar@google.com> Verify shortcut method entities

Make sure the shortcut method entity is referenced in the database.

Bug: 36854611
Test: DatabaseProcessorTest
Change-Id: I1f13f012cbbe38feeaac49e18a3b20d7ea16061b
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
9691051d4acf7de89396388ca195f0c569257804 07-Apr-2017 Yigit Boyar <yboyar@google.com> Proguard configuration for Room

Bug: 36685128
Test: tested w/ api review demo
Change-Id: I9e6506d8e313c301d946dadb7da9abb5161de94c
untime/build.gradle
untime/proguard-rules.pro
untime/src/main/java/com/android/support/room/RoomSQLiteQuery.java
36023a6ffdcc24a64c3f86efd4e754cfc3493761 07-Apr-2017 Yigit Boyar <yboyar@google.com> Fix failing tests on API <20

ForeignKeyTest was failing due to a case sensitive comparison
TableInfo test was failing because older sqlite versions do not provide
primary key order. To overcome that, we are now relying on just being a
primary key while doing TableInfo comparison.

Test: TableInfoTest, ForeignKeyTest
Bug: 37105021
Change-Id: Iba4dafc093f5af1920e19911f8fa6112e3603503
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/ForeignKeyTest.java
untime/src/main/java/com/android/support/room/util/TableInfo.java
c4a5787f74164596892999fa876aa9bf963b898d 06-Apr-2017 Yigit Boyar <yboyar@google.com> Specify us locale for table names

Bug: 32342709
Test: InvalidationTrackerTest.java
Change-Id: Ie6e10840cd4c9ceebd60153301b3c7e3f39a0859
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
ebdeee2c668f632384a7c9b3a098f0cccf88e7cd 03-Apr-2017 Yigit Boyar <yboyar@google.com> Foreign keys step 3, verification

Adds foreign key verification to the migration helper and
also adds the foreign key information into the exported
bundle.
The conversions between the exported bundle and the
TableInfo is looking unnecssary but keeping it for now
since it gives us the flexibility between the compile time
representation of the schema and runtime representation
(which is limited).

Bug: 36602348
Test: MigrationTest, TableInfoTest
Change-Id: If40fe520c9930493502cddac3e6c747ef26610df
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/ForeignKey.java
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/com/android/support/room/writer/TableInfoValidationWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/7.json
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationTest.java
igration/src/main/java/com/android/support/room/migration/bundle/EntityBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/ForeignKeyBundle.java
untime/src/androidTest/java/com/android/support/room/migration/TableInfoTest.java
untime/src/main/java/com/android/support/room/util/TableInfo.java
esting/src/main/java/com/android/support/room/testing/MigrationTestHelper.java
0045a1c980b44c882f4ece571a0a113d36bbf0fb 31-Mar-2017 Yigit Boyar <yboyar@google.com> foreign key step 2

This CL adds instrumentation tests for foreign key and code generation.
There is no schema validation yet, it will be in the next CL.

Bug: 36776636
Test: ForeignKeyTest.java
Change-Id: I88d83bb9b43cbf0da5273b31f5b7571b2b927622
ommon/src/main/java/com/android/support/room/ForeignKey.java
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ForeignKeyAction.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/ForeignKeyTest.java
9a2c5933385e9f4444b40e55c9e9e26dac2538b9 31-Mar-2017 Yigit Boyar <yboyar@google.com> Fix database javadoc

Bug: 32342709
Test: docs
Change-Id: I1de770ff6b8b491daaf336c8a4c50c3faa00a620
ommon/src/main/java/com/android/support/room/Database.java
c38e7007e5ff277f8f2dcd3b273185fdbf0d7ce6 31-Mar-2017 Yigit Boyar <yboyar@google.com> fix database docs confusion.

Bug: 36069458
Test: N/A
Change-Id: I58e0209aaa0773df0bf7953f9537c68b0e973abd
untime/src/main/java/com/android/support/room/package-info.java
875203d39f95be2367dec3ee70be4e2169b4e0f0 30-Mar-2017 Yigit Boyar <yboyar@google.com> ForeignKeys parsing step 1.

This CL adds logic to parse foreign keys.
It does not yet generate necessary SQL nor does it export this
information into the bundles. It is also missing any integration
tests (but has processor tests). Integration tests will come
when we write the actual statements in create table queries.

Bug: 36776636
Test: EntityProcessorTest, DatabaseProcessorTest
Change-Id: I31dc5973f64a73921788c0a0cc5bd77291d758c4
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/ForeignKey.java
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ForeignKey.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ForeignKeyAction.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Index.kt
ompiler/src/main/kotlin/com/android/support/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
6728af1603c6082a13533b830a9ef0bbc51ba827 30-Mar-2017 Yigit Boyar <yboyar@google.com> Revert "Use . notation in indices"

This reverts commit e58a8289a82132d557d38d02eb23ade42d0c6328.

Reason for revert: Using . notation just looks like a leaky abstraciton.
We better try to solve this in a more well defined way.

Bug: 36023623
Test: Existing tests pass

Change-Id: Id336df7c8909353ffa6e4036e811fc0ff91699f1
ommon/src/main/java/com/android/support/room/Index.java
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/IndexingTest.java
f385ca501bbfd3ccaf6b412f8f09c64d9ee742f2 30-Mar-2017 Yigit Boyar <yboyar@google.com> Use column names in relationships.

The . notation in relationships leaks the private fields of Entities.
Instead, use column names.

Bug: 34258173
Test: existing tests pass
Change-Id: I37b3b6bb90d2807e680304414a629274dc98cd40
ommon/src/main/java/com/android/support/room/Relation.java
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/RelationCollector.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/PojoProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/PetAndToys.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserIdAndPetNames.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserWithPetsAndToys.java
3a433f7ddbffa6131883cc3b23fc80edf54add19 26-Mar-2017 Yigit Boyar <yboyar@google.com> Validate migration

This CL adds necessary code to validate database integrity after a
migration. This way, if developer does not implement migration
properly, Room will throw an exception.

Test: TableInfoTest, MigrationTest
Bug: 36602348
Change-Id: Id335875387a740344deb76778c5df6978b0212a5
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/TableInfoValidationWriter.kt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/1.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/2.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/3.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/4.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/5.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/6.json
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationTest.java
untime/src/androidTest/java/com/android/support/room/migration/TableInfoTest.java
untime/src/main/java/com/android/support/room/DatabaseConfiguration.java
untime/src/main/java/com/android/support/room/RoomOpenHelper.java
untime/src/main/java/com/android/support/room/migration/Migration.java
untime/src/main/java/com/android/support/room/util/TableInfo.java
esting/build.gradle
esting/src/main/java/com/android/support/room/testing/MigrationTestHelper.java
e13540a25fe5460240b6db0e18858c32d16f5399 31-Mar-2017 Sergey Vasilinets <sergeyv@google.com> Rename LifecycleProvider to LifecycleOwner

Test: refactoring CL.
Change-Id: I89eb662487cd1ca786829defcf90fbc2fb4af001
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/LiveDataQueryTest.java
1c3c123c4def03badd03ae39d5aa31f3094b9525 28-Mar-2017 Yigit Boyar <yboyar@google.com> Don't rely on indices in query results

Room used to depend on index of columns in the query result which
may not be reliable especially with migrations. Instead, we
read the column indices using the cursorReady callback. This will
make migration codes easier since they don't need to recreate the
table for added columns.

Bug: 32342709
Test: existing tests pass
Change-Id: Ic93733d847a8de736cd341f312c2f51d090a8359
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/test/data/daoWriter/output/ComplexDao.java
a64756a18111a7312b3fa03b76d13381a8907176 21-Mar-2017 Yigit Boyar <yboyar@google.com> Room Migrations, Step 1

This CL adds ability to specify migration callbacks.
Developer can specify a list of migrations while building the database
and Room will run them. If a path cannot be found, Room will nuke the
database and recreate.

This CL moves the "version" parameter of the database from the
builder into the annotation. This allows us to export the schema
at compile time to be used later.

This CL also introduces a new "testing" package for Room which is
capable of initializing the database based on the exported schema.
This can be used by the developers to create the database in a
previous schema and migrate to the current one.

Test: MigrationTest, BuilderTest, TableInfoTest
Bug: 36602348
Change-Id: I7d543b20410b14ff61ef1b433c38c44009c86e8d
ommon/src/main/java/com/android/support/room/Database.java
ommon/src/main/java/com/android/support/room/RoomMasterTable.java
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/RoomProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Index.kt
ompiler/src/main/kotlin/com/android/support/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/databasewriter/input/ComplexDatabase.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DatabaseWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriterTest.kt
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteDatabase.java
b/src/main/java/com/android/support/db/SupportSQLiteDatabase.java
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/1.json
ntegration-tests/testapp/schemas/com.android.support.room.integration.testapp.migration.MigrationDb/2.json
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationDb.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/migration/MigrationTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/IndexingTest.java
igration/build.gradle
igration/src/main/java/com/android/support/room/migration/bundle/BundleUtil.java
igration/src/main/java/com/android/support/room/migration/bundle/DatabaseBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/EntityBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/FieldBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/IndexBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/PrimaryKeyBundle.java
igration/src/main/java/com/android/support/room/migration/bundle/SchemaBundle.java
untime/build.gradle
untime/src/main/java/com/android/support/room/DatabaseConfiguration.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
untime/src/main/java/com/android/support/room/RoomOpenHelper.java
untime/src/main/java/com/android/support/room/migration/Migration.java
untime/src/test/java/com/android/support/room/BuilderTest.java
esting/build.gradle
esting/src/main/AndroidManifest.xml
esting/src/main/java/com/android/support/room/testing/MigrationTestHelper.java
77a44be4d08eeed548f01560d9d332ef24138f45 26-Mar-2017 Yigit Boyar <yboyar@google.com> close database connection when processing is done.

Bug: 36623786
Test: existing tests pass
Change-Id: Icd5f5fa0a9e3d61c12593b7c8528d298bddbc983
ompiler/src/main/kotlin/com/android/support/room/RoomProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/DatabaseVerifier.kt
2fa2ccde296e35f2850b227065c27f27e74bce10 06-Mar-2017 Yigit Boyar <yboyar@google.com> Use . notation in indices

This CL changes Index annotation to match fields via their names instead
of column names. This makes it consistent with @Relation and makes it
easy to handle decomposed field indices.

Bug: 35846503
Test: EntityProcessorTest.kt
Change-Id: I43a11564f1ceb52ba95790194a787dce3ede1d1c
ommon/src/main/java/com/android/support/room/Index.java
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Index.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/vo/IndexTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/IndexingTest.java
f5f2cf6b9ed63915448e81551e4b7bb72a26030e 14-Mar-2017 Yigit Boyar <yboyar@google.com> Allow returning id from insert queries.

Bug: 33427828
Test: PrimaryKeyTest.java
Change-Id: I8cbf368b1282f07e3526d1902153946d12e26b3a
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/test/kotlin/com/android/support/room/processor/InsertionMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/PrimaryKeyTest.java
83ebc490a3749991fe049df215491ecc8f7a5cce 09-Mar-2017 Yigit Boyar <yboyar@google.com> Fix artifact names

This CL fixes artifact names to avoid inconsistencies
with the support lib's release tasks.

Bug: 36069458
Test: maven zip has right contents
Change-Id: I068f885824e5527136393e492445fa54336302ff
ommon/build.gradle
ompiler/build.gradle
b-impl/build.gradle
b/build.gradle
untime/build.gradle
0e9d4f65ebc31767b58989b0cbefc79564a9ccaa 08-Mar-2017 Yigit Boyar <yboyar@google.com> Fix Room runtim tests

This CL fixes the runtime tests where it was not running due to
some new additional checks in the invalidation tracker to handle
closed databases.

The test failure was introduced in SHA 021665.

I've missed this because TH was broken due to b/36003194.

Bug: 36043295
Test: InvalidationTrackerTest.
Change-Id: I600641318c0d7b8dc8354864857ba91d6fba1566
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
abd1282bf69658247b310982d529aa48a9466cf4 08-Mar-2017 Yigit Boyar <yboyar@google.com> Fix flaky test

This CL fixes the invalidation test to use a single threaded IO
executor so that we can easily wait on it.

Bug: 34774357
Test: InvalidationTest.java
Change-Id: If03a7af1c14b857b0747236251fddc2c6c78c7f9
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/InvalidationTest.java
092164e5501d0a254001225acd9dca42e5fa57e9 26-Feb-2017 Yigit Boyar <yboyar@google.com> Add @Relation annotation to easily fetch 1-N relationships

This CL adds the @Relation annotation which can be used in
Pojo to fetch sub relationships. Right now, it only supports
1-N relationships but can easily be extended to support
N-N and 1-1 in later CLs.

Bug: 34258173
Test: PojoProcessorTest, PojoWithRelationTest

Change-Id: Ie91fd40c383dfcbffd583f0e7945813d7ec4f4f1
ommon/src/main/java/com/android/support/room/Relation.java
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/CursorQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Pojo.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Relation.kt
ompiler/src/main/kotlin/com/android/support/room/vo/RelationCollector.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/main/kotlin/com/android/support/room/writer/QueryWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/RelationCollectorMethodWriter.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/ToyDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/PojoWithRelationTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestDatabaseTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/PetAndToys.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Toy.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserAndAllPets.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserIdAndPetNames.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserWithPetsAndToys.java
f288e96bb97e063b07b17706d5e97837645bb55d 07-Mar-2017 Yigit Boyar <yboyar@google.com> Improve Room docs

Bug: 32342709
Test: docs build
Change-Id: I32a710a7223284a760f1fe37c0bcf50f945a94fe
ommon/src/main/java/com/android/support/room/ColumnInfo.java
ommon/src/main/java/com/android/support/room/Dao.java
ommon/src/main/java/com/android/support/room/Database.java
ommon/src/main/java/com/android/support/room/Decompose.java
ommon/src/main/java/com/android/support/room/Delete.java
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/Insert.java
ommon/src/main/java/com/android/support/room/Query.java
ommon/src/main/java/com/android/support/room/RoomWarnings.java
fa3905934508aa143d899cb9b62b3b074748c9e9 06-Mar-2017 Yigit Boyar <yboyar@google.com> Verify database after opened

Room now keeps an identity hash on the database and checks it when database
is open to ensure that the schema matches the current one. If not, developer
probably forgot to update the version number so it crashes.

Bug: 35804916
Test: IdentityDetectionTest.java
Change-Id: I441cbb3e78d88874406806af6c36917d1bf0142c
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/resources/NOTICE.txt
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/IdentityDetectionTest.java
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
9f838d20b23756730e73122cdcc896bd4c667421 07-Mar-2017 Yigit Boyar <yboyar@google.com> Fix docs.

Bug: 32342709
Test: generateDocs
Change-Id: I76da81550e7af2ef4af1d29b96863c0979f0c232
ommon/src/main/java/com/android/support/room/OnConflictStrategy.java
7495fc231eec3e6e30c9cdb9f84851f21db9cd14 06-Mar-2017 Yigit Boyar <yboyar@google.com> Unescape table names

This fixes SQLite parser to unescape table names. Otherwise, we would
try to use the name to match in the invalidation tracker.

The actual generated query is not affected by this.

Bug: 32342709
Test: SqlParserTest#unescapeTableNames
Change-Id: Ib0a8fa59cbb2cc96a4d85014470e10514919c116
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/test/kotlin/com/android/support/room/parser/SqlParserTest.kt
946daad80cb572453cefc343fc0cbb9f812d9cd8 06-Mar-2017 Yigit Boyar <yboyar@google.com> Allow returning Cursor from queries

This CL adds ability to return Cursor from queries.

Bug: 32342709
Test: SimpleEntityReadWriteTest#readViaCursor
Change-Id: Ibaf8a46a5b8139681eb473f12c76445d6b7e1e62
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/CursorQueryResultBinder.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
450ed382339544eaf6b7886bc765522fc3446148 02-Mar-2017 Yigit Boyar <yboyar@google.com> Move more of the build into support lib

This CL brings flatfoot's build closer to the support lib.
Now we are also using a global libs map instead of version
numbers. We are also relying on support lib to do the
basic initialization & release tasks.

I've also introduced USE_SUPPORT_LIB_SOURCE environment
flag to build w/ ToT support lib which can be handy while
developing. I'll update support.lib build to include
necessary flatfoot components. That will be the main place
to do the integrated development.

Test: build works
Bug: N/A
Change-Id: I3c6f3777ba66c4cb8f74fc8ce12c5284d399cc1d
ommon/build.gradle
ompiler/build.gradle
b-impl/build.gradle
b/build.gradle
ntegration-tests/testapp/build.gradle
untime/build.gradle
459caadc8f6875fc78a36ae716193bf991f0808c 01-Mar-2017 Sergey Vasilinets <sergeyv@google.com> LiveData.postValue

bug: 35871629
Test: ThreadedLiveDataTest#testPostValue
Change-Id: I37fa717b01705fa3fe515bd7df042a7c6b5df62c
untime/build.gradle
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
untime/src/test/java/com/android/support/room/testutil/JunitTaskExecutorRule.java
untime/src/test/java/com/android/support/room/testutil/TaskExecutorWIthFakeMainThread.java
8a9e8c021596439f81f210a1d2abdd047097dba2 01-Mar-2017 Yigit Boyar <yboyar@google.com> Give higher priority to pojo adapter

This CL changes the type adapter logic to try using a row
adapter before going w/ a single column adapter.
This allows us to properly understand single field pojos
and necessary for relationships.

I've also added more ERROR type checks into the TypeAdapter
to avoid runtime errors.

Bug:32342709
Bug:34258173
Test: existing test pass
Change-Id: I6174ce13df9af25fd3926ba338dd084f89512980
ompiler/src/main/kotlin/com/android/support/room/log/RLog.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleColumnRowAdapter.kt
2c6462f129bf43965ed8b054b026f6a28fe6fd8f 23-Feb-2017 Yigit Boyar <yboyar@google.com> Primary Key improvements

This CL changes @PrimaryKey sytax to disallow multiple fields with
@PrimaryKey annotations. Instead, it enforces using
@Entity#primaryKeys to declare composite primary keys.

This CL also fixes the inheritance rules around PrimaryKeys such that
we'll inherit primary key from super Entity / Pojo if the Entity itself
does not declare any primary keys. If the entity declares a primary
key, the parent key is dropped with a NOTE level log.

Bug: 35706557
Test: EntityProcessorTest#primaryKey*, PrimaryKeyTest.kt
Test: SQLiteOpenHelperWriterTest.kt
Change-Id: Ifcfccf29da21395586e539d0f9b130c7537e5384
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/PrimaryKey.java
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/PrimaryKey.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/test/data/common/input/MultiPKeyEntity.java
ompiler/src/test/kotlin/com/android/support/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/PKeyTestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/PrimaryKeyTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/IntAutoIncPKeyEntity.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/IntegerAutoIncPKeyEntity.java
dc18ce63fe07921b1080e48d3e597e2b5240d17a 21-Feb-2017 Yigit Boyar <yboyar@google.com> Index annotation

This CL adds an Index field to the Entity annotation to create
indices on the table. While Index is good for composite indices,
it might be too verbose for indexing individual fields. For those,
we add a new field to ColumnInfo#index.

When a @Decomposed field has an index, they are dropped but a
warning is printed for each of them.

When a super class has an index, it is dropped but a warning
is printed for each of them. There is also a new inheritSuperIndices
field in the @Entity annotation to inherit these indices.

We also need to change @PrimaryKey to obey these rules. Created
b/35706557 for that.

I've also fixed a bug in Database Impl generation where we were
generating the wrong class for nested classes.

Bug: 35594281
Test: IndexTest.kt, IndexingTest.java, EntityProcessorTest.kt
Change-Id: I9422f4be4e5d59ed7f2f5f98c18bf3966be0496f
ommon/src/main/java/com/android/support/room/ColumnInfo.java
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/Index.java
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Index.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/com/android/support/room/vo/IndexTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/IndexingTest.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/test/java/com/android/support/room/BuilderTest.java
untime/src/test/java/com/android/support/room/BuilderTest_TestDatabase_Impl.java
96cc740203eaa752fc85ca7ca722a8de550ae88c 17-Feb-2017 Yigit Boyar <yboyar@google.com> @Decompose

This CL introduces a new annotation @Decompose which can be used
to merge sub fields of a Pojo into the class that includes it.
This is great for 1-1 relationships or more logical grouping.

This also builds the baseline for Relationships but does not
yet make it very easy (e.g. no easy way to handle join fields
which will have the same name in 2 entities).

This CL also fixes a bug in Pojo processor where it was ignoring
super class's private fields. A ticket is created for it to
properly detect errors w/ inherited fields from super:
b/35568142

Bug: 34258173
Test: PojoProcessorTest.kt, DecompositionTest.java
Change-Id: Idd2617b5fd0ab0ac70750237076158cfc166c53e
ommon/src/main/java/com/android/support/room/Decompose.java
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/OnConflictProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/jdbc_ext.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DecomposedField.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldWithIndex.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Pojo.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ShortcutMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/UpdateMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/FieldReadWriteWriter.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/PojoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/PetCoupleDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/PetDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/SchoolDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserPetDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/DecompositionTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Address.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Coordinates.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/Pet.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/PetCouple.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/School.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/SchoolRef.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserAndPet.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/UserAndPetNonNull.java
74b28faea4bcc4b7fab113a61a066d22dfae7258 15-Feb-2017 Yigit Boyar <yboyar@google.com> @Update annotation

This CL adds support for @Update annotation in @Dao methods.
It has the same semantics as a deletion methods so I've
moved some functionality into shared functions when feasible.

Bug: 32342709
Test: DaoWriter#updateDao, UpdateMethodProcessorTest.kt
Test: SimpleEntityReadWriteTest.java
Change-Id: I86866b82f9114152d3c9eb2fdc4eefa981be1bb0
ommon/src/main/java/com/android/support/room/Insert.java
ommon/src/main/java/com/android/support/room/Update.java
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/OnConflictProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/UpdateMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ShortcutMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ShortcutQueryParameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/UpdateMethod.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityUpdateAdapterWriter.kt
ompiler/src/test/data/daoWriter/input/UpdateDao.java
ompiler/src/test/data/daoWriter/output/UpdateDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/ShortcutMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/UpdateMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
34e95e59b90e821de3621e5e7e6c5a58dbb5891a 17-Feb-2017 Yigit Boyar <yboyar@google.com> Fix column name in entitiy parsers

This CL fixes a bug in Entitiy Cursor generic reader which was
using field name instead of field's column name.

Bug: 35442740
Test: SimpleEntityReadWriteTest#renamedField
Change-Id: Id2fe4dc74e10cd298f1141b5895bb2ee00ac4b4f
ompiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
333b4b5e49c48adf7fb928d445b6f7f276b54a02 15-Feb-2017 Yigit Boyar <yboyar@google.com> Move onConflict strategy to its own class

This moves on conflict strategy to its own class in preparation
for @Upsert and @Update support.

Test: existing tests pass
Bug: 34502968
Change-Id: I34d18a9b19f090b97d4312d9f87f67abe978d1d1
ommon/src/main/java/com/android/support/room/Insert.java
ommon/src/main/java/com/android/support/room/OnConflictStrategy.java
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionMethod.kt
ompiler/src/test/data/daoWriter/input/WriterDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/InsertionMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
e69e470336d0b6a1b4a16fe1783af17143d0c426 10-Feb-2017 Sergey Vasilinets <sergeyv@google.com> Docs build setup for flatfoot

This CL adds more documentation and also integration with support
lib build. The integraiton is hidden behind an environment variable
until support library part is merged into master.

Test: n/a
Bug: n/a
Change-Id: Ic1942c4c156508c1a7afebe9295027c2b9066356
ommon/src/main/java/com/android/support/room/ColumnInfo.java
ommon/src/main/java/com/android/support/room/Dao.java
ommon/src/main/java/com/android/support/room/Database.java
ommon/src/main/java/com/android/support/room/Delete.java
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/Ignore.java
ommon/src/main/java/com/android/support/room/Insert.java
ommon/src/main/java/com/android/support/room/PrimaryKey.java
ommon/src/main/java/com/android/support/room/Query.java
ommon/src/main/java/com/android/support/room/SkipQueryVerification.java
ommon/src/main/java/com/android/support/room/TypeConverter.java
ommon/src/main/java/com/android/support/room/TypeConverters.java
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
b/src/main/java/com/android/support/db/SupportSQLiteDatabase.java
ntegration-tests/testapp/build.gradle
untime/src/main/java/com/android/support/room/DatabaseConfiguration.java
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
untime/src/main/java/com/android/support/room/package-info.java
275e7088223c097c1a2df718455bede42bc9efed 02-Feb-2017 Yigit Boyar <yboyar@google.com> TypeConverters

Tihs CL introduces user defined type converters, which are simple
methods annotated with @TypeConverter.

Each type converter is a custom method that receives 1 parameter
and returns 1 value. The container class for the converter must be
passed into a @TypeConverters annotation to be picked up.
Developer can define these in multiple places depending on the scope
they want to use it.

With this CL, I also migrated @ColumnName annotation into @ColumnInfo
annotation so that we can specify more values. This CL introduces
type affinity field in ColumnInfo. Developers can now specify type
affinity to help the resolution logic to pick the right converter.

Bug: 34610784
Bug: 32342709
Test: CustomConverterProcessorTest.kt, FieldProcessorTest.kt
Test: CustomTypeConverterResolutionTest.kt
Change-Id: I117e4a194e8c93bee58f06a43d688ae04360b08e
ommon/src/main/java/com/android/support/room/ColumnInfo.java
ommon/src/main/java/com/android/support/room/ColumnName.java
ommon/src/main/java/com/android/support/room/TypeConverter.java
ommon/src/main/java/com/android/support/room/TypeConverters.java
ompiler/src/main/kotlin/com/android/support/room/RoomProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/CustomConverterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CustomTypeConverterWrapper.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/StatementValueBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/CustomTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/test/data/common/input/User.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/CustomConverterProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/CustomTypeConverterResolutionTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/EntityCursorConverterWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/AvgWeightByAge.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
untime/src/main/java/com/android/support/room/CursorConverter.java
untime/src/main/java/com/android/support/room/Room.java
fb4fcc8caf2a1908843bd18298447ff6fc498896 04-Feb-2017 Yigit Boyar <yboyar@google.com> Move type converters to be one way

Previously, TypeConverters were enforced to be 2 way which does not make
sense in all cases because it might be necessary just for reading or just
for writing.

This CL refactors the TypeAdapterStore to make them one way. This opens up
the path for potentially serializing / deserializing a value via different
paths.

This should usually be OK but to avoid possible issues, for adapters, we
try to reverse the forward path (the path that takes user's data into
database). If that works, we use it. If not, we try to find a path from the
last node of forward path to the user's value.

For query parameter adapters, we don't really need the logic to read from
cursor. To support then, I've divided ColumnTypeAdapter into 2 interfaces.
StatementValueBinder, CursorValueReader.

TypeAdapterStore now has a specific function to get StatementValueBinder
which does not search for the path to read a cursor value. A similar logic
will be introduced for fields of pojos.

Bug: 32342709
Bug: 34610784
Test: existing tests pass + TypeAdapterStoreTest
Change-Id: I09789e4c0e97debaaa1d9ce422437f401d8fd310
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedPrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ByteArrayColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CursorValueReader.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/IntListConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ReverseTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/StatementValueBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/main/kotlin/com/android/support/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
645abf12d5a13dae5c2271cedd0563a580871a2b 03-Feb-2017 Yigit Boyar <yboyar@google.com> Enforce class writer in CodeGenScope

It is a common requirement for code generators to re-use fields but they
don't have any access to the TypeSpec nor they can communicate w/ other
code generators.

This CL enforces having a ClassWriter in each CodeGenScope and now the
ClassWriter has 2 methods to add shared fields / methods.
These methods have unique identifiers so that we can carefully re-use
them if they match.

Bug: 32342709
Test: existing tests pass
Change-Id: I47d0966fd330ac2fcde7e924c145471aa1c20cbd
ompiler/src/main/kotlin/com/android/support/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/com/android/support/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/PreparedStatementWriter.kt
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
aa82fce1d73394bdc7f4c2510cf94a3572032b24 02-Feb-2017 Yigit Boyar <yboyar@google.com> Introduce forked context

This CL introduces forkable context which allows having scoped
changes in the processer.
A Context now can be forked per element and all ignored annotations
are parsed during the fork which automatically scopes them.
Each processor has to fork the context, and if they don't, they
won't have scoped changes but they won't be able to mess up
with parent's context since it is immutable.

I've changed each processor to be 1 time use so that they can be
scoped to their element. This means they receive all parameters
in the constructor (rather than receiving the element in the
process method). This churns more memory but who cares, it is JVM.

This new scope allows us to get rid of report errors methods in
column adapters because they can freely report their warnings
and filtering happens on the logger side.

I'm hoping that implementing TypeConverters on top of this will be
more straightforward but saving it for another CL.

Bug: 32342709
Test: all existing tests pass after api modifications
Change-Id: Ie6b6a6dd83149c561465905faf5438e006440460
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ompiler/src/main/kotlin/com/android/support/room/RoomProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/ext/type_mirror_ext.kt
ompiler/src/main/kotlin/com/android/support/room/log/RLog.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ShortcutParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/IntListConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/DatabaseVerifier.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Warning.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/QueryWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/EntityCursorConverterWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriterTest.kt
cc1f10f007f087b1ef134bb7e0b524371a3c6514 01-Feb-2017 Yigit Boyar <yboyar@google.com> Use default error handler

This CL sets the default error handler instead of setting it null so that
older platforms do not throw an exception.

Bug: 34864983
Test: existing tests pass
Change-Id: Ib1c9d088b77b4396cdca5d3f87308fb0c44d6db4
b/src/main/java/com/android/support/db/SupportSQLiteOpenHelper.java
fdda61893b7dda4733230f9bf2c975a463f6a00f 27-Jan-2017 Sergey Vasilinets <sergeyv@google.com> Move InvalidationTracker to SafeIterableMap

Test: refactoring CL.
Change-Id: I46c2acda1b5d50dada12a99fdefff91298807b9d
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
5bd1d1b032b37561f015985ca8854b89214bbcb3 29-Jan-2017 Yigit Boyar <yboyar@google.com> Prefer public fields in entities / pojos

This CL changes the Pojo parsing heuristic to prefer most
open method over less open ones. This allows us to generate
code w/o checking visibility constraints. Because we are
always doing the best possible, if it does not compile,
nothing else we can do. The only downside is that we
cannot provide a nice error message.

Bug: 33463891
Test: EntityProcessorTest
Change-Id: I24affe344d88423c9870492cffd3b4db6ea6aeb7
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
13a2048db98b1cc2dbd1692b73b794527975a446 26-Jan-2017 Yigit Boyar <yboyar@google.com> POJO Support

This CL adds ability to return arbitrary POJOs from query results
as long as we match the columns of the result into the pojo.

If the pojo has unused fields or if it ignores some columns from
the result, we show a warning. This warning is listed in
RoomWarnings class and can be disabled via SuppressWarnings.

If SQLVerification is disabled, POJO support does not work.

If the return type is an Entity, we still prefer the entity
converter. This may change in the future.

When converting cursor into POJO, the code is inlined. This
is simpler and avoids the cursor field lookup (because we know
indices ahead of time). This may get expensive if same pojo
is used in multiple places. In the future, we may prefer
creating converters for commonly used pojos.

Bug: 33463891
Test: QueryMethodProcessorTest.kt, PojoTest.java, LiveDataQueryTest.java
Change-Id: Ib82f35d26f839c568e7137c39d4843a9854b20b1
ommon/src/main/java/com/android/support/room/RoomWarnings.java
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/PojoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/SuppressWarningProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/PojoRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Pojo.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/LiveDataQueryTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/PojoTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/AvgWeightByAge.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
fe127e52957171ab9ae20a90c21af2b7877ef188 27-Jan-2017 Yigit Boyar <yboyar@google.com> update atsl

This CL updates testing support lib to match support library
version in hopes to fix the build.

Bug: 33992426
Test: local runner passes
Change-Id: Ibd9c911ec6a3592130aa95d56e0c252515ebc162
ntegration-tests/testapp/build.gradle
88865f77c35657a2bc545a718ca16a648fc8b62e 24-Jan-2017 Yigit Boyar <yboyar@google.com> Database Verification

This CL adds logic to verify @Query sql's at compile time.
This is done by creating an in-memory version of the database
during compile time and preparing queries against it.

This is an optional process that developers can disable via
SkipQueryVerification since there is always a chance that we
won't be able to find the sqlite on the host machine. To minimize
the risk, we are shipping xerial with the compiler.
SkipQueryVerification might be necessary if the developer modifies
the database directly.

Right now, we don't use this information besides making sure
query compiles. In followup CLs, we'll use this information
to validate return types and also allow arbitrary java classes
as return types (fi their fields match the fields in the response).

Bug: 33463891
Test: DatabaseVerifierTest
Change-Id: I9667a3bba15a54f25bbe7795de02eaeb435900f9
ommon/src/main/java/com/android/support/room/SkipQueryVerification.java
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/RoomProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/ColumnInfo.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/DatabaseVerificaitonErrors.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/DatabaseVerifier.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/QueryResultInfo.kt
ompiler/src/main/kotlin/com/android/support/room/verifier/jdbc_ext.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/main/resources/NOTICE.txt
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/verifier/DatabaseVerifierTest.kt
4d19f2e32099754f47664ed3ccb4662cb5465097 23-Jan-2017 Yigit Boyar <yboyar@google.com> Fix localize and add licenses

This CL fixes the localize script which moves dependencies into prebuilts.
It also adds the support for generating license files for projects

Bug: 32342709
Bug: 32342385
Test: n/a
Change-Id: I5b306a2e3aa1c0a80159f3a3abc948677e519f57
ompiler/src/main/resources/NOTICE.txt
1a87a9b1cbefada2e48d200cc9f6f8af9a9a1c44 23-Jan-2017 Yigit Boyar <yboyar@google.com> Add docs to Room annotations.

Bug: 33431072
Test: N/A
Change-Id: I75036eac9ac47445b30823a676322ed96ba85804
ommon/src/main/java/com/android/support/room/ColumnName.java
ommon/src/main/java/com/android/support/room/Dao.java
ommon/src/main/java/com/android/support/room/Database.java
ommon/src/main/java/com/android/support/room/Delete.java
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/Ignore.java
ommon/src/main/java/com/android/support/room/Insert.java
ommon/src/main/java/com/android/support/room/PrimaryKey.java
ommon/src/main/java/com/android/support/room/Query.java
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
8fed7d5361340af73d78232244697117675ac5c3 23-Jan-2017 Yigit Boyar <yboyar@google.com> improve room sqlite-docs and mark sql query hidden

Bug: 32342709
Bug: 34503410
Test: N/A
Change-Id: I3e48bb6e85199ac128f0a77fc39ad06be84e1979
untime/src/main/java/com/android/support/room/RoomSQLiteQuery.java
b030dcb5b7a62854c0bfe85bf04eaf60caeb83bb 20-Jan-2017 Yigit Boyar <yboyar@google.com> Bind Cursor queries in a type safe API

The rawQuery API in SQLiteDatabase class expects all bind arguments
as Strings. Even though this usually works fine for other types due
to SQLite's type affinity logic, it fails in some cases.

To avoid that, this CL replaces the usage of rawQuery with a new
class called SupportSQLQuery which has a callback to bind items
to a query using the prepared statement.

There is no public API to achieve this so this CL adds a new method
to SupportSQLiteDatabase that accepts SupportSQLiteQuery.
In the framework version, this method is implemented using a
CursorFactory.

This callback is not necessarily instantly invoked so to avoid
the risk of binding to wrong values (because method parameters
may change after the call), the SupportSQLiteStatement is prepared
instantly. For this reason, we have a pooled RoomSQLiteStatement
class that implements the SupportSQLiteProgram API and can rebound
its parameters into another SupportSQLiteProgram. In queries, we
instantly populate it and it can be re-run any later time.
This implementation also avoids creating inner classes for each
query.

Bug: 32342709
Bug: 34503410
Test: RoomSQLiteQueryTest, QueryWriterTest, DaoWriterTest
Change-Id: Id74ba3e02d8de1f7df839249327b3baf933f5f84
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/QueryWriter.kt
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteDatabase.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteProgram.java
b/src/main/java/com/android/support/db/SupportSQLiteDatabase.java
b/src/main/java/com/android/support/db/SupportSQLiteQuery.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
untime/src/main/java/com/android/support/room/RoomSQLiteQuery.java
untime/src/test/java/com/android/support/room/RoomSQLiteQueryTest.java
846dfcf52e22de6d912f8ece05ff939c2c9bd154 17-Jan-2017 Yigit Boyar <yboyar@google.com> LiveDataQuery

This CL adds support for returning LiveData<T> from select queries
in DAO classes.

Rather than extending ResultAdapter to handle this, I've created
a new class called ResultBinder which binds the sql and args with
the ResultAdapter. This would be the place for Rx etc to hook
to implement their observability.

Bug: 32342709
Test: LifeDataQueryTest
Change-Id: I44c7d0571e3d92df5d07fb3802791fc793bf5617
uild.gradle
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/InstantQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/LiveDataQueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultBinder.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/QueryWriter.kt
ompiler/src/test/data/common/input/ComputableLiveData.java
ompiler/src/test/data/common/input/LiveData.java
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DatabaseWriterTest.kt
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/InvalidationTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/LiveDataQueryTest.java
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
untime/src/test/java/com/android/support/room/testutil/JunitTaskExecutorRule.java
untime/src/test/java/com/android/support/room/testutil/TaskExecutorWIthFakeMainThread.java
36436741fe52fa90bbeeddf7baa05f97d734f5f1 19-Jan-2017 Yigit Boyar <yboyar@google.com> ComputableLiveData

This CL introduces a LiveData alternative that can be invalidated and
computed. It is hidden for now, if we see the need, we can think about
making it public.

Bug: 32342385
Test: ComputableLiveDataTest
Change-Id: I15656ef0041b737bf0e11c0a899ebbe6f8e75197
untime/src/main/java/com/android/support/room/InvalidationTracker.java
34e5031083f735db3a395b0f6aa430880b072d71 14-Jan-2017 Yigit Boyar <yboyar@google.com> Database invalidation tracking

This CL introduces updated table tracking via sqlite triggers.

There is a new InvalidationTracker class, which creates a version
table in memory that keeps a version for each table. It also
creates triggers for each table and these triggers update the
version table when observed table changes.

When a transaction is committed, we trigger the InvalidationTracker
to refresh itself. This covers all queries that go through Room
but if someone grabs the db and runs a query directly, it wont
work. To support them, there is a public refresh method in the
InvalidationTracker. We may also work around it by wrapping the
SupportSQLiteDatabase.

In a followup CL, I'll introduce an implementataion of
LiveData<T> that observes this table automatically.

Bug: 32342709
Test: InvalidationTrackerTest
Change-Id: I9d0a0cc9dc537200f3fd3cd229df9bfeaf52b56d
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/InvalidationTest.java
untime/build.gradle
untime/src/main/java/com/android/support/room/InvalidationTracker.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
untime/src/main/java/com/android/support/room/util/StringUtil.java
untime/src/test/java/com/android/support/room/BuilderTest.java
untime/src/test/java/com/android/support/room/InvalidationTrackerTest.java
untime/src/test/java/com/android/support/room/ObservedTableTrackerTest.java
untime/src/test/java/com/android/support/room/SharedSQLiteStatementTest.java
9c3bbb729d54b8a80595dc30ae8d0c7a2b8df0fa 13-Jan-2017 Yigit Boyar <yboyar@google.com> Merge flatfoot builds into one.

Bug: 32342385
Bug: 32342709
Test: n/a
Change-Id: I230a6f1b0d45db1dd2c4e6895dbd3fb36e547bbb
ompiler/build.gradle
ettings.gradle
07a5d70dc1f53f9948d61853c4ae84df9e11d7a1 05-Jan-2017 Yigit Boyar <yboyar@google.com> Allow update queries in Query methods

This CL adds support for writing UPDATE queryies in @Query
annotations. It uses the same code path w/ delete, nothing
is different except the type detection.

This CL also fixes a bug where we were enforcing a return type
from Delete queries in @Query methods.

Test: SqlParserTest, SimpleEntityReadWriteTest
Change-Id: I6a0f154dcf2c8804915f7d89074abd1f63681676
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/test/kotlin/com/android/support/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
3db6d309415576ef0080c29705dc30496636a986 30-Dec-2016 Yigit Boyar <yboyar@google.com> Add support for Delete queries in @Query annotations

This CL adds support for runinng DELETE queries in
@Query methods.

If the @Query method has predefined number of bind args,
we create a prepared statement and re-use it. If it
has variable number of args, we recreate the query every
time it is run.

Bug: 32342709
Test: SqlParserTest, SimpleEntityReadWriteTest, QueryMethodProcessorTest
Change-Id: I8d9ad83e36e1eed4ddd5e2d714ffb6cdd9881034
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/PreparedStatementWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/QueryWriter.kt
ompiler/src/test/data/daoWriter/input/DeletionDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/kotlin/com/android/support/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
untime/src/main/java/com/android/support/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/com/android/support/room/EntityInsertionAdapter.java
untime/src/main/java/com/android/support/room/SharedSQLiteStatement.java
untime/src/test/java/com/android/support/room/SharedSQLiteStatementTest.java
958df7dd95c2cecf93cacef6998a4d7e8d39b7ef 28-Dec-2016 Yigit Boyar <yboyar@google.com> @Delete support

This CL adds support for abstract methods in DAO annoated with
@Delete.

It is fairly similar to Insert but there are subtle changes so
they share only limited number of classes. I've decided to name
these methods ShortcutMethods (since they are shortcuts to writing
SQL). Suggestions are welcome.

There will also be support for @Update but the CL is getting big
so i decided to spare it for another CL.

Bug: 32342709
Test: DaoWriterTest, SimpleEntityReadWriteTest
Test: DeletionMethodProcessorTest
Change-Id: Ifbf69067b014f1ae5349567a74b4d3f9efb846c7
ommon/src/main/java/com/android/support/room/Delete.java
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DeletionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ShortcutMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ShortcutParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DeletionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionParameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/ShortcutQueryParameter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityDeletionAdapterWriter.kt
ompiler/src/test/data/common/input/MultiPKeyEntity.java
ompiler/src/test/data/daoWriter/input/DeletionDao.java
ompiler/src/test/data/daoWriter/output/DeletionDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DeletionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
untime/src/main/java/com/android/support/room/EntityDeletionOrUpdateAdapter.java
untime/src/main/java/com/android/support/room/EntityInsertionAdapter.java
e2476a0cdc340c8071c938132b2c77b8349c5a01 26-Dec-2016 Yigit Boyar <yboyar@google.com> Detect query type

This CL generalizes query parsing and reports proper error
if the query type is not one of the supported types.
For now, it is only SELECT.

Also modified some files which didn't have an empty line
at the end.

Bug: 32342709
Test: SqlParserTest.kt
Change-Id: I83be9404e631d1ed667bdb7fbde28c105ec314bc
ompiler/src/main/kotlin/com/android/support/room/ext/string_ext.kt
ompiler/src/main/kotlin/com/android/support/room/log/RLog.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParserErrors.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/com/android/support/room/vo/CallType.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DaoMethod.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/test/kotlin/com/android/support/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/InProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
059b497bb099c867fb65e62047975ffbc41475f4 16-Dec-2016 Yigit Boyar <yboyar@google.com> Database Builder

This CL moves database creation from constructor to builder pattern.
This avoids ugly constructor override in Database classes and provides
flexibility for future changes in the database construction.

Bug: 32342709
Test: BuilderTest.java
Change-Id: I95de0b47fdd0e32045b8e84c07b997dff6a211c4
ompiler/src/main/kotlin/com/android/support/room/writer/DatabaseWriter.kt
ompiler/src/test/data/databasewriter/input/ComplexDatabase.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriterTest.kt
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
untime/src/main/java/com/android/support/room/DatabaseConfiguration.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
untime/src/test/java/com/android/support/room/BuilderTest.java
b00da61a6f283d47454d64a4ec5e7b14f0aeafe6 15-Dec-2016 Yigit Boyar <yboyar@google.com> Annotate tests with size.

Test: N/A
Bug: 32342385
Bug: 32342709
Change-Id: If08e5367a7f6fc17c591324d8f8dd7a04917cb09
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
2eb51995b418b034f58416876b6d27c74e19e4c7 14-Dec-2016 Yigit Boyar <yboyar@google.com> Introduce app-toolkit as a merger project for flatfoot.

This CL creates app-toolkit parent project to compile all
flatfoot. This helps w/ build servers while keeping client
setups simple.

I've also moved the integration-test of lifecycle project
into a regular project.

Similar to support library build,
./gradlew createArchive builds a zip maven repo
./gradlew assembleAndroidTest creates test apsk

Running lint from app-toolkit is not working. Seems like a
tools bug, will test it w/ latest version (lint on individual
projects work fine)

Bug: 33562494
Test: compiles locally
Change-Id: I13444b1716ab13d1d72fc89338a31edce5a08dc4
uild.gradle
ompiler/build.gradle
b-impl/build.gradle
ntegration-tests/testapp/build.gradle
untime/build.gradle
ettings.gradle
fb3e49e459cb40776ce2b4e7744238fc3127d2c5 12-Dec-2016 Yigit Boyar <yboyar@google.com> Flatfoot repo builder

This CL configures flatfoot build to export to a repo next to
support library.

This is just a temporary script until we figure how these
will be shipped.

Bug: 32342709
Bug: 32342385
Test: n/a
Change-Id: I19bd32330de8999dff7443a519888c5cdd027ffd
uild.gradle
ommon/build.gradle
ompiler/build.gradle
ntegration-tests/testapp/build.gradle
af2292b2f53204a3004f53201f51908d70d8090e 12-Dec-2016 Yigit Boyar <yboyar@google.com> Validate table names in databases

This CL adds 2 verifications:
* If a Dao query accesses a table which is not defined by the database,
we show an error.
* If 2+ entities in a Database has the same table name, we show an
error.

Bug: 32342709
Test: DatabaseProcessorTest.kt
Change-Id: Ib52d02f62f04eeca4fdbb7ac909684efb6ffa6fd
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/test/kotlin/com/android/support/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
5ce90e9725b8c9e8fdcef114694d6984a0ef3141 10-Dec-2016 Yigit Boyar <yboyar@google.com> RoomProcessor and Integration test

This CL puts together the very first working version :').

Bug: 32342709
Test: SimpleEntityReadWriteTest.java, DatabaseWriterTest.kt
Change-Id: I7aa449f92b40aac5b682dccc17d276a4e349115b
ompiler/src/main/kotlin/com/android/support/room/RoomProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/main/resources/META-INF/services/javax.annotation.processing.Processor
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/data/databasewriter/input/ComplexDatabase.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DatabaseWriterTest.kt
ntegration-tests/testapp/.gitignore
ntegration-tests/testapp/build.gradle
ntegration-tests/testapp/proguard-rules.pro
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/TestDatabase.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/dao/UserDao.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
ntegration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
ntegration-tests/testapp/src/main/AndroidManifest.xml
untime/src/main/java/com/android/support/room/Room.java
ettings.gradle
c678b3a4eebc102a1a3b5923c5e07478c0eecae3 10-Dec-2016 Yigit Boyar <yboyar@google.com> Entity schema generation.

This CL adds ability to create database schema from Entity classes.

Bug: 32342709
Test: DatabaseWriterTest.kt, SQLiteOpenHelperWriterTest.kt
Change-Id: I13a5d17eabadd2647aa72d24ae45bf7345e83e10
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedPrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/common/input/User.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriterTest.kt
d72e20e472815b7d0918e0d309cee48a71c7988b 09-Dec-2016 Yigit Boyar <yboyar@google.com> Db Writer initial code

This CL creates the database writer and prepares RoomDatabase
for actual implementation.

This is just the skeleton, database creation will happen
in another CL.

Bug: 32342709
Test: DatabaseWriter.kt
Change-Id: I7ce7b9c938c7ba196c8d0b6fc5f08d76e2001696
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DatabaseWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/SQLiteOpenHelperWriter.kt
ompiler/src/test/data/databasewriter/input/ComplexDatabase.java
ompiler/src/test/data/databasewriter/output/ComplexDatabase.java
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DatabaseWriterTest.kt
radle/wrapper/gradle-wrapper.properties
untime/build.gradle
untime/src/main/java/com/android/support/room/DatabaseConfiguration.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
937a77cef9380b6e03e9e3177a563ddcc4fd1fb5 09-Dec-2016 Yigit Boyar <yboyar@google.com> Support Database Implementation

This CL impelements the support database using framework database
classes.

Bug: 30355996
Test: no tests
Change-Id: Idc7e5c8540296f524aa578ebec6a1e01fab541fd
b-impl/.gitignore
b-impl/build.gradle
b-impl/proguard-rules.pro
b-impl/src/main/AndroidManifest.xml
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteDatabase.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteOpenHelper.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteOpenHelperFactory.java
b-impl/src/main/java/com/android/support/db/framework/FrameworkSQLiteStatement.java
b/build.gradle
b/src/main/java/com/android/support/db/SupportSQLiteDatabase.java
b/src/main/java/com/android/support/db/SupportSQLiteOpenHelper.java
radle/wrapper/gradle-wrapper.properties
untime/src/main/java/com/android/support/room/EntityInsertionAdapter.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
ettings.gradle
291985054e698c918df1c735d1042b63b9e97219 09-Dec-2016 Yigit Boyar <yboyar@google.com> Enforce base class for classes annotated with RoomDatabase

Also renamed support db classes to match the framework's naming.

Bug: 32342709
Test: DatabaseProcessorTest
Change-Id: I588d8ddf42b3c91c5b709090659c56ce04a576b8
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
b/src/main/java/com/android/support/db/SupportDb.java
b/src/main/java/com/android/support/db/SupportSQLiteDatabase.java
b/src/main/java/com/android/support/db/SupportSQLiteProgram.java
b/src/main/java/com/android/support/db/SupportSQLiteStatement.java
b/src/main/java/com/android/support/db/SupportSqliteProgram.java
b/src/main/java/com/android/support/db/SupportSqliteStatement.java
untime/src/main/java/com/android/support/room/EntityInsertionAdapter.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
4f0db7db556b473393dfc31bba5ea67def574877 06-Dec-2016 Yigit Boyar <yboyar@google.com> Insertion

This CL adds basic support for inserting data into database.
We allow T, T[], List<T>, Set<T> as inputs.
This CL only supports void return type but support for different
return types (e.g. rowId, primaryKey etc) is coming soon.

This also requires all entity types per method to be the same.
We'll support different types which should make it easier to
insert things in batches (and using transactions).

Bug: 32342709
Test: DaoWriterTest, DaoProcessorTest, InsertionMethodProcessorTest
Change-Id: Icd17b59df75beeb2e89baa2a4ae0acbb3e8de573
ommon/src/main/java/com/android/support/room/Insert.java
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/ext/string_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/InsertionParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/InsertionParameter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityInsertionAdapterWriter.kt
ompiler/src/test/data/common/input/Book.java
ompiler/src/test/data/common/input/NotAnEntity.java
ompiler/src/test/data/common/input/User.java
ompiler/src/test/data/daoWriter/input/WriterDao.java
ompiler/src/test/data/daoWriter/output/WriterDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/InsertionMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
untime/src/main/java/com/android/support/room/EntityInsertionAdapter.java
c308c91470c1c724bd021088aabbc747ccd441f5 07-Dec-2016 Yigit Boyar <yboyar@google.com> Add more db methods, introduce stmt program

Bug: 30355996
Test: no-tests
Change-Id: I5b851b4dc1d5e865bac9bb554be95289f258d085
b/src/main/java/com/android/support/db/SupportDb.java
b/src/main/java/com/android/support/db/SupportSqliteProgram.java
b/src/main/java/com/android/support/db/SupportSqliteStatement.java
efaf86afac3163868eda7f91a1c04e3f6e6d7520 03-Dec-2016 Yigit Boyar <yboyar@google.com> Query result adapters

This CL introduces the mecnism to generate the code for a @Query.

I've also introduced a db package which abstracts all communication
with the SqliteDatabase. This will grow to allow people to swap
the underlying sqlite implementation.

Bug: 32342709
Bug: 30355996
Test: DaoWriterTest.kt, EntityCursorConverterWriterTest.kt
Change-Id: I4962ebd3f095839adf00e36ddd1588df7b4ac9c1
ommon/build.gradle
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/ext/type_mirror_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ParameterParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParameterProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/QueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/QueryWriter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/parameter/QueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ArrayQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/EntityRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/ListQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/QueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/RowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleColumnRowAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/result/SingleEntityQueryResultAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedPrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Parameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryParameter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/ClassWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/DaoWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
ompiler/src/main/kotlin/com/android/support/room/writer/QueryWriter.kt
ompiler/src/test/data/IGNORE_CHECKSTYLE
ompiler/src/test/data/daoWriter/input/ComplexDao.java
ompiler/src/test/data/daoWriter/output/ComplexDao.java
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
ompiler/src/test/kotlin/com/android/support/room/writer/DaoWriterTest.kt
ompiler/src/test/kotlin/com/android/support/room/writer/EntityCursorConverterWriterTest.kt
b/build.gradle
b/src/main/AndroidManifest.xml
b/src/main/java/com/android/support/db/SupportDb.java
b/src/main/java/com/android/support/db/SupportSqliteStatement.java
radle/wrapper/gradle-wrapper.jar
radle/wrapper/gradle-wrapper.properties
radlew
radlew.bat
untime/build.gradle
untime/src/main/java/com/android/support/room/CursorConverter.java
untime/src/main/java/com/android/support/room/Room.java
untime/src/main/java/com/android/support/room/RoomDatabase.java
ettings.gradle
250a3e6dc5d50c533575b7d276730b89eecc7c19 30-Nov-2016 Yigit Boyar <yboyar@google.com> Query Writer

This CL introduces the QueryWriter which can take a QueryMethod
and produces the necessary SQL string and the String[] args
from it.

Bug: 32342709
Test: QueryMethodProcessorTest.kt, QueryWriterTest.kt
Change-Id: I5ba79c3db462bf4111713e774c3e369a893a2793
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/log/RLog.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ParameterParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/ArrayQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/BasicQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/CollectionQueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/QueryParameterAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/query/QueryWriter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedPrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/IntListConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/NoOpConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Parameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/query/QueryWriterTest.kt
untime/src/main/java/com/android/support/room/util/StringUtil.java
8e543c445cb5559e579f54c1ac00d0ca83ec3fbb 30-Nov-2016 Yigit Boyar <yboyar@google.com> Preparations for query adapter

This CL makes some changes in preparation for query adapters.

* re-packaged type adapters to be separated from query adapteres
* Changed TypeAdapter store to create chained TypeConverters that
can be merged with 1 ColumnAdapter to create a CompositeColumnAdapter.
In other words, now both CompositeColumnAdapter and
CompositeTypeConverter have just 2 items and they get chained as needed.
This simplifies the readability of our code a lot and has no effect on
the generated code.
* Implemented type converteres from pritivies to String. It is necessary
to create bind arguments for SQL.
* Cleaned up TypeAdapterStore

Test: BasicTypeConvertersTest.kt + existing tests
Bug: 32342709
Change-Id: Ibcd2e05796be2576847d6627b98d17339dfbea65
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ParameterParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/com/android/support/room/solver/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CompositeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/IntListConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/ReverseTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedBooleanToBoxedIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/BoxedPrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/CompositeTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/IntListConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/PrimitiveToStringConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/ReverseTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/types/TypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Parameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicTypeConvertersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
faf0a687b4b6022196c4a9223d2c901b1e9cebe7 29-Nov-2016 Yigit Boyar <yboyar@google.com> Make processors exception free

If a processor throws an exception, it halts all of the processing,
resulting in a lot of errors in javac output.
This CL changes room's processor behavior to just print errors and
continue as much as it can. This will eventually allow Room to
procude as much code as it can to avoid false positive erros in
javac output.

Bug: 32342709
Test: clean check passes w/o any changes
Change-Id: I54c9ad0cd64d88f8994d514479c9177fd6e598bb
ompiler/src/main/kotlin/com/android/support/room/errors/ElementBoundException.kt
ompiler/src/main/kotlin/com/android/support/room/log/RLog.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
ddde363d8028917a4cb0167552b24f7e5b2907d1 29-Nov-2016 Yigit Boyar <yboyar@google.com> Introduce Context data class for environment params

Added a new Context class that has all environment related variables
as fields so that we can easily pass it around to processors.

Bug: 32342709
Test: clean check passes
Change-Id: I73e357c0601be09528878a6b9f89b3004fe78da7
ompiler/src/main/kotlin/com/android/support/room/processor/Context.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ParameterParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestInvocation.kt
0fc66ddc60bdc71d5466bb1db1a218e5a3d9c1fc 28-Nov-2016 Yigit Boyar <yboyar@google.com> Custom column name and entity name

Provides ability to set custom column names for fields and
custom table names for entities.

Bug: 32342709
Test: FieldProcessorTest#columnName,emptyColumnName
Test: EntitiyProcessorTest#customName,emptyCustomName
Change-Id: I68916d8d8276a1ebadf5df244002d675b9815d8d
ommon/src/main/java/com/android/support/room/ColumnName.java
ommon/src/main/java/com/android/support/room/Entity.java
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
2259e4dc433701d006db35df4c5e9f8d51e7d29b 26-Nov-2016 Yigit Boyar <yboyar@google.com> Type Adapters

This CL introduces type adapter logic that can convert a java
type into / from a database column (ColumnTypeAdapter).

There are also type adapters which can be used to create intermediate
representations if the type cannot directly be converted into a
database column (e.g. a Boolean is first converted into int then
into database).

So far we only have primitive types + string. More will be added later.

An additional type adapter to convert int list to string is also
provided to cover more cases (might be removed).

The code generation structure may change in the future as we write
real code that reads / writes an entitiy but based on the prototype,
this setup seems promising.

Also, there is no way to define custom adapters yet, it will also come
later.

TypeAdapterStore is not optimized at all since the structure is not
set and equals checks on TypeMirror objects does not seem to work.
Once we have the final structure, may optimize.

Bug: 32342709
Test: BasicColumnTypeAdaptersTest.kt, TypeAdapterStoreTest.kt

Change-Id: I52fde5a92dbe0ebe7290e001ba9e497c6d8e3981
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/ext/javapoet_ext.kt
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CodeGenScope.kt
ompiler/src/main/kotlin/com/android/support/room/solver/ColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/CompositeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/IntListConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/PrimitiveBooleanToIntConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/PrimitiveColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/ReverseTypeConverter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/StringColumnTypeAdapter.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeAdapterStore.kt
ompiler/src/main/kotlin/com/android/support/room/solver/TypeConverter.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTestTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/BasicColumnTypeAdaptersTest.kt
ompiler/src/test/kotlin/com/android/support/room/solver/TypeAdapterStoreTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/InProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
ompiler/src/test/kotlin/com/android/support/room/testing/test_util.kt
untime/build.gradle
untime/src/main/AndroidManifest.xml
untime/src/main/java/com/android/support/room/util/StringUtil.java
untime/src/test/java/com/android/support/room/util/StringUtilTest.java
ettings.gradle
8bad027c789d3fb3da8e68fa0154f2a24ccc2865 25-Nov-2016 Yigit Boyar <yboyar@google.com> Simple Database annotation processor

This CL adds the DatabaseProcessor that parses classes
annotated with @Database.
It is very primitive, just collects all entities and
daos.

The CL also renames Parsers to Processor when appropriate.

Bug: 32342709
Test: DatabaseParserTest.kt
Change-Id: Id1ff19a04cdff76288418f4841e998b3a35d9de6
ommon/src/main/java/com/android/support/room/Database.java
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DaoProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/DatabaseProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryMethodProcessor.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParser.kt
ompiler/src/main/kotlin/com/android/support/room/vo/DaoMethod.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Database.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DaoParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DaoProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DatabaseProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityProcessorTestTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryMethodProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryParserTest.kt
0f77cff2005ccc6263b9902b3ea56fe01161ba51 25-Nov-2016 Yigit Boyar <yboyar@google.com> Dao Parser

This CL introduces the basics of Dao Parser.

Bug: 32342709
Test: DaoParserTest.kt
Change-Id: I5cfd7a59ffb7a46d75b1d1586e50486c4b0cdd35
ompiler/src/main/kotlin/com/android/support/room/processor/DaoParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Dao.kt
ompiler/src/test/kotlin/com/android/support/room/processor/DaoParserTest.kt
e6325fbeaa2e6759496ea2ca9a4d3d958df690d7 25-Nov-2016 Yigit Boyar <yboyar@google.com> Detect primary keys.

Bug: 32342709
Test: EntityParserTest#multiplePrimaryKeys,missingPrimaryKey

Change-Id: Ia52380c7f3154a26ef77b97fa7818c5ea0c8f75e
ompiler/src/main/kotlin/com/android/support/room/processor/EntityParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityParserTest.kt
1600cc11df868b62b6ae3995d94a3ec0b86559ad 24-Nov-2016 Yigit Boyar <yboyar@google.com> Entity Parser

This is the initial implementation for the Entity parser.
It is very basic, only understands the fields and their matching getters
and setter.

There is no primary key, field type, class type etc validation.

Bug: 32342709
Test: EntityParserTest.kt, EntityNameMatchingVariationsTest.kt
Change-Id: I9a2cbf6a5fa763bde1774ece3feb504b1b67de6a
ommon/src/main/java/com/android/support/room/Ignore.java
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/ext/element_ext.kt
ompiler/src/main/kotlin/com/android/support/room/processor/EntityParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParser.kt
ompiler/src/main/kotlin/com/android/support/room/vo/CallType.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldGetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/FieldSetter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/kotlin/com/android/support/room/processor/BaseEntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityNameMatchingVariationsTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/EntityParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldParserTest.kt
de33ce4068e2678c03fa6fd62f4770be89f79adc 24-Nov-2016 Yigit Boyar <yboyar@google.com> Field parser, run lint for test files

Bug: 32342709
Test: FieldParserTest.kt
Change-Id: I60ac550d77ba9cd4b4e0fd74659b284c9dcb6630
ommon/src/main/java/com/android/support/room/PrimaryKey.java
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParser.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Parameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
b9e94a5b8ef3d5d81e7b8b5849b6582b32a6a097 24-Nov-2016 Yigit Boyar <yboyar@google.com> Revert "Field parser, run lint for test files"

This reverts commit 3effefe1b3b70506067928589665da46c05a935c.

Change-Id: I01d0617d22684a7aaac5d7f3ce99ce032497d19d
ommon/src/main/java/com/android/support/room/PrimaryKey.java
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParser.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Parameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
c2334cfaa52a905b2f4f5a8c8b7a5d8614d0b774 24-Nov-2016 Yigit Boyar <yboyar@google.com> Field parser, run lint for test files

Bug: 32342709
Test: FieldParserTest.kt
Change-Id: I6e1e486eeb11bb4ae0844c3982401217c5198811
ommon/src/main/java/com/android/support/room/PrimaryKey.java
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/FieldParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParser.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Entity.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Field.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Parameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/kotlin/com/android/support/room/processor/FieldParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
19b41105359a52aeb80070dec40247241231f05d 20-Nov-2016 Yigit Boyar <yboyar@google.com> initial commit for Room

This introduces the initial setup and testing infrastructure.

This CL also merges the build infras for lifecycle and room.

Bug: 32342709
Test: SqlParserTest.kt, QueryParserTest.kt
Change-Id: I595fa81fd4e201601279fabede8d12c446ef28c8
gitignore
uild.gradle
ommon/build.gradle
ommon/src/main/java/com/android/support/room/Dao.java
ommon/src/main/java/com/android/support/room/Database.java
ommon/src/main/java/com/android/support/room/Entity.java
ommon/src/main/java/com/android/support/room/Query.java
ompiler/SQLite.g4
ompiler/build.gradle
ompiler/src/main/kotlin/com/android/support/room/errors/ElementBoundException.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParsedQuery.kt
ompiler/src/main/kotlin/com/android/support/room/parser/ParserErrors.kt
ompiler/src/main/kotlin/com/android/support/room/parser/SqlParser.kt
ompiler/src/main/kotlin/com/android/support/room/preconditions/Checks.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ParameterParser.kt
ompiler/src/main/kotlin/com/android/support/room/processor/ProcessorErrors.kt
ompiler/src/main/kotlin/com/android/support/room/processor/QueryParser.kt
ompiler/src/main/kotlin/com/android/support/room/vo/Parameter.kt
ompiler/src/main/kotlin/com/android/support/room/vo/QueryMethod.kt
ompiler/src/test/kotlin/com/android/support/room/parser/SqlParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/processor/QueryParserTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/InProcessorTest.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestInvocation.kt
ompiler/src/test/kotlin/com/android/support/room/testing/TestProcessor.kt
radle/wrapper/gradle-wrapper.jar
radle/wrapper/gradle-wrapper.properties
radlew
radlew.bat
ettings.gradle