java — version local — recovered with pkg
graph TD
Cache["Cache\n(761 entities)"]
Stats["Stats\n(57 entities)"]
Cache --> Stats
Stats --> Cache
| Component | Responsibility | # | Entities |
|---|---|---|---|
| Cache | Entities in cache | 761 | com.github.benmanes.caffeine.cache.AbstractLinkedDeque, com.github.benmanes.caffeine.cache.AbstractLinkedDeque.add, com.github.benmanes.caffeine.cache.AbstractLinkedDeque.addFirst, com.github.benmanes.caffeine.cache.AbstractLinkedDeque.addLast, com.github.benmanes.caffeine.cache.AbstractLinkedDeque.checkNotEmpty, com.github.benmanes.caffeine.cache.AbstractLinkedDeque.clear, com.github.benmanes.caffeine.cache.AbstractLinkedDeque.contains, com.github.benmanes.caffeine.cache.AbstractLinkedDeque.descendingIterator, ... (+753 more) |
| Stats | Entities in stats | 57 | com.github.benmanes.caffeine.cache.BoundedLocalCache.statsCounter, com.github.benmanes.caffeine.cache.Cache.stats, com.github.benmanes.caffeine.cache.Caffeine.getStatsCounterSupplier, com.github.benmanes.caffeine.cache.Caffeine.recordStats, com.github.benmanes.caffeine.cache.LocalCache.statsCounter, com.github.benmanes.caffeine.cache.LocalManualCache.stats, com.github.benmanes.caffeine.cache.UnboundedLocalCache.statsCounter, com.github.benmanes.caffeine.cache.stats.CacheStats, ... (+49 more) |
Circular dependency among 2 components: Cache <-> Stats
Why: Dependency cycles make components tightly coupled — you cannot change, test, or deploy any component in the cycle independently. This hinders maintainability, increases build times, and makes the system harder to understand.
Fix: Break the cycle by introducing an interface/abstraction that one component depends on, inverting the dependency direction. Consider the Dependency Inversion Principle (DIP).
Affects: Cache, Stats
| Package | Entities |
|---|---|
com.github.benmanes.caffeine.cache |
808 |
com.github.benmanes.caffeine.cache.stats |
53 |