Class JpaStore<K,​V>

    • Constructor Detail

      • JpaStore

        public JpaStore()
    • Method Detail

      • start

        public void start()
        Description copied from interface: Lifecycle
        Invoked on component start
        Specified by:
        start in interface Lifecycle
      • stop

        public void stop()
        Description copied from interface: Lifecycle
        Invoked on component stop
        Specified by:
        stop in interface Lifecycle
      • isValidKeyType

        protected boolean isValidKeyType​(java.lang.Object key)
      • delete

        public boolean delete​(java.lang.Object key)
        Specified by:
        delete in interface CacheWriter<K,​V>
        Returns:
        true if the entry existed in the persistent store and it was deleted.
      • deleteBatch

        public void deleteBatch​(java.lang.Iterable<java.lang.Object> keys)
        Description copied from interface: CacheWriter
        Remove all provided keys from the store in a single batch operation. If this is not supported by the underlying store, then keys are removed from the store individually via CacheWriter.delete(Object).
        Specified by:
        deleteBatch in interface CacheWriter<K,​V>
        Parameters:
        keys - an Iterable of entry Keys to be removed from the store.
      • bulkUpdate

        public java.util.concurrent.CompletionStage<java.lang.Void> bulkUpdate​(org.reactivestreams.Publisher<MarshallableEntry<? extends K,​? extends V>> publisher)
        Description copied from interface: CacheWriter
        Persist all provided entries to the store in chunks, with the size of each chunk determined by the store implementation. If chunking is not supported by the underlying store, then entries are written to the store individually via CacheWriter.write(MarshallableEntry).
        Specified by:
        bulkUpdate in interface CacheWriter<K,​V>
        Parameters:
        publisher - a Publisher of MarshallableEntry instances
      • contains

        public boolean contains​(java.lang.Object key)
        Description copied from interface: CacheLoader
        Returns true if the storage contains an entry associated with the given key.
        Specified by:
        contains in interface CacheLoader<K,​V>
      • publishKeys

        public io.reactivex.Flowable<K> publishKeys​(java.util.function.Predicate<? super K> filter)
        Description copied from interface: AdvancedCacheLoader
        Publishes all the keys from this store. The given publisher can be used by as many Subscribers as desired. Keys are not retrieved until a given Subscriber requests them from the Subscription.

        Stores will return only non expired keys

        Specified by:
        publishKeys in interface AdvancedCacheLoader<K,​V>
        Parameters:
        filter - a filter - null is treated as allowing all entries
        Returns:
        a publisher that will provide the keys from the store
      • entryPublisher

        public io.reactivex.Flowable<MarshallableEntry<K,​V>> entryPublisher​(java.util.function.Predicate<? super K> filter,
                                                                                  boolean fetchValue,
                                                                                  boolean fetchMetadata)
        Description copied from interface: AdvancedCacheLoader
        Publishes all entries from this store. The given publisher can be used by as many Subscribers as desired. Entries are not retrieved until a given Subscriber requests them from the Subscription.

        If fetchMetadata is true this store must guarantee to not return any expired entries.

        Specified by:
        entryPublisher in interface AdvancedCacheLoader<K,​V>
        Parameters:
        filter - a filter - null is treated as allowing all entries
        fetchValue - whether or not to fetch the value from the persistent store. E.g. if the iteration is intended only over the key set, no point fetching the values from the persistent store as well
        fetchMetadata - whether or not to fetch the metadata from the persistent store. E.g. if the iteration is intended only ove the key set, then no point fetching the metadata from the persistent store as well
        Returns:
        a publisher that will provide the entries from the store
      • purge

        public void purge​(java.util.concurrent.Executor threadPool,
                          AdvancedCacheWriter.PurgeListener listener)
        Description copied from interface: AdvancedCacheWriter
        Using the thread in the pool, removed all the expired data from the persistence storage. For each removed entry, the supplied listener is invoked.

        When this method returns all entries will be purged and no tasks will be running due to this loader in the provided executor. If however an exception is thrown there could be tasks still pending or running in the executor.

        Specified by:
        purge in interface AdvancedCacheWriter<K,​V>