Skip to content

v0.2.0

Compare
Choose a tag to compare
@aneveu aneveu released this 29 Oct 18:24

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() and fifo() 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)

✨ 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 allocator Mono (#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

Dysprosium release notes