Skip to content

Latest commit

 

History

History
139 lines (88 loc) · 7.63 KB

CHANGELOG.md

File metadata and controls

139 lines (88 loc) · 7.63 KB

Changelog

play.cache.AsyncCacheApi is bound to JavaRedis instead of DefaultAsyncCacheApi to fixed value deserialization and support Java HTTP context #140.

Fixed missing binding of play.api.cache.AsyncCacheApi #135.

Introduced support of Redis Cluster in #84.

Implemented increment in maps #112.

Support of named caches #114

Introduced prefix configuration property to apply a namespace on all keys in the cache instance #118.

Simplified RedisCacheModule and RedisCacheComponents. Internal components are no longer published, removed Binder class, introduced RedisInstanceProvider instead. Introduced RedisInstanceResolver and RecoveryPolicyResolver to provide custom implementations. Introduced RedisCaches handler encapsulating all APIs to a single named cache. #122

Created Wiki with more detailed and structured documentation.

Revamped configuration as a consequence of named cache integration #114. Some properties were removed, instance configuration is now more direct, named caches are supported. See Migration Guide for more details.

Introduced InvocationPolicy implementing Eager and Lazy invocation mechanism handling waiting for the result of the set operation. Lazy policy (default) does wait for the result, Eager does not wait and ignores it instead #98.

JavaRedis preserves Http.Context #130.

Introduced support of Redis Cluster in #84.

Implemented increment in maps #112.

Fixed #102, preserved original exception if extends RedisException and fixed wrong parameters in error messages

Scredis connector replaced by Rediscala implementation due to repository inactivity, no release management, missing support of cluster, and unreleased support of Scala 2.12.

Due to changes in the connector, there are slightly relaxed constraints of return values in both CacheApi and CacheAsyncApi. For example, some operations instead of List return Seq and instead of Set also return Seq. This change was introduced to avoid possibly unnecessary collection conversion inside the play-redis.

Changed return type Unit in AbstractCacheApi to akka.Done with the same meaning but but better signalizing the intention.

Cross-compiled for Scala 2.11 and Scala 2.12.

Fixed #102, preserved original exception if extends RedisException and fixed wrong parameters in error messages

Fixed minor issues #83 and #85.

Implemented RedisCacheComponents to support compile-time DI

Implemented MGET, MSET and MSETNX redis commands.

Exposed RedisConnector, it is publicaly available for injection now.

🔗 1.3.0 (Possibly breaking)

Major internal code refactoring, library has been modularized into several packages. However, public API remained unchanged, although its implementation significantly changed.

Implemented Scala wrapper over List API to use Redis Lists.

Implemented Scala wrapper over Set API to use Redis Sets.

Implemented Scala wrapper over Map API to use Redis Hashes.

Added heroku and heroku-cloud configuration profiles simplifying running on Heroku.

Introduced RecoveryPolicy defining behavior when execution fails. Default policy is log-and-default. To re-enable previous fail-on-error behavior, set log-and-fail. See the RecoveryPolicy for more details.

Brando connector replaced by scredis implementation due to Brando repository inactivity and major issues (#44). Scredis seems to be efficient, build over Akka and should not contain any major issues as they are not reported.

Play-redis provides native serialization support to basic data types such as String, Int, etc. However, for other objects including collections, it used to use default JavaSerializer serializer. Since Akka 2.4.1, default JavaSerializer is officially considered inefficient for production use. Nevertheless, to keep things simple, play-redis still uses this inefficient serializer NOT to enforce any serialization library to end users. Although, it recommends kryo serializer claiming great performance and small output stream. Any serialization library can be smoothly connected through Akka configuration, see the official Akka documentation.

This release is focused on library refactoring. While public API remained unchanged, there are several significant changes to their implementations. Those are consequences of refactoring some functionality into self-standing units. For example, there has been extracted RedisConnector implementing the Redis protocol and RedisCache implementing cache API over that. Before, it was tangled together. As consequence, the library has now layered architecture (facades -> cache implementation -> protocol implementation) with several public facades.

Update to Play 2.5, no significant changes

Redesigned the library from scratch to support Play 2.4.x API and use DI.