Class InfinispanAsyncCache

java.lang.Object
io.micronaut.cache.infinispan.InfinispanAsyncCache
All Implemented Interfaces:
AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>, Cache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>

public class InfinispanAsyncCache extends Object implements AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
An AsyncCache implementation based on Infinispan's AsyncCache.
Since:
1.0.0
Author:
Álvaro Sánchez-Mariscal
  • Constructor Details

    • InfinispanAsyncCache

      public InfinispanAsyncCache(org.infinispan.client.hotrod.RemoteCache<Object,Object> nativeCache, io.micronaut.core.convert.ConversionService conversionService)
      Parameters:
      nativeCache - the Infinispan remote cache
      conversionService - the conversion service
  • Method Details

    • get

      @NonNull public <T> @NonNull CompletableFuture<Optional<T>> get(@NonNull @NonNull Object key, @NonNull @NonNull io.micronaut.core.type.Argument<T> requiredType)
      Description copied from interface: AsyncCache
      Resolve the given value for the given key.
      Specified by:
      get in interface AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Type Parameters:
      T - The concrete type
      Parameters:
      key - The cache key
      requiredType - The required type
      Returns:
      An optional containing the value if it exists and is able to be converted to the specified type
    • get

      public <T> CompletableFuture<T> get(@NonNull @NonNull Object key, @NonNull @NonNull io.micronaut.core.type.Argument<T> requiredType, @NonNull @NonNull Supplier<T> supplier)
      Description copied from interface: AsyncCache
      Resolve the given value for the given key. If the value is not found the specified Supplier will be invoked and the return value cached.
      Specified by:
      get in interface AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Type Parameters:
      T - The concrete type
      Parameters:
      key - The cache key
      requiredType - The required type
      supplier - The supplier that should be invoked if the value is not found
      Returns:
      An optional containing the value if it exists and is able to be converted to the specified type
    • putIfAbsent

      @NonNull public <T> @NonNull CompletableFuture<Optional<T>> putIfAbsent(@NonNull @NonNull Object key, @NonNull T value)
      Description copied from interface: AsyncCache

      Cache the specified value using the specified key if it is not already present.

      Specified by:
      putIfAbsent in interface AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Type Parameters:
      T - The concrete type
      Parameters:
      key - The key with which the specified value is to be associated
      value - The value to be associated with the specified key
      Returns:
      An optional of the existing value or Optional.empty() if the specified value parameter was cached
    • put

      public CompletableFuture<Boolean> put(@NonNull @NonNull Object key, @NonNull @NonNull Object value)
      Description copied from interface: AsyncCache

      Cache the specified value using the specified key.

      Specified by:
      put in interface AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Parameters:
      key - The key with which the specified value is to be associated
      value - The value to be associated with the specified key
      Returns:
      A future with a boolean indicating whether the operation was successful or not
    • invalidate

      public CompletableFuture<Boolean> invalidate(@NonNull @NonNull Object key)
      Description copied from interface: AsyncCache
      Invalidate the value for the given key.
      Specified by:
      invalidate in interface AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Parameters:
      key - The key to invalid
      Returns:
      A future with a boolean indicating whether the operation was succesful or not
    • invalidateAll

      public CompletableFuture<Boolean> invalidateAll()
      Description copied from interface: AsyncCache
      Invalidate all cached values within this cache.
      Specified by:
      invalidateAll in interface AsyncCache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Returns:
      A future with a boolean indicating whether the operation was succesful or not
    • getCacheInfo

      public org.reactivestreams.Publisher<CacheInfo> getCacheInfo()
      Specified by:
      getCacheInfo in interface Cache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Returns:
      The cache information.
    • getName

      public String getName()
      Specified by:
      getName in interface Cache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Returns:
      The name of the cache
    • getNativeCache

      public org.infinispan.client.hotrod.RemoteCache<Object,Object> getNativeCache()
      Specified by:
      getNativeCache in interface Cache<org.infinispan.client.hotrod.RemoteCache<Object,Object>>
      Returns:
      The native cache implementation