realm-java v10.0.0-BETA.6 Release Notes

Release Date: 2020-08-17 // over 3 years ago
  • 🏗 We no longer support Realm Cloud (legacy), but instead the new MongoDB Realm Cloud. MongoDB Realm is a serverless platform that enables developers to quickly build applications without having to set up server infrastructure. MongoDB Realm is built on top of MongoDB Atlas, automatically integrating the connection to your database.

    🔨 The old Realm Cloud legacy APIs have undergone significant refactoring. The new APIs are all located in the io.realm.mongodb package with io.realm.mongodb.App as the entry point.

    💥 Breaking Changes

    • ⬆️ [RealmApp] Realm files have changed location on disk, so Realms should upload all their data to the server before upgrading.
    • ⚡️ [RealmApp] Removed GMS Task framework and added RealmResultTask to provide with a mechanism to operate with asynchronous operations. MongoCollection has been updated to reflect this change.

    ✨ Enhancements

    • 0️⃣ [RealmApp] Credentials information (e.g. username, password) displayed in Logcat is now obfuscated by default, even if [LogLevel] is set to DEBUG, TRACE or ALL.
    • RealmLists can now be marked final. (Issue #6892)
    • It is now possible to create embedded objects using [DynamicRealm]s. (Issue #6982)
    • ➕ Added extra validation and more meaningful error messages when creating embedded objects pointing to the wrong parent property. (See issue above)

    🛠 Fixed

    • [RealmApp] The same user opening different Realms with different partion key values would crash with an IllegalArgumentException. (Issue #6882, since 10.0.0-BETA.1)
    • 🔀 [RealmApp] Sync would not refresh the access token if started with an expired one. (Since 10.0.0-BETA.1)
    • [RealmApp] Leaking objects when registering session listeners. (Issue #6916)
    • ➕ Added support for Json-import of objects containing embedded objects. (Issue #6896)
    • ⬆️ Upgrading the file format result did in some cases not work correctly. This could result in a number of crashes, e.g. FORMAT_UPGRADE_REQUIRED. (Issue #6889, since 7.0.0)
    • 🐛 Bug in memory mapping management. This bug could result in multiple different asserts as well as segfaults. In many cases stack backtraces would include members of the EncyptedFileMapping near the top - even if encryption was not used at all. In other cases asserts or crashes would be in methods reading an array header or array element. In all cases the application would terminate immediately. (Realm Core PR #3838, since 7.0.0)
    • It was possible to use RealmObjectSchema to mark a Class as embedded even if some of the objects broke the constraints for being embedded.

    Compatibility

    • ⬆️ File format: Generates Realms with format v11 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • 🚀 APIs are backwards compatible with all previous release of realm-java in the 10.x.y series.
    • Realm Studio 10.0.0 and above is required to open Realms created by this version.

    Internal

    • ⬆️ Upgraded to Object Store commit: 5b5fb8a90192cb4ee6799e7465745cd2067f939b.
    • ⬆️ Upgraded to Realm Sync 10.0.0-beta.6.
    • ⬆️ Upgraded to Realm Core 10.0.0-beta.4.