@CacheEntryVisited should be triggered with a get() call. Can you attach an example where it doesn't happen?
@CacheEntryInvalidated gets fired when either: the cache is configured with invalidation and an entry is invalidated, or when the cache is configured with distribution and l1 cache, and an entry is invalidated.
I'm sorry that the listeners are not properly documented. We will be moving to JSR-107 events at some point when we plan to revisit our listeners.