Class AbstractIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel>
java.lang.Object
com.atlassian.confluence.internal.api.impl.service.incrementalsync.AbstractIncrementalSyncService<S,T>
- All Implemented Interfaces:
IncrementalSyncCleaner,IncrementalSyncService<S,T>
- Direct Known Subclasses:
ContentManagementIncrementalSyncServiceImpl,GlobalPermissionManagementIncrementalSyncServiceImpl,UserManagementIncrementalSyncServiceImpl
public abstract class AbstractIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel>
extends Object
implements IncrementalSyncService<S,T>, IncrementalSyncCleaner
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final com.atlassian.core.util.Clockprotected final IncrementalSyncDataFetcher<T>protected final JournalServiceInternalprotected final org.slf4j.Loggerprotected final PermissionManagerprotected final SubscriptionJournalStateStore -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractIncrementalSyncService(JournalServiceInternal journalService, SubscriptionJournalStateStore subscriptionJournalStateStore, com.atlassian.core.util.Clock clock, PermissionManager permissionManager, IncrementalSyncDataFetcher<T> incrementalSyncDataFetcher) -
Method Summary
Modifier and TypeMethodDescriptionvoidThis will clean both obsolete journal entry and subscription.voidThis will clean up inactive/unused subscriptionGet all subscription for current serviceprotected abstract JournalIdentifierprotected abstract Stringprotected abstract StringgetSubscriptionData(S spec) <T> voidhandleEventForSubscription(T event, Consumer<JournalIdentifier> processor) Based on input event this method will find a corresponding subscription which would like to handle it.booleanisSubscriptionActive(long subscriptionId) processEvents(PageRequest pageRequest) Processing eventsRegister to incremental apibooleanunsubscribe(SubscriptionId subscriptionId) Remove an exising subscriptionprotected voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.atlassian.confluence.internal.api.service.incrementalsync.IncrementalSyncCleaner
getManagedJournalIdentifier
-
Field Details
-
logger
protected final org.slf4j.Logger logger -
permissionManager
-
journalService
-
clock
protected final com.atlassian.core.util.Clock clock -
subscriptionJournalStateStore
-
incrementalSyncDataFetcher
protected final IncrementalSyncDataFetcher<T extends IncrementalSyncModel> incrementalSyncDataFetcher
-
-
Constructor Details
-
AbstractIncrementalSyncService
protected AbstractIncrementalSyncService(JournalServiceInternal journalService, SubscriptionJournalStateStore subscriptionJournalStateStore, com.atlassian.core.util.Clock clock, PermissionManager permissionManager, IncrementalSyncDataFetcher<T> incrementalSyncDataFetcher)
-
-
Method Details
-
subscribe
Description copied from interface:IncrementalSyncServiceRegister to incremental api- Specified by:
subscribein interfaceIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel> - Parameters:
spec- the specification- Returns:
- an unique id
-
unsubscribe
Description copied from interface:IncrementalSyncServiceRemove an exising subscription- Specified by:
unsubscribein interfaceIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel> - Returns:
- indicate the operation is success or not
-
getAvailableSubscriptions
Description copied from interface:IncrementalSyncServiceGet all subscription for current service- Specified by:
getAvailableSubscriptionsin interfaceIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel> - Returns:
- list of available subscriptions
-
cleanUpSubscriptions
public void cleanUpSubscriptions()Description copied from interface:IncrementalSyncServiceThis will clean up inactive/unused subscription- Specified by:
cleanUpSubscriptionsin interfaceIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel>
-
processEvents
Description copied from interface:IncrementalSyncServiceProcessing events- Specified by:
processEventsin interfaceIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel> - Parameters:
pageRequest- Page request with cursor.- Returns:
- PageResponse which will contain next cursor
-
getSubscriptionData
-
getJournalName
-
getJournalIdentifier
-
verifyAdminUser
protected void verifyAdminUser() -
cleanObsoleteData
public void cleanObsoleteData()Description copied from interface:IncrementalSyncCleanerThis will clean both obsolete journal entry and subscription. We need to clean Journal Entry first then clean Subscription. For Subscription, there are obsolete subscription and deleted subscription- Specified by:
cleanObsoleteDatain interfaceIncrementalSyncCleaner
-
isSubscriptionActive
public boolean isSubscriptionActive(long subscriptionId) - Specified by:
isSubscriptionActivein interfaceIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel> - Parameters:
subscriptionId- the subscription id- Returns:
- {code true} if the subscription is active
-
handleEventForSubscription
Description copied from interface:IncrementalSyncServiceBased on input event this method will find a corresponding subscription which would like to handle it. Then will trigger the call back to handle that- Specified by:
handleEventForSubscriptionin interfaceIncrementalSyncService<S extends SubscriptionSpec,T extends IncrementalSyncModel> - Type Parameters:
T- an event
-