SagaStore.Entry<T>
Constructor and Description |
---|
MongoSagaStore(MongoTemplate mongoTemplate)
Initializes the Repository, using given
mongoTemplate to access the collections containing the
stored Saga instances. |
MongoSagaStore(MongoTemplate mongoTemplate,
Serializer serializer)
Initializes the Repository, using given
mongoTemplate to access the collections containing the
stored Saga instances, serializing Saga instances using the given serializer . |
Modifier and Type | Method and Description |
---|---|
void |
deleteSaga(Class<?> sagaType,
String sagaIdentifier,
Set<AssociationValue> associationValues)
Deletes a Saga with given
sagaType and sagaIdentifier and all its associations. |
Set<String> |
findSagas(Class<?> sagaType,
AssociationValue associationValue)
Returns identifiers of saga instances of the given
sagaType that have been associated with the given
associationValue . |
void |
insertSaga(Class<?> sagaType,
String sagaIdentifier,
Object saga,
TrackingToken token,
Set<AssociationValue> associationValues)
Adds a new Saga and its initial association values to the store.
|
<S> SagaStore.Entry<S> |
loadSaga(Class<S> sagaType,
String sagaIdentifier)
|
void |
updateSaga(Class<?> sagaType,
String sagaIdentifier,
Object saga,
TrackingToken token,
AssociationValues associationValues)
Updates a given Saga after its state was modified.
|
public MongoSagaStore(MongoTemplate mongoTemplate)
mongoTemplate
to access the collections containing the
stored Saga instances. Serialization is done using an XStream based serializer.mongoTemplate
- the template providing access to the collectionspublic MongoSagaStore(MongoTemplate mongoTemplate, Serializer serializer)
mongoTemplate
to access the collections containing the
stored Saga instances, serializing Saga instances using the given serializer
.mongoTemplate
- the template providing access to the collectionsserializer
- the serializer to serialize Saga instances withpublic <S> SagaStore.Entry<S> loadSaga(Class<S> sagaType, String sagaIdentifier)
SagaStore
SagaStore.Entry
instance with given sagaType
and unique sagaIdentifier
.
Due to the concurrent nature of Sagas, it is not unlikely for a Saga to have ceased to exist after it has been
found based on associations. Therefore, a repository should return null
in case a Saga doesn't
exists, as opposed to throwing an exception.
public Set<String> findSagas(Class<?> sagaType, AssociationValue associationValue)
SagaStore
sagaType
that have been associated with the given
associationValue
.public void deleteSaga(Class<?> sagaType, String sagaIdentifier, Set<AssociationValue> associationValues)
SagaStore
sagaType
and sagaIdentifier
and all its associations. For convenience
all known association values are passed along as well, which has the advantage that the saga store is not
required to keep an index of association value to saga identifier.deleteSaga
in interface SagaStore<Object>
sagaType
- The type of saga to deletesagaIdentifier
- The identifier of the saga to deleteassociationValues
- The known associations of the sagapublic void updateSaga(Class<?> sagaType, String sagaIdentifier, Object saga, TrackingToken token, AssociationValues associationValues)
SagaStore
token
may be null
if the Saga is not tracking the
event store.updateSaga
in interface SagaStore<Object>
sagaType
- The type of the SagasagaIdentifier
- The identifier of the Sagasaga
- The Saga instancetoken
- The tracking token of the event last handled by the Saga. May be null
.associationValues
- The initial association values of the Sagapublic void insertSaga(Class<?> sagaType, String sagaIdentifier, Object saga, TrackingToken token, Set<AssociationValue> associationValues)
SagaStore
token
may be null
if the Saga is not tracking the event store.insertSaga
in interface SagaStore<Object>
sagaType
- The type of the SagasagaIdentifier
- The identifier of the Sagasaga
- The Saga instancetoken
- The tracking token of the event last handled by the Saga. May be null
.associationValues
- The initial association values of the SagaCopyright © 2010–2018. All rights reserved.