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 TypeMethodDescriptionvoidpropagate(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.PropagationHandlerinstances are registered with Spring and ordered. The first instance capable of handling is used and others are ignored.For deletion, a
CatalogEntityDeletedEventis 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,InternalPersistenceEventis 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
-