Class DefaultUpgradeFinalizationManager
- java.lang.Object
-
- com.atlassian.confluence.upgrade.impl.DefaultUpgradeFinalizationManager
-
- All Implemented Interfaces:
UpgradeFinalizationManager
public class DefaultUpgradeFinalizationManager extends Object implements UpgradeFinalizationManager
- Since:
- 7.14
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultUpgradeFinalizationManager.RunImpl-
Nested classes/interfaces inherited from interface com.atlassian.confluence.upgrade.UpgradeFinalizationManager
UpgradeFinalizationManager.Run
-
-
Field Summary
Fields Modifier and Type Field Description static StringFINALIZED_BUILD_NUMBER_CONFIG_KEY
-
Constructor Summary
Constructors Constructor Description DefaultUpgradeFinalizationManager(ZduStatusDao zduStatusDao, com.atlassian.beehive.ClusterLockService clusterLockService, VersionHistoryDao versionHistoryDao, com.atlassian.config.ApplicationConfiguration applicationConfig, com.atlassian.event.api.EventPublisher eventPublisher, SharedDataManager sharedDataManager, Supplier<List<UpgradeTask>> finalizeUpgradeTasksSupplier, int productBuildNumber)DefaultUpgradeFinalizationManager(ZduStatusDao zduStatusDao, com.atlassian.beehive.ClusterLockService clusterLockService, VersionHistoryDao versionHistoryDao, com.atlassian.config.ApplicationConfiguration applicationConfig, com.atlassian.event.api.EventPublisher eventPublisher, SharedDataManager sharedDataManager, List<String> finalizeUpgradeTasks)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()protected voidfinalizeConfigureBuildNumber(int buildNumber)voidfinalizeIfNeeded()Perform pending finalizeUpgradeTasks on the current node (no-op if none pending) if it is required, i.e.protected intgetFinalizedConfiguredBuildNumber()Optional<UpgradeFinalizationManager.Run>getLastRun()Obtains the the most recent finalization run.voidinit()booleanisPendingDatabaseFinalization()booleanisPendingLocalFinalization()voidmarkAsFullyFinalized(boolean updateBuildNumber)Once installation is complete, we'll need to set the finalized build number in the database and home directory with the product build number.voidonRemotelyRequested(ClusterEventWrapper e)voidonRequested(ZduFinalizationRequestEvent e)
-
-
-
Field Detail
-
FINALIZED_BUILD_NUMBER_CONFIG_KEY
public static final String FINALIZED_BUILD_NUMBER_CONFIG_KEY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DefaultUpgradeFinalizationManager
public DefaultUpgradeFinalizationManager(ZduStatusDao zduStatusDao, com.atlassian.beehive.ClusterLockService clusterLockService, VersionHistoryDao versionHistoryDao, com.atlassian.config.ApplicationConfiguration applicationConfig, com.atlassian.event.api.EventPublisher eventPublisher, SharedDataManager sharedDataManager, List<String> finalizeUpgradeTasks)
-
DefaultUpgradeFinalizationManager
public DefaultUpgradeFinalizationManager(ZduStatusDao zduStatusDao, com.atlassian.beehive.ClusterLockService clusterLockService, VersionHistoryDao versionHistoryDao, com.atlassian.config.ApplicationConfiguration applicationConfig, com.atlassian.event.api.EventPublisher eventPublisher, SharedDataManager sharedDataManager, Supplier<List<UpgradeTask>> finalizeUpgradeTasksSupplier, int productBuildNumber)
-
-
Method Detail
-
isPendingDatabaseFinalization
public boolean isPendingDatabaseFinalization()
- Specified by:
isPendingDatabaseFinalizationin interfaceUpgradeFinalizationManager- Returns:
- true if the database has not been finalized.
-
isPendingLocalFinalization
public boolean isPendingLocalFinalization()
- Specified by:
isPendingLocalFinalizationin interfaceUpgradeFinalizationManager- Returns:
- true if the local node has not been finalization tasks on this node.
-
finalizeIfNeeded
public void finalizeIfNeeded() throws UpgradeExceptionDescription copied from interface:UpgradeFinalizationManagerPerform pending finalizeUpgradeTasks on the current node (no-op if none pending) if it is required, i.e. when ZDU is disabled. If executed concurrently in multiple nodes in a cluster, only one node will exclusively perform databaseUpgrade tasks.- Specified by:
finalizeIfNeededin interfaceUpgradeFinalizationManager- Throws:
UpgradeException
-
getLastRun
public Optional<UpgradeFinalizationManager.Run> getLastRun()
Description copied from interface:UpgradeFinalizationManagerObtains the the most recent finalization run. Each finalization run will invalidate the previous result.- Specified by:
getLastRunin interfaceUpgradeFinalizationManager- Returns:
- finalization result or empty
-
markAsFullyFinalized
public void markAsFullyFinalized(boolean updateBuildNumber) throws com.atlassian.config.ConfigurationExceptionDescription copied from interface:UpgradeFinalizationManagerOnce installation is complete, we'll need to set the finalized build number in the database and home directory with the product build number.- Specified by:
markAsFullyFinalizedin interfaceUpgradeFinalizationManager- Parameters:
updateBuildNumber- whether the database and home directory build numbers should be updated- Throws:
com.atlassian.config.ConfigurationException
-
getFinalizedConfiguredBuildNumber
protected int getFinalizedConfiguredBuildNumber()
-
finalizeConfigureBuildNumber
protected void finalizeConfigureBuildNumber(int buildNumber) throws com.atlassian.config.ConfigurationException- Throws:
com.atlassian.config.ConfigurationException
-
init
@PostConstruct public void init()
-
destroy
@PreDestroy public void destroy()
-
onRequested
@EventListener public void onRequested(ZduFinalizationRequestEvent e) throws UpgradeException
- Throws:
UpgradeException
-
onRemotelyRequested
@EventListener public void onRemotelyRequested(ClusterEventWrapper e) throws UpgradeException
- Throws:
UpgradeException
-
-