SelfStoring without replacement since it could not be used recursively and has no advantages over just creating a static storing utility method for a certain entity.
Added state validation of value type objects (e.g. String, Integer, BigDecimal, etc.) upon loading. This is hardly relevant in practice, but not having it can lead to confusing hello-world-like test applications.
EmbeddedStorageManager now implements
Replaced all provisional
RuntimeExceptions with either
StorageException, depending on the architectural level the corresponding source code it located.
The two technically different root handling concepts ("default" and "custom") have been consolidated in a way that they are the same thing on the API level and interchangeable, meaning no more confusion with those root exception messages.
All entity fields of type
transient EmbeddedStorageManager now get a reference to the used
EmbeddedStorageManager instance set upon loading/updating.
The interfaces around storage managing have been enhanced so that it is now equally valid to just write
StorageManager instead of
EmbeddedStorageManager "is a"
Slight technical consolidation of Lazy reference handling caused the type Lazy to be moved from the package
one.microstream.reference. The reason is that the lazy handling has actually no inherent connection to persistence or storage. It's actually just a generic concept that can be used by those layers. See Migration Guide below on how to adjust existing projects.
Fixed an off-heap memory leak when restarting the storage multiple times in the same process.
Fixed a bug where changing the fields of an entity type caused an exception. This was a regression bug from fixing a similar problem for another case in version 2.1. Now, both cases work correctly.
All occurrences in user code of
one.microstream.persistence.lazy.Lazy have to be refactored to
one.microstream.reference.Lazy. Modern IDEs provide a functionality to "auto-import" missing types or automatically "organize imports", so this should be resolved with a proverbial push of a button.