java-sdk-contrib icon indicating copy to clipboard operation
java-sdk-contrib copied to clipboard

fix(deps): update dependency com.github.ben-manes.caffeine:caffeine to v3

Open renovate[bot] opened this issue 1 year ago • 2 comments

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
com.github.ben-manes.caffeine:caffeine 2.9.3 -> 3.2.0 age adoption passing confidence

Release Notes

ben-manes/caffeine (com.github.ben-manes.caffeine:caffeine)

v3.2.0: 3.2.0

Cache

  • Added Sigstore signing of maven artifacts
  • Added Expiry static factory methods (#​1499)
  • Migrated to JSpecify annotations (was checker framework)
  • Fixed variable expiration calculation when nearing overflow
  • Added logging when an async cache's removal listener fails
  • Added an expiration write optimization to more operations (#​1320)
  • Fixed when a Weigher or Expiry fail on an async completion (#​1687)
  • Fixed cases when the expiration ticker was also used for statistics (#​1678)
  • Fixed refresh handling to skip if the async cache's entry is still loading (#​1478)
  • Fixed containsKey for an async cache's synchronous view while in-flight (#​1626)
  • Fixed premature expiration for an async cache when using nearly immediate expiration (#​1623)
  • For a bulk async load returning extra mappings, wait to be added to the cache before returning (#​1409)

Guava

  • Relaxed the OSGi version requirement (#​1160)

JCache

  • Allow hibernate.javax.cache.uri to load the configuration from a jar (#​1347)

v3.1.8: 3.1.8

Compare Source

  • Added a workaround for a possible JDK concurrency bug with method handles (#​1111)

v3.1.7: 3.1.7

Compare Source

Cache

  • Improved builder construction time (#​905)

JCache

  • Fixed deadlock when a cache listener writes to another cache (#​1065)
  • Added jakarta.inject support, dropping javax.inject (#​1009)

v3.1.6: 3.1.6

Compare Source

  • Fixed the log message when a key's equality has changed and corrupted the underlying map (#​900, SLF4J-529)
  • Added Implementation-Version and other MANIFEST.MF attributes (#​889)

v3.1.5: 3.1.5

Compare Source

Cache

  • Fixed clear() removing a key more than once due to a write-back removal listener (#​872)

JCache

  • Added support for loading the configuration from the cache manager's uri (#​877)

v3.1.4: 3.1.4

Compare Source

Added @​CanIgnoreReturnValue annotations for static analysis (#​868)

v3.1.3: 3.1.3

Compare Source

Cache

  • Fixed the build time dependency constraints from being leaked into the external metadata (#​867)
  • Fixed the cause of a removal notification for a discarded refresh when the entry was removed
  • Fixed the behavior for null lookups into returned unmodifiable maps to be consistent (#​864)
  • Fixed an unexpected delay of removal notifications when using a scheduler (#​859)
  • Fixed explicit refreshes from being deduped if the entry is pending eviction
  • Defaulted methods to @​CheckReturnValue for static analysis (#​863)
  • Reduced the lock hold time during Map.clear (#​835)

JCache

  • Fixed putAll with an immutable map that causes an exception when using a cache writer (#​841)

v3.1.2: 3.1.2

Compare Source

Cache

  • Added detection for when a key's equality has changed and corrupted the underlying map (SOLR-16489)
  • Improved the frequency sketch by better utilizing the cpu cache line to reduce memory accesses
  • Fixed computeIfAbsent when replacing a collected weak/soft value and the custom expiry fails
  • Improved refresh conflict detection to avoid unnecessarily discarding after a reload
  • Improved eviction when the weight is oversized (#​745)

Guava

  • Added an adapter from Guava's CacheLoader to Caffeine's (#​766)

JCache

  • Fixed Cache.getConfiguration() to return an immutable instance

v3.1.1: 3.1.1

Compare Source

  • Fixed refreshAfterWrite when racing with a removed entry (#​715)
  • Fixed gradle module metadata variant selection (#​716)

v3.1.0: 3.1.0

Compare Source

  • Fixed the publication of a removal notification when computing a null value on top of an expired entry
  • Fixed the publication of a removal notification for a conditional replacement on an unbounded cache
  • Fixed Map.equals when the traversal triggers an eviction and the subset of live entries matches
  • Improved refreshAfterWrite to return the new value if computed by the caller (#​688, #​699)
  • Added Interner for weak keyed equality caching (#​344)

v3.0.6: 3.0.6

Compare Source

  • Fixed AsyncCache.getAll when storing additional mappings (#​655)
  • Added the ability to specify the expiration time with the computation
  • Added a warning if writes stall due to blocked eviction (#​672)
  • Added advanced query support for obtaining entry metadata

v3.0.5: 3.0.5

Compare Source

Cache

  • Fixed reference eviction when used with a broken executor (JDK-8274349)
  • Suppressed log warnings if a future is cancelled or times out (#​597)
  • Removed @Nullable from LoadingCache.get(key) (#​594)
  • Fixed early expiration of in-flight async loads (#​625)

JCache

  • close() will now shutdown the executor and wait for in-flight loads to finish

v3.0.4: 3.0.4

Compare Source

Cache

  • Fixed cases that incorrectly notified the removal listener for no-op replacements (#​593)
  • Improved how refreshAfterWrite is triggered on a read to avoid hotspots
  • Added the ability to capture coldest & hottest weighted snapshots
  • Reduced the per-entry overhead when using weak/soft values
  • Fixed Map.entrySet.contains(o) to use reference equality

v3.0.3: 3.0.3

Compare Source

Cache

  • Fixed reading an intermittent null weak/soft value during a concurrent write (#​568)
  • Fixed extraneous eviction when concurrently removing a collected entry after a writer resurrects it with a new mapping (#​568)
  • Fixed excessive retries of discarding an expired entry when the fixed duration period is extended, thereby resurrecting it (#​568)

v3.0.2: 3.0.2

Compare Source

Cache

  • Added cancellation of the next scheduled expiration cleanup when the cache becomes empty (#​542)
  • Improved how variable expiration reorganizes the timer events (#​541)
  • Improved usage of nullness annotations (#​530)
  • Removed sun.misc.Unsafe and fallbacks
  • Added module descriptors (#​535)

v3.0.1: 3.0.1

Compare Source

  • Fixed thread local fallback initialization for striped buffer (#​515)
  • Improved eviction reordering for weighted caches (#​513)
  • Added putIfAbsent optimistic fastpath (#​506)

v3.0.0: 3.0.0

Compare Source

This release includes API incompatible changes.

Highlights
  • Java 11 or above is required
  • Java 8 users can continue to use version 2.x, which will be supported
API improvements
  • Added Policy.refreshes() for a snapshot of the in-flight refresh operations
  • CacheLoader and AsyncCacheLoader offer bulk factory methods
  • AsyncCacheLoader methods may now throw checked exceptions
  • Better usage of Checker Framework nullness annotations (#​337)
  • LoadingCache.refresh now returns the in-flight future (#​143)
  • Various unimplemented default methods are now abstract
  • Added LoadingCache.refreshAll convenience method
  • Bulk loads now receive a Set of keys (was Iterable)
  • More flexible generic bounds and type parameters
Implementation improvements
Incompatible changes
  • VarExpiration time-based puts now return the old value instead of a boolean result
  • Removed jandex resource as no longer utilized by Quarkus
  • Split Policy.Expiration into fixed and refresh interfaces
Deprecation removals
  • CacheWriter, SingleConsumerQueue, and UnsafeAccess
  • StatsCounter.recordEviction variations
  • CacheStats constructors
Notes
  • CacheWriter usages can be replaced by Map computations and Caffeine.evictionListener
  • For best performance Unsafe may be used if available, otherwise falls back to VarHandles
  • We will continue to support and maintain version 2.x for Java 8 users

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

renovate[bot] avatar Nov 06 '24 13:11 renovate[bot]