v0.2.0
Reactor-Pool 0.2.0
is part of 2020.0.0
Release Train (CodeName Europium
).
This release contains all the changes in Dysprosium releases that occurred during the milestone period, starting from v0.1.4.RELEASE
and ending with the latest v0.1.7.RELEASE
(see below for links to release notes).
We tried to evolve 0.1.x in priority and keep 0.2.0 fully compatible, so on Europium side this is mainly adaptations to changes in the latest reactor-core. The elements below are an aggregation of changes in Dysprosium releases, for convenience.
⚠️ Update Considerations and Deprecations
- as of
v0.1.6.RELEASE
lifo()
andfifo()
methods are deprecated and will be removed in 0.3.0 (#94)- use
buildPool()
method instead (stable equivalent to the most useful of the two variants, fifo)
- use
✨ New features and improvements
- Expose allocation and release timestamps on
PooledRefMetadata
(#89) - Allow to chose a idle resource selection strategy at pool construction: LRU vs MRU (#87)
- fix
NullPointerException
during pool shutdown (#90) - Add background eviction option (#86)
- Propagate context from acquire/warmup
Mono
to allocatorMono
(#103)
🪲 Bug fixes
- Fix race between pool shutdown and
PooledRef
release (#80) - Invoke
drain()
when the allocator fails to prevent hanging (#82) - Prevent warmup from reordering of pending acquires (#84)
- Fix off-by-one error to prevent failing too fast to acquire if maxPending is reached (#98)
📖 Documentation, Tests and Build
- [Polish] Split Clock out of
InMemoryPoolMetrics
, add 2 test Clocks - [polish] Fix binary compatibility: maintain compatible
DefaultPoolConfig
constructors - [build] Add jcstress plugin
- [build] Remove errorprone and spring-io plugins
- [build] fix #96 Upgrade gradle and add japicmp