Class CacheSettingsBuilder

java.lang.Object
com.atlassian.cache.CacheSettingsBuilder

@PublicApi public class CacheSettingsBuilder extends Object
A builder for creating CacheSettings instances.
Since:
2.0
  • Constructor Details

    • CacheSettingsBuilder

      public CacheSettingsBuilder()
      Constructor
    • CacheSettingsBuilder

      public CacheSettingsBuilder(CacheSettings settings)
      Constructor that initializes the builder with the settings from a CacheSettings instance
      Parameters:
      settings - the instance to initialize the builder with
  • Method Details

    • build

      @Nonnull public CacheSettings build()
      Returns:
      a new CacheSettings instance with
    • expireAfterAccess

      @Nonnull public CacheSettingsBuilder expireAfterAccess(long expireAfter, @Nonnull TimeUnit timeUnit)
      Set a hint for the cache regarding how long entries should be held in the cache.
      Parameters:
      expireAfter - Time to retain entries for since their last access.
      timeUnit - The TimeUnit for the time
      Returns:
      this builder
    • expireAfterWrite

      @Nonnull public CacheSettingsBuilder expireAfterWrite(long expireAfter, @Nonnull TimeUnit timeUnit)
      Set a hint for the cache regarding how long entries should be held in the cache.
      Parameters:
      expireAfter - Time to retain entries from when they were created.
      timeUnit - The TimeUnit for the time
      Returns:
      this builder
    • flushable

      @Nonnull public CacheSettingsBuilder flushable()
      Indicates that this cache can be flushed by the cache manager when desired.
      Returns:
      this builder
    • unflushable

      @Nonnull public CacheSettingsBuilder unflushable()
      Indicates that this cache cannot be flushed by the cache manager when desired.
      Returns:
      this builder
    • maxEntries

      @Nonnull public CacheSettingsBuilder maxEntries(int maxEntries)
      Indicates that this cache can have a maximum number of entries.
      Parameters:
      maxEntries - The maximum number of entries. Must be greater than zero.
      Returns:
      this builder
    • replicateAsynchronously

      @Nonnull public CacheSettingsBuilder replicateAsynchronously()
      Indicates that in a clustered environment with replicated caches, this cache should replicate asynchronously. By default, it is up to the host application as to whether replication is synchronous or asynchronous.
      When it is synchronous, cache mutations block on the originating node until all nodes in the cluster have replicated the mutation. Asynchronous replication provides greater responsiveness at the expense of consistency.
      Returns:
      this builder
    • replicateSynchronously

      @Nonnull public CacheSettingsBuilder replicateSynchronously()
      Indicates that in a clustered environment with replicated caches, this cache should replicate synchronously.
      Returns:
      this builder
      Since:
      2.3.0
      See Also:
      • replicateAsynchronously
    • replicateViaCopy

      @Nonnull public CacheSettingsBuilder replicateViaCopy()
      Indicates that in a clustered environment with replicated caches, this cache should replicate put and update operations by copying the relevant key and value across the wire (requiring both of them to be Serializable).
      By default, it is up to the host application as to whether replication is via copy or invalidation.
      Returns:
      this builder
      See Also:
    • replicateViaInvalidation

      @Nonnull public CacheSettingsBuilder replicateViaInvalidation()
      Indicates that in a clustered environment with replicated caches, this cache should replicate by sending only the key across the wire, for invalidation by the other nodes in the cluster; this requires only the key to be Serializable.
      By default, it is up to the host application as to whether replication is via copy or invalidation.
      Returns:
      this builder
      Since:
      2.3.0
      See Also:
      • replicateViaCopy
    • local

      @Nonnull public CacheSettingsBuilder local()
      Indicates that this cache should be local to the node (JVM) where the cache is created. By default, caches will be clustered in a clustered deployment.
      Returns:
      this builder
    • remote

      @Nonnull public CacheSettingsBuilder remote()
      Indicates that this cache should be clustered in a clustered deployment.
      Returns:
      this builder
    • statisticsEnabled

      public CacheSettingsBuilder statisticsEnabled()
      Indicates that this cache should record statistics.
      Returns:
      this builder
    • statisticsDisabled

      public CacheSettingsBuilder statisticsDisabled()
      Indicates that this cache should not record statistics.
      Returns:
      this builder