All Versions
169
Latest Version
Avg Release Cycle
35 days
Latest Release
553 days ago

Changelog History
Page 7

  • v5.9.0 Changes

    January 15, 2019

    โœจ Enhancements

    • [ObjectServer] Added ObjectServerError.getErrorType() and ObjectServerError.getErrorType() which returns the underlying native error information. This is especially relevant if ObjectServerError.getErrorCode() returns UNKNOWN. #6364
    • โž• Added better checks for detecting corrupted files, both before and after the file is written to disk.

    ๐Ÿ›  Fixed

    • [ObjectServer] Native errors sometimes mapped to the wrong Java ErrorCode. (Issue #6364, since 2.0.0)
    • ๐Ÿ”€ [ObjectServer] Query-based Sync queries involving LIMIT, limited the result before permissions were evaluated. This could sometimes result in the wrong number of elements being returned.
    • โœ‚ Removed Java 8 bytecode. Resulted in errors like D8: Invoke-customs are only supported starting with Android O (--min-api 26) if not compiled with Java 8. (Issue #6300, since 5.8.0).

    Compatibility

    • Realm Object Server: 3.11.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 5.x.y series.

    Internal

    • โšก๏ธ Updated to Object Store commit: f964c2640f635e76839559cb703732e9e906ba4c
    • โšก๏ธ Updated Realm Sync to 3.14.13
    • โšก๏ธ Updated Realm Core to 5.12.7
  • v5.8.0 Changes

    November 06, 2018

    ๐Ÿš€ This release also contains all changes from 5.8.0-BETA1 and 5.8.0-BETA2.

    โœจ Enhancements

    • [ObjectServer] Added Subscription class available to Query-based Realms. This exposes a Subscription more directly. This class is in beta. #6231.
      • [ObjectServer] Added Realm.getSubscriptions(), Realm.getSubscriptions(String pattern) and Realm.getSubscription to make it easier to find existing subscriptions. These API's are in beta. #6231
      • [ObjectServer] Added RealmQuery.subscribe() and RealmQuery.subscribe(String name) to subscribe immediately inside a transaction. These API's are in beta. #6231
      • [ObjectServer] Added support for subscribing directly inside SyncConfiguration.initialData(). This can be coupled with SyncConfiguration.waitForInitialRemoteData() in order to block a Realm from opening until the initial subscriptions are ready and have downloaded data. This API are in beta. #6231
    • ๐ŸŽ [ObjectServer] Improved performance when merging changes from the server.
    • ๐Ÿ”€ [ObjectServer] Added support for timeouts when uploading or downloading data manually using SyncSession.downloadAllServerChanges(long timeout, TimeUnit unit) and SyncSession.uploadAllLocalChanges(long timeout, TimeUnit unit). #6073
    • ๐Ÿ”€ [ObjectServer] Added support for timing out when downloading initial data for synchronized Realms using SyncConfiguration.waitForInitialRemoteData(long timeout, TimeUnit unit). #6247
    • [ObjectServer] Added Realm.init(Context, String) which defines a custom User-Agent String sent to the Realm Object Server when a session is created. Using this requires Realm Object Server 3.12.4 or later. #6267
    • โž• Added support for ImportFlags to Realm.copyToRealm() and Realm.copyToRealmOrUpdate(). This makes it possible to choose a mode so only fields that actually changed are written to disk. This improves notifications and Object Server performance. #6224
    • โž• Added support for bulk updating the same property in all objects that are part of a query result using RealmResults.setValue(String fieldName, Object value) or one of the specialized overrides that have been added for all supported types, e.g. RealmResults.setString(String fieldName, String value). #762

    ๐Ÿ›  Fixed

    • ๐Ÿš€ All known bugs introduced in 5.8.0-BETA1 and 5.8.0-BETA2. See the release notes for these releases.

    Compatibility

    • Realm Object Server: 3.11.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 5.x.y series.

    Internal

    • โšก๏ธ Updated to Object Store commit: f0dfe6c03be49194bc40777901059eaf55e7bff6
    • โšก๏ธ Updated Realm Sync to 3.13.1
    • โšก๏ธ Updated Realm Core to 5.12.0
  • v5.8.0-BETA2 Changes

    October 19, 2018

    โœจ Enhancements

    • None

    ๐Ÿ›  Fixed

    • RealmResults listeners not triggering the initial callback for Query-based Realm when the device is offline #6235.

    Known Bugs

    • โšก๏ธ Realm.copyToRealm() and Realm.copyToRealmOrUpdate has been rewritten to support import flags. It is currently ~30% slower than in 5.7.0.
    • IllegalStateException thrown when trying to create an object with a primary key that already exists when using Realm.copyToRealm, will always report "null" instead of the correct primary key value.
    • When using ImportFlag.DO_NOT_SET_SAME_VALUES, lists will still be written and reported as changed, even if they didn't change.

    Compatibility

    • Realm Object Server: 3.11.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 5.x.y series.

    Internal

    • None
  • v5.8.0-BETA1 Changes

    October 11, 2018

    โœจ Enhancements

    • โž• Added new ImportFlag class that is used to specify additional behaviour when importing data into Realm #6224.
    • โž• Added support for ImportFlag to Realm.copyToRealm() and Realm.copyToRealmOrUpdate() #6224.

    ๐Ÿ›  Fixed

    • None

    Known Bugs

    • โšก๏ธ Realm.copyToRealm() and Realm.copyToRealmOrUpdate has been rewritten to support import flags. It is currently ~30% slower than in 5.7.0.
    • IllegalStateException thrown when trying to create an object with a primary key that already exists when using Realm.copyToRealm, will always report "null" instead of the correct primary key value.
    • When using ImportFlag.DO_NOT_SET_SAME_VALUES, lists will still be written and reported as changed, even if they didn't change.

    Compatibility

    • Realm Object Server: 3.11.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 5.x.y series.
  • v5.7.1 Changes

    October 22, 2018

    โœจ Enhancements

    • None

    ๐Ÿ›  Fixed

    • [ObjectServer] RealmResults listeners not triggering the initial callback for Query-based Realm when the device is offline. (Issue #6235, since 5.0.0).

    Compatibility

    • Realm Object Server: 3.11.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 5.x.y series.

    Internal

    • โšก๏ธ Updated to Object Store commit: 362b886628b3aefc5b7a0bc32293d794dc1d4ad5
  • v5.7.0 Changes

    September 24, 2018

    โœจ Enhancements

    • [ObjectServer] Devices will now report download progress for read-only Realms which will allow the server to compact files sooner, saving server space. This does not affect the client. You will need to upgrade your Realm Object Server to at least version 3.11.0 or use Realm Cloud. If you try to connect to a ROS v3.10.x or previous, you will see an error like Wrong protocol version in Sync HTTP request, client protocol version = 25, server protocol version = 24.

    ๐Ÿ›  Fixed

    • None

    Compatibility

    • Realm Object Server: 3.11.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 5.x.y series.

    Internal

    • ๐Ÿ”€ Sync Protocol version increased to 25.
    • โšก๏ธ Updated Realm Sync to 3.10.1
    • โšก๏ธ Updated Realm Core to 5.10.2
  • v5.6.0 Changes

    September 24, 2018

    โœจ Enhancements

    • [ObjectServer] Added RealmPermissions.findOrCreate(String roleName) and ClassPermissions.findOrCreate(String roleName) (#6168).
    • @RealmClass("name") and @RealmField("name") can now be used as a shorthand for defining custom name mappings (#6145).
    • โž• Added support for RealmQuery.limit(long limit) (#544). When building a RealmQuery, sort(), distinct() and limit() will now be applied in the order they are called. Before this release, sort() and distinct() could be called any order, but sort() would always be applied before distinct().
    • ๐Ÿ— Building with Android App Bundle is now supported (#5977).

    ๐Ÿ›  Fixed

    • None

    Compatibility

    • Realm Object Server: 3.11.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 5.x.y series.

    Internal

    • โšก๏ธ Updated ReLinker to 1.3.0.
    • โšก๏ธ Updated to Object Store commit: 7e19c51af72c3343b453b8a13c82dfda148e4bbc
  • v5.5.0 Changes

    August 31, 2018

    โœจ Enhancements

    • [ObjectServer] Added ConnectionState enum describing the states a connection can be in.
    • ๐Ÿ”€ [ObjectServer] Added SyncSession.isConnected() and SyncSession.getConnectionState().
    • ๐Ÿ”€ [ObjectServer] Added support for observing connection changes for a session using SyncSession.addConnectionChangeListener() and SyncSession.removeConnectionChangeListener().
    • ๐Ÿ”€ [ObjectServer] Added Kotlin extension property Realm.syncSession for synchronized Realms.
    • [ObjectServer] Added Kotlin extension method Realm.classPermissions<RealmModel>().
    • ๐Ÿ”€ [ObjectServer] Added support for starting and stopping synchronization using SyncSession.start() and SyncSession.stop() (#6135).
    • [ObjectServer] Added API's for making it easier to work with network proxies (#6163):
      • SyncManager.setAuthorizationHeaderName(String headerName)
      • SyncManager.setAuthorizationHeaderName(String headerName, String host)
      • SyncManager.addCustomRequestHeader(String headerName, String headerValue)
      • SyncManager.addCustomRequestHeader(String headerName, String headerValue, String host)
      • SyncManager.addCustomRequestHeaders(Map<String, String> headers)
      • SyncManager.addCustomRequestHeaders(Map<String, String> headers, String host)
      • SyncConfiguration.Builder.urlPrefix(String prefix)

    ๐Ÿ›  Fixed

    • ๐Ÿ“ฆ Methods and classes requiring synchronized Realms have been removed from the standard AAR package. They are now only visible when enabling synchronized Realms in Gradle. The methods and classes will still be visible in the source files and docs, but annotated with @ObjectServer (#5799).

    Internal

    • โšก๏ธ Updated to Realm Sync 3.9.4
    • โšก๏ธ Updated to Realm Core 5.8.0
    • โšก๏ธ Updated to Object Store commit: b0fc2814d9e6061ce5ba1da887aab6cfba4755ca

    Credits

    • ๐ŸŽ Thanks to @lucasdornelasv for improving the performance of Realm.copyToRealm(), Realm.copyToRealmOrUpdate() and Realm.copyFromRealm() #(6124).
  • v5.4.3 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿ”ง [ObjectServer] ProGuard was not configured correctly when working with Subscriptions for Query-based Realms.
  • v5.4.2 Changes

    August 09, 2018

    ๐Ÿ› Bug Fixes

    • ๐Ÿ”€ [ObjectServer] Fixed bugs in the Sync Client that could lead to memory corruption and crashes.

    Internal

    • โฌ†๏ธ Upgraded to Realm Sync 3.8.8