Class JdbcEventPublicationRepository
java.lang.Object
org.springframework.modulith.events.jdbc.JdbcEventPublicationRepository
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
,EventPublicationRepository
class JdbcEventPublicationRepository
extends Object
implements EventPublicationRepository, BeanClassLoaderAware
JDBC-based repository to store
TargetEventPublication
s.- Author:
- Dmitry Belyaev, Björn Kieling, Oliver Drotbohm, Raed Ben Hamouda, Cora Iberkleid
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.modulith.events.core.EventPublicationRepository
EventPublicationRepository.FailedCriteria
-
Constructor Summary
ConstructorsConstructorDescriptionJdbcEventPublicationRepository
(JdbcOperations operations, EventSerializer serializer, JdbcRepositorySettings settings) Creates a newJdbcEventPublicationRepository
for the givenJdbcOperations
,EventSerializer
,DatabaseType
andJdbcConfigurationProperties
. -
Method Summary
Modifier and TypeMethodDescriptionint
countByStatus
(EventPublication.Status status) Returns the number ofEventPublication
s for the given status.create
(TargetEventPublication publication) Persists the givenTargetEventPublication
.void
Deletes all publications that were already marked as completed.void
deleteCompletedPublicationsBefore
(Instant instant) Deletes all publication that were already marked as completed with a completion date before the given one.void
deletePublications
(List<UUID> identifiers) Deletes all publications with the given identifiers.findByStatus
(EventPublication.Status status) Returns allTargetEventPublication
s with the givenEventPublication.Status
.Returns all completed event publications currently found in the system.Returns allTargetEventPublication
s that have not been completed yet.findIncompletePublicationsByEventAndTargetIdentifier
(Object event, PublicationTargetIdentifier targetIdentifier) Return the incompleteTargetEventPublication
for the given serialized event and listener identifier.Returns allTargetEventPublication
s that have not been completed and were published before the givenInstant
.void
markCompleted
(Object event, PublicationTargetIdentifier identifier, Instant completionDate) Marks the publication for the given event andPublicationTargetIdentifier
to be completed at the givenInstant
.void
markCompleted
(UUID identifier, Instant completionDate) Marks the publication with the given identifier completed at the givenInstant
.void
setBeanClassLoader
(ClassLoader classLoader) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.modulith.events.core.EventPublicationRepository
findFailedPublications, markCompleted, markFailed, markProcessing, markResubmitted
-
Constructor Details
-
JdbcEventPublicationRepository
public JdbcEventPublicationRepository(JdbcOperations operations, EventSerializer serializer, JdbcRepositorySettings settings) Creates a newJdbcEventPublicationRepository
for the givenJdbcOperations
,EventSerializer
,DatabaseType
andJdbcConfigurationProperties
.- Parameters:
operations
- must not be null.serializer
- must not be null.settings
- must not be null.
-
-
Method Details
-
setBeanClassLoader
- Specified by:
setBeanClassLoader
in interfaceBeanClassLoaderAware
-
create
Description copied from interface:EventPublicationRepository
Persists the givenTargetEventPublication
.- Specified by:
create
in interfaceEventPublicationRepository
- Parameters:
publication
- must not be null.- Returns:
- will never be null.
-
markCompleted
@Transactional public void markCompleted(Object event, PublicationTargetIdentifier identifier, Instant completionDate) Description copied from interface:EventPublicationRepository
Marks the publication for the given event andPublicationTargetIdentifier
to be completed at the givenInstant
.- Specified by:
markCompleted
in interfaceEventPublicationRepository
- Parameters:
event
- must not be null.identifier
- must not be null.completionDate
- must not be null.- See Also:
-
markCompleted
Description copied from interface:EventPublicationRepository
Marks the publication with the given identifier completed at the givenInstant
.- Specified by:
markCompleted
in interfaceEventPublicationRepository
- Parameters:
identifier
- must not be null.completionDate
- must not be null.- See Also:
-
findIncompletePublicationsByEventAndTargetIdentifier
@Transactional(readOnly=true) public Optional<TargetEventPublication> findIncompletePublicationsByEventAndTargetIdentifier(Object event, PublicationTargetIdentifier targetIdentifier) Description copied from interface:EventPublicationRepository
Return the incompleteTargetEventPublication
for the given serialized event and listener identifier.- Specified by:
findIncompletePublicationsByEventAndTargetIdentifier
in interfaceEventPublicationRepository
- Parameters:
event
- must not be null.targetIdentifier
- must not be null.- Returns:
- will never be null.
-
findCompletedPublications
Description copied from interface:EventPublicationRepository
Returns all completed event publications currently found in the system.- Specified by:
findCompletedPublications
in interfaceEventPublicationRepository
- Returns:
- will never be null.
-
findIncompletePublications
Description copied from interface:EventPublicationRepository
Returns allTargetEventPublication
s that have not been completed yet.- Specified by:
findIncompletePublications
in interfaceEventPublicationRepository
- Returns:
- will never be null.
-
findIncompletePublicationsPublishedBefore
Description copied from interface:EventPublicationRepository
Returns allTargetEventPublication
s that have not been completed and were published before the givenInstant
.- Specified by:
findIncompletePublicationsPublishedBefore
in interfaceEventPublicationRepository
- Parameters:
instant
- must not be null.- Returns:
- will never be null.
-
deletePublications
Description copied from interface:EventPublicationRepository
Deletes all publications with the given identifiers.- Specified by:
deletePublications
in interfaceEventPublicationRepository
- Parameters:
identifiers
- must not be null.
-
deleteCompletedPublications
public void deleteCompletedPublications()Description copied from interface:EventPublicationRepository
Deletes all publications that were already marked as completed.- Specified by:
deleteCompletedPublications
in interfaceEventPublicationRepository
-
deleteCompletedPublicationsBefore
Description copied from interface:EventPublicationRepository
Deletes all publication that were already marked as completed with a completion date before the given one.- Specified by:
deleteCompletedPublicationsBefore
in interfaceEventPublicationRepository
- Parameters:
instant
- must not be null.
-
findByStatus
Description copied from interface:EventPublicationRepository
Returns allTargetEventPublication
s with the givenEventPublication.Status
.- Specified by:
findByStatus
in interfaceEventPublicationRepository
- Parameters:
status
- must not be null.- Returns:
- will never be null.
-
countByStatus
Description copied from interface:EventPublicationRepository
Returns the number ofEventPublication
s for the given status.- Specified by:
countByStatus
in interfaceEventPublicationRepository
- Parameters:
status
- must not be null.- Returns:
- must not be negative
-