Interface PropagationManager
- All Known Implementing Classes:
DefaultPropagationManager
public interface PropagationManager
Manager component responsible for aggregating one or more
PropagationHandler
instances
and picking the best handler to perform propagation give a set of contextual criteria.- Author:
- Jeff Fischer
-
Method Summary
Modifier and TypeMethodDescriptionvoid
propagate
(Trackable deployed, String parentCatalog, OperationType changeType, String propagationId, TrackableRepository<Trackable> repository) Given a deployed catalog discriminated change, recurse through versions of the entity in child catalogs and transfer the deployed changes using the process defined implementations ofPropagationHandler
.
-
Method Details
-
propagate
void propagate(Trackable deployed, String parentCatalog, OperationType changeType, String propagationId, TrackableRepository<Trackable> repository) Given a deployed catalog discriminated change, recurse through versions of the entity in child catalogs and transfer the deployed changes using the process defined implementations ofPropagationHandler
.PropagationHandler
instances are registered with Spring and ordered. The first instance capable of handling is used and others are ignored.For deletion, a
CatalogEntityDeletedEvent
is emitted at the parent catalog level, and then one for each child catalog if propagation candidate doesn't exist. If propagation candidate exists for a child catalog,InternalPersistenceEvent
is used instead.- Parameters:
deployed
- The deployed item containing changes to propagateparentCatalog
- The catalog whose children will be checked for propagation itemschangeType
- The type of operation to be propagated (CREATE,UPDATE,DELETE)propagationId
- An id that identifies changes as part of this propagation. SeeChangeDetail.getPropagationId()
.repository
- The repository responsible for persistence of the entity type
-