Class ServerSubscriptionJournalStateStore
java.lang.Object
com.atlassian.confluence.internal.api.impl.service.incrementalsync.journal.ServerSubscriptionJournalStateStore
- All Implemented Interfaces:
JournalStateStore
,SubscriptionJournalStateStore
- Direct Known Subclasses:
ClientSubscriptionJournalStateStore
public class ServerSubscriptionJournalStateStore
extends Object
implements SubscriptionJournalStateStore
A Journal State Store which will store the state based on Subscription Id
- Since:
- 9.3.0
-
Constructor Summary
ConstructorsConstructorDescriptionServerSubscriptionJournalStateStore
(String subscriptionContextKey, IncrementalSyncSubscriptionManager incrementalSyncSubscriptionManager) -
Method Summary
Modifier and TypeMethodDescriptionvoid
cleanUpSubscriptions
(JournalIdentifier identifier, long ttlInMillis) A Utility which helps to clean up expired subscriptions and deleted subscriptioncreateNewSubscription
(String subscriptionData) This method creates a new ACTIVE subscriptionvoid
deactivateSubscription
(@NonNull JournalIdentifier journalId) Mark a subscription as deactivate so later onIncrementalSyncCleaner
will clean itGet all current subscriptionsGet all inactive subscriptionsprotected String
long
getMostRecentId
(@NonNull JournalIdentifier journalId) Returns the most recent id for a journal or 0 if no id has been stored yet.protected String
getSubscriptionStateData
(MultiSubscriptionPerJournalIdentifier subscriptionJournalIdentifier) Get subscription value detailboolean
isSubscriptionActive
(MultiSubscriptionPerJournalIdentifier subscriptionJournalIdentifier) boolean
removeSubscriptionStateData
(@NonNull JournalIdentifier journalId) Remove a particular subscription from data storevoid
Resets the state of all journals.protected SubscriptionId
void
setMostRecentId
(@NonNull JournalIdentifier journalId, long id) Set the most recent identifier for a journal.
-
Constructor Details
-
ServerSubscriptionJournalStateStore
public ServerSubscriptionJournalStateStore(String subscriptionContextKey, IncrementalSyncSubscriptionManager incrementalSyncSubscriptionManager)
-
-
Method Details
-
getMostRecentId
public long getMostRecentId(@NonNull JournalIdentifier journalId) throws org.springframework.dao.DataAccessException Description copied from interface:JournalStateStore
Returns the most recent id for a journal or 0 if no id has been stored yet.New journal is automatically created if a journal with the given name does not exists.
- Specified by:
getMostRecentId
in interfaceJournalStateStore
- Parameters:
journalId
- id of the journal- Returns:
- most recent id for a journal or 0 if no id has been stored yet
- Throws:
org.springframework.dao.DataAccessException
- if reading the id failed
-
setMostRecentId
public void setMostRecentId(@NonNull JournalIdentifier journalId, long id) throws org.springframework.dao.DataAccessException Description copied from interface:JournalStateStore
Set the most recent identifier for a journal.New journal is automatically created if a journal with the given name does not exists.
Only positive identifiers (e.g. > 0) can be stored.
- Specified by:
setMostRecentId
in interfaceJournalStateStore
- Parameters:
journalId
- id of the journalid
- identifier to store as the most recent id- Throws:
org.springframework.dao.DataAccessException
- if persisting the id failed.
-
saveSubscriptionStateData
-
resetAllJournalStates
public void resetAllJournalStates() throws org.springframework.dao.DataAccessExceptionDescription copied from interface:JournalStateStore
Resets the state of all journals.After calling this method all
JournalStateStore.getMostRecentId(JournalIdentifier)
calls will initially return 0.- Specified by:
resetAllJournalStates
in interfaceJournalStateStore
- Throws:
org.springframework.dao.DataAccessException
- if reset fails
-
deactivateSubscription
Description copied from interface:SubscriptionJournalStateStore
Mark a subscription as deactivate so later onIncrementalSyncCleaner
will clean it- Specified by:
deactivateSubscription
in interfaceSubscriptionJournalStateStore
-
removeSubscriptionStateData
public boolean removeSubscriptionStateData(@NonNull JournalIdentifier journalId) throws org.springframework.dao.DataAccessException Description copied from interface:SubscriptionJournalStateStore
Remove a particular subscription from data store- Specified by:
removeSubscriptionStateData
in interfaceSubscriptionJournalStateStore
- Returns:
- Throws:
org.springframework.dao.DataAccessException
-
getAvailableSubscriptions
Description copied from interface:SubscriptionJournalStateStore
Get all current subscriptions- Specified by:
getAvailableSubscriptions
in interfaceSubscriptionJournalStateStore
- Returns:
- list of current subscription ids
-
getDeactivateSubscriptions
Description copied from interface:SubscriptionJournalStateStore
Get all inactive subscriptions- Specified by:
getDeactivateSubscriptions
in interfaceSubscriptionJournalStateStore
- Returns:
- list of inactive subscription ids
-
cleanUpSubscriptions
Description copied from interface:SubscriptionJournalStateStore
A Utility which helps to clean up expired subscriptions and deleted subscription- Specified by:
cleanUpSubscriptions
in interfaceSubscriptionJournalStateStore
- Parameters:
identifier
- an identifier for journal which manage all subscriptionttlInMillis
- time to leave in milliseconds
-
createNewSubscription
Description copied from interface:SubscriptionJournalStateStore
This method creates a new ACTIVE subscription- Specified by:
createNewSubscription
in interfaceSubscriptionJournalStateStore
- Parameters:
subscriptionData
- the data associated with the subscription- Returns:
-
getSubscriptionContextKey
-
getKeyPrefix
-
getSubscriptionStateData
public Optional<IncrementalSyncSubscription> getSubscriptionStateData(MultiSubscriptionPerJournalIdentifier subscriptionJournalIdentifier) Description copied from interface:SubscriptionJournalStateStore
Get subscription value detail- Specified by:
getSubscriptionStateData
in interfaceSubscriptionJournalStateStore
- Returns:
-
isSubscriptionActive
public boolean isSubscriptionActive(MultiSubscriptionPerJournalIdentifier subscriptionJournalIdentifier) - Specified by:
isSubscriptionActive
in interfaceSubscriptionJournalStateStore
- Parameters:
subscriptionJournalIdentifier
- subscription identifier- Returns:
true
if the subscription is active
-