Class PersistenceTestKitDurableStateStore<A>
- java.lang.Object
-
- org.apache.pekko.persistence.testkit.state.scaladsl.PersistenceTestKitDurableStateStore<A>
-
- All Implemented Interfaces:
DurableStateStorePagedPersistenceIdsQuery<A>,DurableStateStoreQuery<A>,DurableStateStoreBySliceQuery<A>,DurableStateStore<A>,DurableStateUpdateStore<A>
public class PersistenceTestKitDurableStateStore<A> extends java.lang.Object implements DurableStateUpdateStore<A>, DurableStateStoreQuery<A>, DurableStateStoreBySliceQuery<A>, DurableStateStorePagedPersistenceIdsQuery<A>
-
-
Constructor Summary
Constructors Constructor Description PersistenceTestKitDurableStateStore(ExtendedActorSystem system)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Source<DurableStateChange<A>,NotUsed>changes(java.lang.String tag, Offset offset)Get a source of the most recent changes made to objects of the given tag since the passed in offset.Source<DurableStateChange<A>,NotUsed>changesBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)Get a source of the most recent changes made to objects of the given slice range since the passed in offset.Source<DurableStateChange<A>,NotUsed>currentChanges(java.lang.String tag, Offset offset)Get a source of the most recent changes made to objects with the given tag since the passed in offset.Source<DurableStateChange<A>,NotUsed>currentChangesBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)Get a source of the most recent changes made to objects with the given slice range since the passed in offset.Source<java.lang.String,NotUsed>currentPersistenceIds(scala.Option<java.lang.String> afterId, long limit)Get the current persistence ids.scala.concurrent.Future<Done>deleteObject(java.lang.String persistenceId)Delete the object with the givenpersistenceId.scala.concurrent.Future<Done>deleteObject(java.lang.String persistenceId, long revision)Delete the object with the givenpersistenceIdandrevision.scala.concurrent.Future<GetObjectResult<A>>getObject(java.lang.String persistenceId)static java.lang.StringIdentifier()intsliceForPersistenceId(java.lang.String persistenceId)scala.collection.immutable.Seq<scala.collection.immutable.Range>sliceRanges(int numberOfRanges)ExtendedActorSystemsystem()scala.concurrent.Future<Done>upsertObject(java.lang.String persistenceId, long revision, A value, java.lang.String tag)Upsert the object with the givenpersistenceIdandrevision.
-
-
-
Constructor Detail
-
PersistenceTestKitDurableStateStore
public PersistenceTestKitDurableStateStore(ExtendedActorSystem system)
-
-
Method Detail
-
Identifier
public static java.lang.String Identifier()
-
system
public ExtendedActorSystem system()
-
getObject
public scala.concurrent.Future<GetObjectResult<A>> getObject(java.lang.String persistenceId)
- Specified by:
getObjectin interfaceDurableStateStore<A>
-
upsertObject
public scala.concurrent.Future<Done> upsertObject(java.lang.String persistenceId, long revision, A value, java.lang.String tag)
Description copied from interface:DurableStateUpdateStoreUpsert the object with the givenpersistenceIdandrevision.- Specified by:
upsertObjectin interfaceDurableStateUpdateStore<A>- Parameters:
persistenceId- the persistenceId of the object to upsertrevision- the revision of the object to upsertvalue- the value to upserttag- a tag to associate with the object- Returns:
- a Future that completes when the object has been upserted
-
deleteObject
public scala.concurrent.Future<Done> deleteObject(java.lang.String persistenceId)
Description copied from interface:DurableStateUpdateStoreDelete the object with the givenpersistenceId. This deprecated function ignores whether the object is deleted or not.- Specified by:
deleteObjectin interfaceDurableStateUpdateStore<A>- Parameters:
persistenceId- the persistenceId of the object to delete- Returns:
- a Future that completes when the object has been deleted
-
deleteObject
public scala.concurrent.Future<Done> deleteObject(java.lang.String persistenceId, long revision)
Description copied from interface:DurableStateUpdateStoreDelete the object with the givenpersistenceIdandrevision.Since Pekko v1.1, if the revision does not match the current revision of the object, the delete operation will fail. The returned Future will complete with a failed result wrapping the exception.
- Specified by:
deleteObjectin interfaceDurableStateUpdateStore<A>- Parameters:
persistenceId- the persistenceId of the object to deleterevision- the revision of the object to delete- Returns:
- a Future that completes when the object has been deleted
-
changes
public Source<DurableStateChange<A>,NotUsed> changes(java.lang.String tag, Offset offset)
Description copied from interface:DurableStateStoreQueryGet a source of the most recent changes made to objects of the given tag since the passed in offset.The returned source will never terminate, it effectively watches for changes to the objects and emits changes as they happen.
Not all changes that occur are guaranteed to be emitted, this call only guarantees that eventually, the most recent change for each object since the offset will be emitted. In particular, multiple updates to a given object in quick succession are likely to be skipped, with only the last update resulting in a change from this source.
The
pekko.persistence.query.DurableStateChangeelements can bepekko.persistence.query.UpdatedDurableStateorpekko.persistence.query.DeletedDurableState.- Specified by:
changesin interfaceDurableStateStoreQuery<A>- Parameters:
tag- The tag to get changes for.offset- The offset to get changes since. Must either bepekko.persistence.query.NoOffsetto get changes since the beginning of time, or an offset that has been previously returned by this query. Any other offsets are invalid.- Returns:
- A source of change in state.
-
currentChanges
public Source<DurableStateChange<A>,NotUsed> currentChanges(java.lang.String tag, Offset offset)
Description copied from interface:DurableStateStoreQueryGet a source of the most recent changes made to objects with the given tag since the passed in offset.Note that this only returns the most recent change to each object, if an object has been updated multiple times since the offset, only the most recent of those changes will be part of the stream.
This will return changes that occurred up to when the
Sourcereturned by this call is materialized. Changes to objects made since materialization are not guaranteed to be included in the results.The
pekko.persistence.query.DurableStateChangeelements can bepekko.persistence.query.UpdatedDurableStateorpekko.persistence.query.DeletedDurableState.- Specified by:
currentChangesin interfaceDurableStateStoreQuery<A>- Parameters:
tag- The tag to get changes for.offset- The offset to get changes since. Must either bepekko.persistence.query.NoOffsetto get changes since the beginning of time, or an offset that has been previously returned by this query. Any other offsets are invalid.- Returns:
- A source of change in state.
-
currentChangesBySlices
public Source<DurableStateChange<A>,NotUsed> currentChangesBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)
Description copied from interface:DurableStateStoreBySliceQueryGet a source of the most recent changes made to objects with the given slice range since the passed in offset.A slice is deterministically defined based on the persistence id. The purpose is to evenly distribute all persistence ids over the slices.
Note that this only returns the most recent change to each object, if an object has been updated multiple times since the offset, only the most recent of those changes will be part of the stream.
This will return changes that occurred up to when the
Sourcereturned by this call is materialized. Changes to objects made since materialization are not guaranteed to be included in the results.The
pekko.persistence.query.DurableStateChangeelements can bepekko.persistence.query.UpdatedDurableStateorpekko.persistence.query.DeletedDurableState.- Specified by:
currentChangesBySlicesin interfaceDurableStateStoreBySliceQuery<A>
-
changesBySlices
public Source<DurableStateChange<A>,NotUsed> changesBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)
Description copied from interface:DurableStateStoreBySliceQueryGet a source of the most recent changes made to objects of the given slice range since the passed in offset.A slice is deterministically defined based on the persistence id. The purpose is to evenly distribute all persistence ids over the slices.
The returned source will never terminate, it effectively watches for changes to the objects and emits changes as they happen.
Not all changes that occur are guaranteed to be emitted, this call only guarantees that eventually, the most recent change for each object since the offset will be emitted. In particular, multiple updates to a given object in quick succession are likely to be skipped, with only the last update resulting in a change from this source.
The
pekko.persistence.query.DurableStateChangeelements can bepekko.persistence.query.UpdatedDurableStateorpekko.persistence.query.DeletedDurableState.- Specified by:
changesBySlicesin interfaceDurableStateStoreBySliceQuery<A>
-
sliceForPersistenceId
public int sliceForPersistenceId(java.lang.String persistenceId)
- Specified by:
sliceForPersistenceIdin interfaceDurableStateStoreBySliceQuery<A>
-
sliceRanges
public scala.collection.immutable.Seq<scala.collection.immutable.Range> sliceRanges(int numberOfRanges)
- Specified by:
sliceRangesin interfaceDurableStateStoreBySliceQuery<A>
-
currentPersistenceIds
public Source<java.lang.String,NotUsed> currentPersistenceIds(scala.Option<java.lang.String> afterId, long limit)
Description copied from interface:DurableStateStorePagedPersistenceIdsQueryGet the current persistence ids.Not all plugins may support in database paging, and may simply use drop/take Pekko streams operators to manipulate the result set according to the paging parameters.
- Specified by:
currentPersistenceIdsin interfaceDurableStateStorePagedPersistenceIdsQuery<A>- Parameters:
afterId- The ID to start returning results from, orNoneto return all ids. This should be an id returned from a previous invocation of this command. Callers should not assume that ids are returned in sorted order.limit- The maximum results to return. Use Long.MaxValue to return all results. Must be greater than zero.- Returns:
- A source containing all the persistence ids, limited as specified.
-
-