[!!!][FEATURE] Persistent Caches
This change introduces the concept of persistent caches. Caches which are
configured to be "persistent" will be skipped by the Cache Manager when
flushing all caches or flushing caches by tag. Therefore it is now
possible to use the caching framework as a low level key-value-store
for storing keys, preferences, tokens or other artifacts which usually
would have been stored in the Data/Persistent directory.
If persistent caches are used consequently, it is possible to configure
a Flow application to not store any persistent data in the file system.
This allows for clustering and more flexible management in cloud
A cache is marked as "persistent" by setting the respective flag in the
configuration in Caches.yaml::
Persistent caches won't be flushed by the ``flow:cache:flush`` commands,
and for file based caches, the data is not stored in
``Data/Temporary/Cache`` by default, but in ``Data/Persistent/Cache``.
Note: This change might break unit tests which mock cache frontend /
backend combinations because a new lifecycle method (initializeObject)
has been introduced to the AbstractFrontend. In order to fix these
tests, simply make sure to call initializeObject() after the frontend
has been instantiated.
Releases: master, 3.0