public class JdbcSagaRepository extends AbstractSagaRepository
| Constructor and Description |
|---|
JdbcSagaRepository(ConnectionProvider connectionProvider)
Initializes a Saga Repository, using given
connectionProvider to obtain connections to the
database, using a Generic SQL Schema. |
JdbcSagaRepository(ConnectionProvider connectionProvider,
SagaSqlSchema sqldef)
Initializes a Saga Repository, using given
connectionProvider to obtain connections to the
database, and given sqldef to execute SQL statements. |
JdbcSagaRepository(ConnectionProvider connectionProvider,
SagaSqlSchema sqldef,
Serializer serializer)
Initializes a Saga Repository, using given
connectionProvider to obtain connections to the
database, and given sqldef to execute SQL statements and serializer to serialize
Sagas. |
JdbcSagaRepository(DataSource dataSource,
SagaSqlSchema sqldef)
Initializes a Saga Repository, using given
dataSource to obtain connections to the database, and
given sqldef to execute SQL statements. |
| Modifier and Type | Method and Description |
|---|---|
void |
createSchema()
Creates the SQL Schema required to store Sagas and their associations,.
|
protected void |
deleteSaga(Saga saga)
Remove the given saga as well as all known association values pointing to it from the repository.
|
protected Set<String> |
findAssociatedSagaIdentifiers(Class<? extends Saga> type,
AssociationValue associationValue)
Finds the identifiers of the sagas of given
type associated with the given
associationValue. |
Saga |
load(String sagaId)
Loads a known Saga instance by its unique identifier.
|
protected void |
removeAssociationValue(AssociationValue associationValue,
String sagaType,
String sagaIdentifier)
Removes the association value that has been associated with Saga, identified with the given
sagaIdentifier. |
void |
setResourceInjector(ResourceInjector resourceInjector)
Sets the ResourceInjector to use to inject Saga instances with any (temporary) resources they might need.
|
void |
setSerializer(Serializer serializer)
Sets the Serializer instance to serialize Sagas with.
|
protected void |
storeAssociationValue(AssociationValue associationValue,
String sagaType,
String sagaIdentifier)
Store the given
associationValue, which has been associated with given sagaIdentifier. |
protected void |
storeSaga(Saga saga)
Stores a newly created Saga instance.
|
protected String |
typeOf(Class<? extends Saga> sagaClass)
Returns the type identifier to use for the given
sagaClass. |
protected void |
updateSaga(Saga saga)
Update a stored Saga, by replacing it with the given
saga instance. |
add, commit, findpublic JdbcSagaRepository(ConnectionProvider connectionProvider)
connectionProvider to obtain connections to the
database, using a Generic SQL Schema.connectionProvider - The data source to obtain connections frompublic JdbcSagaRepository(DataSource dataSource, SagaSqlSchema sqldef)
dataSource to obtain connections to the database, and
given sqldef to execute SQL statements.dataSource - The data source to obtain connections fromsqldef - The definition of SQL operations to executepublic JdbcSagaRepository(ConnectionProvider connectionProvider, SagaSqlSchema sqldef)
connectionProvider to obtain connections to the
database, and given sqldef to execute SQL statements.connectionProvider - The provider to obtain connections fromsqldef - The definition of SQL operations to executepublic JdbcSagaRepository(ConnectionProvider connectionProvider, SagaSqlSchema sqldef, Serializer serializer)
connectionProvider to obtain connections to the
database, and given sqldef to execute SQL statements and serializer to serialize
Sagas.connectionProvider - The provider to obtain connections fromsqldef - The definition of SQL operations to executeserializer - The serializer to serialize and deserialize Saga instances withpublic Saga load(String sagaId)
SagaRepositorycommitted
after processing.
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.sagaId - The unique identifier of the Saga to loadnull if no such saga existsprotected void removeAssociationValue(AssociationValue associationValue, String sagaType, String sagaIdentifier)
AbstractSagaRepositorysagaIdentifier.removeAssociationValue in class AbstractSagaRepositoryassociationValue - The value to remove as association value for the given sagasagaType - The type of the Saga to remove the association fromsagaIdentifier - The identifier of the Saga to remove the association fromprotected String typeOf(Class<? extends Saga> sagaClass)
AbstractSagaRepositorysagaClass. This information is typically provided
by the Serializer, if the repository stores serialized instances.typeOf in class AbstractSagaRepositorysagaClass - The type of saga to get the type identifier for.protected void storeAssociationValue(AssociationValue associationValue, String sagaType, String sagaIdentifier)
AbstractSagaRepositoryassociationValue, which has been associated with given sagaIdentifier.storeAssociationValue in class AbstractSagaRepositoryassociationValue - The association value to storesagaType - Type type of saga the association value belongs tosagaIdentifier - The saga related to the association valueprotected Set<String> findAssociatedSagaIdentifiers(Class<? extends Saga> type, AssociationValue associationValue)
AbstractSagaRepositorytype associated with the given
associationValue.findAssociatedSagaIdentifiers in class AbstractSagaRepositorytype - The type of saga to find identifiers forassociationValue - The value the saga must be associated withassociationValueprotected void deleteSaga(Saga saga)
AbstractSagaRepositorydeleteSaga in class AbstractSagaRepositorysaga - The saga instance to remove from the repositoryprotected void updateSaga(Saga saga)
AbstractSagaRepositorysaga instance.updateSaga in class AbstractSagaRepositorysaga - The saga that has been modified and needs to be updated in the storageprotected void storeSaga(Saga saga)
AbstractSagaRepositorystoreSaga in class AbstractSagaRepositorysaga - The newly created Saga instance to store.public void setResourceInjector(ResourceInjector resourceInjector)
resourceInjector - The resource injectorpublic void setSerializer(Serializer serializer)
serializer - the Serializer instance to serialize Sagas withpublic void createSchema()
throws SQLException
SQLException - When an error occurs preparing of executing the required statementsCopyright © 2010-2014. All Rights Reserved.