forked from realm/realm-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
221 lines (197 loc) · 13.8 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
0.83
* BREAKING CHANGE: Removed deprecated methods and constructors from the Realm class.
* Fixed a bug which might cause failure when loading the native library.
* Fixed a bug which might trigger a timeout in Context.finalize().
* Fixed a bug which might cause RealmObject.isValid() to throw an exception if the object is deleted.
0.82.1
* Fixed a bug where using the wrong encryption key first caused the right key to be seen as invalid.
* Fixed a bug where String fields were ignored when updating objects from JSON with null values.
* Fixed a bug when calling System.exit(0), the process might hang.
0.82
* RealmConfiguration.setModules() now accept ignore null values which Realm.getDefaultModule() might return.
* Trying to access a deleted Realm object throw throws a proper IllegalStateException.
* Added in-memory Realm support.
* Closing realm on another thread different from where it was created now throws an exception.
* Realm will now throw a RealmError when Realm's underlying storage engine encounters an unrecoverable error.
* @Index annotation can also be applied to byte/short/int/long/boolean/Date now.
* BREAKING CHANGE: Fields with annotation @PrimaryKey are indexed automatically now. Older schemas require a migration.
* Fixed a bug where RealmQuery objects are prematurely garbage collected.
* Removed RealmQuery.between() for link queries.
0.81.1
* Fixed memory leak causing Realm to never release Realm objects.
0.81
* Introduced RealmModules for working with custom schemas in libraries and apps.
* Introduced Realm.getDefaultInstance(), Realm.setDefaultInstance(RealmConfiguration) and Realm.getInstance(RealmConfiguration).
* Deprecated most constructors. They have been been replaced by Realm.getInstance(RealmConfiguration) and Realm.getDefaultInstance().
* Deprecated Realm.migrateRealmAtPath(). It has been replaced by Realm.migrateRealm(RealmConfiguration).
* Deprecated Realm.deleteFile(). It has been replaced by Realm.deleteRealm(RealmConfiguration).
* Deprecated Realm.compactFile(). It has been replaced by Realm.compactRealm(RealmConfiguration).
* RealmList.add(), RealmList.addAt() and RealmList.set() now copy standalone objects transparently into Realm.
* Realm now works with Kotlin (M12+). (thanks @cypressious)
* Fixed a performance regression introduced in 0.80.3 occurring during the validation of the Realm schema.
* Added a check to give a better error message when null is used as value for a primary key.
* Fixed unchecked cast warnings when building with Realm.
* Cleaned up examples (remove old test project).
* Added checking for missing generic type in RealmList fields in annotation processor.
0.80.3
* Calling Realm.copyToRealmOrUpdate() with an object with a null primary key now throws a proper exception.
* Fixed a bug making it impossible to open Realms created by Realm-Cocoa if a model had a primary key defined.
* Trying to using Realm.copyToRealmOrUpdate() with an object with a null primary key now throws a proper exception.
* RealmChangedListener now also gets called on the same thread that did the commit.
* Fixed bug where Realm.createOrUpdateWithJson() reset Date and Binary data to default values if not found in the JSON output.
* Fixed a memory leak when using RealmBaseAdapter.
* RealmBaseAdapter now allow RealmResults to be null (thanks @zaki50).
* Fixed a bug where a change to a model class (RealmList<A> to RealmList<B>) would not throw a RealmMigrationNeededException.
* Fixed a bug where setting multiple RealmLists didn't remove the previously added objects.
* Solved ConcurrentModificationException thrown when addChangeListener/removeChangeListener got called in the onChange. (thanks @beeender)
* Fixed duplicated listeners in the same realm instance. Trying to add duplicated listeners is ignored now. (thanks @beeender)
0.80.2
* Trying to use Realm.copyToRealmOrUpdate() with an object with a null primary key now throws a proper exception.
* RealmMigrationNeedException can now return the path to the Realm that needs to be migrated.
* Fixed bug where creating a Realm instance with a hashcode collision no longer returned the wrong Realm instance.
* Updated Realm Core to version 0.89.2
- fixed bug causing a crash when opening an encrypted Realm file on ARM64 devices.
0.80.1
* Realm.createOrUpdateWithJson() no longer resets fields to their default value if they are not found in the JSON input.
* Realm.compactRealmFile() now uses Realm Core's compact() method which is more failure resilient.
* Realm.copyToRealm() now correctly handles referenced child objects that are already in the Realm.
* The ARM64 binary is now properly a part of the Eclipse distribution package.
* A RealmMigrationExceptionNeeded is now properly thrown if @Index and @PrimaryKey are not set correctly during a migration.
* Fixed bug causing Realms to be cached even though they failed to open correctly.
* Added Realm.deleteRealmFile(File) method.
* Fixed bug causing queries to fail if multiple Realms has different field ordering.
* Fixed bug when using Realm.copyToRealm() with a primary key could crash if default value was already used in the Realm.
* Updated Realm Core to version 0.89.0
- improved performance for sorting RealmResults.
- improved performance for refreshing a Realm after inserting or modifying strings or binary data.
- fixed bug causing incorrect result when querying indexed fields.
- fixed bug causing corruption of string index when deleting an object where there are duplicate values for the indexed field.
- fixed bug causing a crash after compacting the Realm file.
* Added RealmQuery.isNull() and RealmQuery.isNotNull() for querying relationships.
* Fixed a potential NPE in the RealmList constructor.
0.80
* Queries on relationships can be case sensitive.
* Fixed bug when importing JSONObjects containing NULL values.
* Fixed crash when trying to remove last element of a RealmList.
* Fixed bug crashing annotation processor when using "name" in model classes for RealmObject references
* Fixed problem occurring when opening an encrypted Realm with two different instances of the same key.
* Version checker no longer reports that updates are available when latest version is used.
* Added support for static fields in RealmObjects.
* Realm.writeEncryptedCopyTo() has been reenabled.
0.79.1
* copyToRealm() no longer crashes on cyclic data structures.
* Fixed potential crash when using copyToRealmOrUpdate with an object graph containing a mix of elements with and without primary keys.
0.79
* Added support for ARM64.
* Added RealmQuery.not() to negate a query condition.
* Made the native libraries much smaller. Arm went from 1.8MB to 800KB.
* Better error reporting when trying to create or open a Realm file fails.
* Improved error reporting in case of missing accessors in model classes.
* Re-enabled RealmResults.remove(index) and RealmResults.removeLast().
* Primary keys are now supported through the @PrimaryKey annotation.
* Added copyToRealmOrUpdate() and createOrUpdateFromJson() methods, that works for models with primary keys.
* Fixed error when instantiating a Realm with the wrong key.
* Throw an exception if deleteRealmFile() is called when there is an open instance of the Realm.
* Made migrations and compression methods synchronised.
* Removed methods deprecated in 0.76. Now Realm.allObjectsSorted() and RealmQuery.findAllSorted() need to be used instead.
* Reimplemented Realm.allObjectSorted() for better performance.
0.78
* Added proper support for encryption. Encryption support is now included by default. Keys are now 64 bytes long.
* Added support to write an encrypted copy of a Realm.
* Realm no longer incorrectly warns that an instance has been closed too many times.
* Realm now shows a log warning if an instance is being finalized without being closed.
* Fixed bug causing Realms to be cached during a RealmMigration resulting in invalid realms being returned from Realm.getInstance().
* Updated core to 0.88.
0.77
* Added Realm.allObjectsSorted() and RealmQuery.findAllSorted() and extending RealmResults.sort() for multi-field sorting.
* RealmResults.sort() now has better error reporting.
* Added more logging capabilities at the JNI level.
* Added proper encryption support. NOTE: The key has been increased from 32 bytes to 64 bytes (see example).
* Fixed bug when doing queries on the elements of a RealmList, ie. like Realm.where(Foo.class).getBars().where().equalTo("name").
* Throw NoSuchMethodError when RealmResults.indexOf() is called, since it's not implemented yet.
* Added support for standalone objects and custom constructors.
* Added more precise imports in proxy classes to avoid ambiguous references.
* Improved handling of empty model classes in the annotation processor
* Added support for executing a transaction with a closure using Realm.executeTransaction().
* Fixed bug causing refresh() to be called on background threads with closed Realms.
* Fixed bug where calling Realm.close() too many times could result in Realm not getting closed at all. This now triggers a log warning.
* Added RealmObject.isValid() to test if an object is still accessible.
* Removed deprecated static constructors.
* Introduced new static constructors based on File instead of Context, allowing to save Realm files in custom locations.
* RealmList.remove() now properly returns the removed object.
* Calling realm.close() no longer prevent updates to other open realm instances on the same thread.
0.76.0
* RealmObjects can now be imported using JSON.
* Gradle wrapper updated to support Android Studio 1.0.
* Bug fixed in RealmObject.equals() so it now correctly compares two objects from the same Realm.
* Realm class is now marked as final.
* Replaced concurrency example with a better thread example.
* Allow to add/remove RealmChangeListeners in RealmChangeListeners.
* Upgrading to core 0.87.0 (encryption support, API changes).
* Bug fixed in Realm crashing for receiving notifications after close().
* Close the Realm instance after migrations.
* Added a check to deny the writing of objects outside of a transaction.
0.75.1 (03 December 2014)
* Changing sort to be an in-place method.
* Renaming SORT_ORDER_DECENDING to SORT_ORDER_DESCENDING.
* Adding sorting functionality to allObjects() and findAll().
* Bug fixed: when querying a date column with equalTo(), it would act as lessThan()
0.75.0 (28 Nov 2014)
* Realm now implements Closeable, allowing better cleanup of native resources
* Adding writeCopyTo() and compactRealmFile() to write and compact a Realm to a new file.
* RealmObject.toString(), equals() and hashCode() now support models with cyclic references.
* RealmResults.iterator() and listIterator() now correctly iterates the results when using remove().
* Bug fixed in Exception text when field names was not matching the database
* Bug fixed so Realm no longer throws an Exception when removing the last object
* Bug fixed in RealmResults which prevented sub-querying
* The Date type does not support millisecond resolution, and dates before 1901-12-13
and dates after 2038-01-19 are not supported on 32 bit systems
* Fixed bug so Realm no longer throws an Exception when removing the last object
* Bug fixed in RealmResults which prevented subquerying
0.74.0 (19 Nov 2014)
* Added support for more field/accessors naming conventions
* Allow static methods in model classes
* An exception will now be thrown if you try to move Realm, RealmResults or RealmObject between threads.
* Fixed a bug in the calculation of the maximum of date field in a RealmResults
* Adding case sensitive versions of string comparison operators equalTo and notEqualTo
* Adding where() to RealmList to initiate queries
* Updated core to 0.86.0, fixing a bug in cancelling an empty transaction, and major query speedups with floats/doubles
* Consistent handling of UTF-8 strings
* removeFromRealm() now calls moveLastOver() which is faster and more reliable when deleting multiple objects
* Added verification of fields names in queries with links.
* Added exception for queries with invalid field name
0.73.1 (05 Nov 2014)
* Fixed a bug that would send infinite notifications in some instances
0.73.0 (04 Nov 2014)
* Fixed a bug not allowing queries with more than 1024 conditions
* Rewritten the notification system. The API did not change but it's now much more reliable
* Added support for switching auto-refresh on and off (Realm.setAutoRefresh)
* Added RealmBaseAdapter and an example using it
* Added deleteFromRealm() method to RealmObject
0.72.0 (27 Oct 2014)
* Extended sorting support to more types: boolean, byte, short, int, long, float, double, Date, and String
fields are now supported
* Better support for Java 7 and 8 in the annotations processor
* Better support for the Eclipse annotations processor
* Added Eclipse support to the distribution folder
* Added Realm.cancelTransaction() to cancel/abort/rollback a write transaction
* Faster implementation of RealmQuery.findFirst()
* Upgraded core to 0.85.1 (deep copying of strings in queries; preparation for link queries)
* Added support for link queries in the form realm.where(Owner.class).equalTo("cat.age", 12).findAll()
0.71.0 (07 Oct 2014)
* Simplified the release artifact to a single Jar file
* Added support for Eclipse
* Added support for deploying to Maven
* Throw exception if nested write transactions are used (it's not allowed)
* Javadoc updated
* Fixed bug in RealmResults: https://github.com/realm/realm-java/issues/453
* New annotation @Index to add search index to a field (currently only supporting String fields)
* Made the annotations processor more verbose and strict
* Adding RealmQuery.count() method
* Added a new example about concurrency
* Upgrading to core 0.84.0
0.70.1 (30 Sep 2014)
* Enable unit testing for the realm project
* Fixed handling of camel-cased field names
0.70.0 (29 Sep 2014)
* This is the first public beta release