# Changelog

{% hint style="warning" %}
**This is the manual for older MicroStream versions (Version < 5.0).**

**The new documentation (Version >= 5.0) is located at:**

[https://docs.microstream.one/](https://docs.microstream.one/manual)
{% endhint %}

## 2.1

### Features

* Android support\
  MicroStream is now Java-wise fully compatible with Android.
* Replaced all usages of `java.util.File` with `java.nio.file.Path` to allow using custom file implementations.
* Improved skipping functionality of Storers (see `EmbeddedStorageManager#createStorer` and `Storer#skip`).
* The class Lazy is now an interface to allow custom implementations. See Migration guide below.

### Bugfixes

* Fixed a few minor bugs in the skipping functionality of Storers.
* Fixed a bug where files remained locked after the storage was shut down.
* Fixed a bug where files remained locked after an exception in storage initialization.
* Enums defining an abstract method are now handled correctly.
* By default, all threads created by MicroStream now start with the prefix "MicroStream-". This can be customized by the new interface `StorageThreadNameProvider`.
* Fixed a NullPointerException in import.
* Fixed a bug that caused enums with a certain field layout to be loaded inconsistently.
* `java.util.Locale` is now persisted and created using Locale's `#toLanguageTag` and `#forLanguageTag`.

### Migration Guide

In the directory of an existing storage, in the TypeDictionary file (default name "PersistenceTypeDictionary.ptd"), all occurances of "one.microstream.persistence.lazy.Lazy" must be replaced with "one.microstream.persistence.lazy.Lazy$Default".
