Class DefaultUpgradeManager
java.lang.Object
com.atlassian.confluence.upgrade.AbstractUpgradeManager
com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager
- All Implemented Interfaces:
UpgradeHistoryService,UpgradeManager,UpgradeTaskInfoService,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.InitializingBean
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.atlassian.confluence.upgrade.UpgradeHistoryService
UpgradeHistoryService.Upgrade -
Field Summary
Fields inherited from class com.atlassian.confluence.upgrade.AbstractUpgradeManager
MAXIMUM_CLOUD_BUILD_VERSION_NUMBER, UPGRADE_TASK_COMPARATORFields inherited from interface com.atlassian.confluence.upgrade.UpgradeManager
MINIMUM_SUPPORTED_UPGRADE_BUILD_NUMBER, MINIMUM_SUPPORTED_UPGRADE_VERSION -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidprotected voidvoidCalled when all immediate and deferred upgrade actions have been performed *if* an upgrade was needed.protected voidprotected Stringprotected StringgetUpgradeHistory(int startIndex, int maxResults) protected voidUpdate the pluginFrameworkDependent upgrade status based on whether there are any plugin framework dependent upgrade tasks to run.booleanThis method has a side effect of putting an entry into the published cache indicating whether an upgrade is required or not.protected booleanIf we are in a clustered setup, only one node should be allowed to perform upgrades that affect the database.protected voidprotected voidprotected List<UpgradeError>Runs all upgrade prerequisites.protected voidrunUpgradeTasks(List<UpgradeTask> upgradeTasks) voidsetCacheFlusher(CacheFlusher cacheFlusher) voidsetClusterConfigurationHelper(ClusterConfigurationHelperInternal clusterConfigurationHelper) Setter method for clusterConfigurationHelpervoidsetClusterLockService(com.atlassian.beehive.ClusterLockService clusterLockService) voidsetClusterManager(ClusterManager clusterManager) voidsetConfluenceHome(com.atlassian.dc.filestore.api.compat.FilesystemPath confluenceHome) voidOnce installation is complete, we'll need to set the database build number in the database, so that a subsequent startup of Confluence is able to check that the home directory build number matches the database build number (see https://jira.atlassian.com/browse/CONF-13798).protected voidsetDatabaseBuildNumber(String databaseBuildNumber) Once the upgrade is complete, we'll need to set the new database build number in the database.voidsetEventPublisher(com.atlassian.event.api.EventPublisher eventPublisher) voidsetFinalizationManager(UpgradeFinalizationManager finalizationManager) voidsetGlobalSettingsManager(GlobalSettingsManager globalSettingsManager) voidsetLicenseService(LicenseService licenseService) voidsetRecoveryFileGenerator(RecoveryFileGenerator recoveryFileGenerator) voidsetSchemaHelper(ConfluenceSchemaHelper schemaHelper) voidsetUpgradeGate(UpgradeGate upgradeGate) voidsetVersionHistoryDao(VersionHistoryDao versionHistoryDao) protected voidprotected voidMethods inherited from class com.atlassian.confluence.upgrade.AbstractUpgradeManager
assertNoDuplicateBuildNumbers, configuredBuildNumberNewerThan, getAllUpgradeTasks, getAllUpgradeTasksInfo, getConfiguredBuildNumber, getErrors, getExportBuildNumber, getOldestSpaceImportAllowed, getPluginDependentUpgradeTasks, getPluginExportCompatibility, getPreSchemaUpgradeTasks, getSchemaUpgradeTasks, getUpgradeTasks, getUpgradeTasksToRun, isUpgraded, neededSchemaUpgrade, setApplicationConfig, setBeanFactory, setConfiguredBuildNumber, setPluginAccessor, setPluginDependentUpgradeTaskNames, setPluginDependentUpgradeTasks, setPreSchemaUpgradeTaskNames, setPreSchemaUpgradeTasks, setSchemaUpgradeTaskNames, setSchemaUpgradeTasks, setUpgradedFlag, setUpgradeTaskNames, setUpgradeTasks, taskNewerThan, upgrade, upgradeStarted, upgradeTaskSucceeded
-
Constructor Details
-
DefaultUpgradeManager
public DefaultUpgradeManager()
-
-
Method Details
-
setFinalizationManager
-
setLicenseService
-
setGlobalSettingsManager
-
setSchemaHelper
-
validateSchemaUpdateIfNeeded
protected void validateSchemaUpdateIfNeeded() throws com.atlassian.config.ConfigurationException- Specified by:
validateSchemaUpdateIfNeededin classAbstractUpgradeManager- Throws:
com.atlassian.config.ConfigurationException
-
updateSchemaIfNeeded
protected void updateSchemaIfNeeded() throws com.atlassian.config.ConfigurationException- Specified by:
updateSchemaIfNeededin classAbstractUpgradeManager- Throws:
com.atlassian.config.ConfigurationException
-
releaseSchemaReferences
protected void releaseSchemaReferences()- Specified by:
releaseSchemaReferencesin classAbstractUpgradeManager
-
finalizeIfNeeded
- Specified by:
finalizeIfNeededin classAbstractUpgradeManager- Throws:
UpgradeException
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Overrides:
afterPropertiesSetin classAbstractUpgradeManager
-
getRealBuildNumber
- Specified by:
getRealBuildNumberin classAbstractUpgradeManager- Returns:
- The build number of the new version of Confluence being upgraded to. This number can be found in the default.properties of the new expanded WAR
-
getDatabaseBuildNumber
- Specified by:
getDatabaseBuildNumberin classAbstractUpgradeManager- Returns:
- The build number of the data in the database. If the version of the database data can not be
determined, this method should return the same value as
AbstractUpgradeManager.getConfiguredBuildNumber().
-
runUpgradePrerequisites
Description copied from class:AbstractUpgradeManagerRuns all upgrade prerequisites.- Specified by:
runUpgradePrerequisitesin classAbstractUpgradeManager- Returns:
- an empty list if all upgrade prerequisites pass, otherwise, returns a list consisting of one or more failure messages.
-
needUpgrade
public boolean needUpgrade()This method has a side effect of putting an entry into the published cache indicating whether an upgrade is required or not.- Specified by:
needUpgradein interfaceUpgradeManager- Overrides:
needUpgradein classAbstractUpgradeManager
-
setDatabaseBuildNumber
public void setDatabaseBuildNumber()Description copied from interface:UpgradeManagerOnce installation is complete, we'll need to set the database build number in the database, so that a subsequent startup of Confluence is able to check that the home directory build number matches the database build number (see https://jira.atlassian.com/browse/CONF-13798).- Specified by:
setDatabaseBuildNumberin interfaceUpgradeManager
-
setDatabaseBuildNumber
Description copied from class:AbstractUpgradeManagerOnce the upgrade is complete, we'll need to set the new database build number in the database.- Specified by:
setDatabaseBuildNumberin classAbstractUpgradeManager- Parameters:
databaseBuildNumber- The new database build number- Throws:
Exception- when there is any problem setting the database build number
-
beforeUpgrade
protected void beforeUpgrade()- Overrides:
beforeUpgradein classAbstractUpgradeManager
-
postUpgrade
protected void postUpgrade()- Overrides:
postUpgradein classAbstractUpgradeManager
-
initialUpgradeFinished
Update the pluginFrameworkDependent upgrade status based on whether there are any plugin framework dependent upgrade tasks to run.- Overrides:
initialUpgradeFinishedin classAbstractUpgradeManager- Throws:
Exception- when setting the database or configuration build number fails
-
entireUpgradeFinished
public void entireUpgradeFinished()Description copied from interface:UpgradeManagerCalled when all immediate and deferred upgrade actions have been performed *if* an upgrade was needed.- Specified by:
entireUpgradeFinishedin interfaceUpgradeManager- Overrides:
entireUpgradeFinishedin classAbstractUpgradeManager
-
permitDatabaseUpgrades
protected boolean permitDatabaseUpgrades()If we are in a clustered setup, only one node should be allowed to perform upgrades that affect the database. To enforce this, nodes will need to:- successfully acquire the cluster upgrade lock AND
- successfully tag the build in the CONFVERSION table (this is a backup check, to help us detect rare cases where some cluster nodes are not communicating - producing multiple clusters)
- Overrides:
permitDatabaseUpgradesin classAbstractUpgradeManager- Returns:
- True by default. Is overridden for cluster upgrades.
-
runUpgradeTasks
- Overrides:
runUpgradeTasksin classAbstractUpgradeManager- Throws:
UpgradeException
-
setCacheFlusher
- Since:
- 5.10
-
setEventPublisher
public void setEventPublisher(com.atlassian.event.api.EventPublisher eventPublisher) -
setVersionHistoryDao
-
setClusterManager
-
setClusterLockService
public void setClusterLockService(com.atlassian.beehive.ClusterLockService clusterLockService) -
setUpgradeGate
-
setRecoveryFileGenerator
-
setClusterConfigurationHelper
public void setClusterConfigurationHelper(ClusterConfigurationHelperInternal clusterConfigurationHelper) Setter method for clusterConfigurationHelper- Parameters:
clusterConfigurationHelper- the injected Spring bean- Since:
- 6.10.1
-
setConfluenceHome
public void setConfluenceHome(com.atlassian.dc.filestore.api.compat.FilesystemPath confluenceHome) -
getUpgradeHistory
- Specified by:
getUpgradeHistoryin interfaceUpgradeHistoryService
-