Class PersistenceTestKitDurableStateStore<A>
- java.lang.Object
-
- akka.persistence.testkit.state.javadsl.PersistenceTestKitDurableStateStore<A>
-
- All Implemented Interfaces:
DurableStateStorePagedPersistenceIdsQuery<A>
,DurableStateStoreQuery<A>
,ReadJournal
,CurrentEventsBySliceQuery
,DurableStateStoreBySliceQuery<A>
,EventsBySliceQuery
,DurableStateStore<A>
,DurableStateUpdateStore<A>
,DurableStateUpdateWithChangeEventStore<A>
public class PersistenceTestKitDurableStateStore<A> extends java.lang.Object implements DurableStateUpdateWithChangeEventStore<A>, DurableStateStoreQuery<A>, DurableStateStoreBySliceQuery<A>, DurableStateStorePagedPersistenceIdsQuery<A>, CurrentEventsBySliceQuery, EventsBySliceQuery
-
-
Constructor Summary
Constructors Constructor Description PersistenceTestKitDurableStateStore(PersistenceTestKitDurableStateStore<A> stateStore)
-
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.<Event> Source<EventEnvelope<Event>,NotUsed>
currentEventsBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)
For change events.Source<java.lang.String,NotUsed>
currentPersistenceIds(java.util.Optional<java.lang.String> afterId, long limit)
Get the current persistence ids.java.util.concurrent.CompletionStage<Done>
deleteObject(java.lang.String persistenceId)
java.util.concurrent.CompletionStage<Done>
deleteObject(java.lang.String persistenceId, long revision)
java.util.concurrent.CompletionStage<Done>
deleteObject(java.lang.String persistenceId, long revision, java.lang.Object changeEvent)
<Event> Source<EventEnvelope<Event>,NotUsed>
eventsBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)
For change events.java.util.concurrent.CompletionStage<GetObjectResult<A>>
getObject(java.lang.String persistenceId)
static java.lang.String
Identifier()
int
sliceForPersistenceId(java.lang.String persistenceId)
java.util.List<Pair<java.lang.Integer,java.lang.Integer>>
sliceRanges(int numberOfRanges)
java.util.concurrent.CompletionStage<Done>
upsertObject(java.lang.String persistenceId, long seqNr, A value, java.lang.String tag)
java.util.concurrent.CompletionStage<Done>
upsertObject(java.lang.String persistenceId, long seqNr, A value, java.lang.String tag, java.lang.Object changeEvent)
ThechangeEvent
is written to the event journal.
-
-
-
Constructor Detail
-
PersistenceTestKitDurableStateStore
public PersistenceTestKitDurableStateStore(PersistenceTestKitDurableStateStore<A> stateStore)
-
-
Method Detail
-
Identifier
public static java.lang.String Identifier()
-
getObject
public java.util.concurrent.CompletionStage<GetObjectResult<A>> getObject(java.lang.String persistenceId)
- Specified by:
getObject
in interfaceDurableStateStore<A>
-
upsertObject
public java.util.concurrent.CompletionStage<Done> upsertObject(java.lang.String persistenceId, long seqNr, A value, java.lang.String tag)
- Specified by:
upsertObject
in interfaceDurableStateUpdateStore<A>
seqNr
- sequence number for optimistic locking. starts at 1.
-
upsertObject
public java.util.concurrent.CompletionStage<Done> upsertObject(java.lang.String persistenceId, long seqNr, A value, java.lang.String tag, java.lang.Object changeEvent)
Description copied from interface:DurableStateUpdateWithChangeEventStore
ThechangeEvent
is written to the event journal. SamepersistenceId
is used in the journal and therevision
is used assequenceNr
.- Specified by:
upsertObject
in interfaceDurableStateUpdateWithChangeEventStore<A>
seqNr
- sequence number for optimistic locking. starts at 1.
-
deleteObject
public java.util.concurrent.CompletionStage<Done> deleteObject(java.lang.String persistenceId)
- Specified by:
deleteObject
in interfaceDurableStateUpdateStore<A>
-
deleteObject
public java.util.concurrent.CompletionStage<Done> deleteObject(java.lang.String persistenceId, long revision)
- Specified by:
deleteObject
in interfaceDurableStateUpdateStore<A>
-
deleteObject
public java.util.concurrent.CompletionStage<Done> deleteObject(java.lang.String persistenceId, long revision, java.lang.Object changeEvent)
- Specified by:
deleteObject
in interfaceDurableStateUpdateWithChangeEventStore<A>
-
changes
public Source<DurableStateChange<A>,NotUsed> changes(java.lang.String tag, Offset offset)
Description copied from interface:DurableStateStoreQuery
Get 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
DurableStateChange
elements can beUpdatedDurableState
orDeletedDurableState
.- Specified by:
changes
in interfaceDurableStateStoreQuery<A>
- Parameters:
tag
- The tag to get changes for.offset
- The offset to get changes since. Must either beNoOffset
to 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:DurableStateStoreQuery
Get 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
Source
returned by this call is materialized. Changes to objects made since materialization are not guaranteed to be included in the results.The
DurableStateChange
elements can beUpdatedDurableState
orDeletedDurableState
.- Specified by:
currentChanges
in interfaceDurableStateStoreQuery<A>
- Parameters:
tag
- The tag to get changes for.offset
- The offset to get changes since. Must either beNoOffset
to 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:DurableStateStoreBySliceQuery
Get 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
Source
returned by this call is materialized. Changes to objects made since materialization are not guaranteed to be included in the results.The
DurableStateChange
elements can beUpdatedDurableState
orDeletedDurableState
.- Specified by:
currentChangesBySlices
in interfaceDurableStateStoreBySliceQuery<A>
-
changesBySlices
public Source<DurableStateChange<A>,NotUsed> changesBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)
Description copied from interface:DurableStateStoreBySliceQuery
Get 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
DurableStateChange
elements can beUpdatedDurableState
orDeletedDurableState
.- Specified by:
changesBySlices
in interfaceDurableStateStoreBySliceQuery<A>
-
sliceForPersistenceId
public int sliceForPersistenceId(java.lang.String persistenceId)
- Specified by:
sliceForPersistenceId
in interfaceCurrentEventsBySliceQuery
- Specified by:
sliceForPersistenceId
in interfaceDurableStateStoreBySliceQuery<A>
- Specified by:
sliceForPersistenceId
in interfaceEventsBySliceQuery
-
sliceRanges
public java.util.List<Pair<java.lang.Integer,java.lang.Integer>> sliceRanges(int numberOfRanges)
- Specified by:
sliceRanges
in interfaceCurrentEventsBySliceQuery
- Specified by:
sliceRanges
in interfaceDurableStateStoreBySliceQuery<A>
- Specified by:
sliceRanges
in interfaceEventsBySliceQuery
-
currentPersistenceIds
public Source<java.lang.String,NotUsed> currentPersistenceIds(java.util.Optional<java.lang.String> afterId, long limit)
Description copied from interface:DurableStateStorePagedPersistenceIdsQuery
Get the current persistence ids.Not all plugins may support in database paging, and may simply use drop/take Akka streams operators to manipulate the result set according to the paging parameters.
- Specified by:
currentPersistenceIds
in interfaceDurableStateStorePagedPersistenceIdsQuery<A>
- Parameters:
afterId
- The ID to start returning results from, or empty to 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.MAX_VALUE to return all results. Must be greater than zero.- Returns:
- A source containing all the persistence ids, limited as specified.
-
currentEventsBySlices
public <Event> Source<EventEnvelope<Event>,NotUsed> currentEventsBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)
For change events.- Specified by:
currentEventsBySlices
in interfaceCurrentEventsBySliceQuery
-
eventsBySlices
public <Event> Source<EventEnvelope<Event>,NotUsed> eventsBySlices(java.lang.String entityType, int minSlice, int maxSlice, Offset offset)
For change events.- Specified by:
eventsBySlices
in interfaceEventsBySliceQuery
-
-