Class DefaultUpgradeManager
- java.lang.Object
-
- com.atlassian.confluence.upgrade.AbstractUpgradeManager
-
- com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager
-
- All Implemented Interfaces:
UpgradeManager,UpgradeTaskInfoService,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.InitializingBean
public class DefaultUpgradeManager extends AbstractUpgradeManager
-
-
Field Summary
-
Fields inherited from class com.atlassian.confluence.upgrade.AbstractUpgradeManager
MAXIMUM_CLOUD_BUILD_VERSION_NUMBER, UPGRADE_TASK_COMPARATOR
-
Fields inherited from interface com.atlassian.confluence.upgrade.UpgradeManager
MINIMUM_SUPPORTED_UPGRADE_BUILD_NUMBER, MINIMUM_SUPPORTED_UPGRADE_VERSION
-
-
Constructor Summary
Constructors Constructor Description DefaultUpgradeManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()protected voidbeforeUpgrade()voidentireUpgradeFinished()Called when all immediate and deferred upgrade actions have been performed *if* an upgrade was needed.protected voidfinalizeIfNeeded()protected StringgetDatabaseBuildNumber()protected StringgetRealBuildNumber()protected voidinitialUpgradeFinished()Update the pluginFrameworkDependent upgrade status based on whether there are any plugin framework dependent upgrade tasks to run.booleanneedUpgrade()This method has a side effect of putting an entry into the published cache indicating whether an upgrade is required or not.protected booleanpermitDatabaseUpgrades()If we are in a clustered setup, only one node should be allowed to perform upgrades that affect the database.protected voidpostUpgrade()protected voidreleaseSchemaReferences()protected List<UpgradeError>runUpgradePrerequisites()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)voidsetDatabaseBuildNumber()Once 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)voidsetRecoveryFileGenerator(RecoveryFileGenerator recoveryFileGenerator)voidsetSchemaHelper(ConfluenceSchemaHelper schemaHelper)voidsetUpgradeGate(UpgradeGate upgradeGate)voidsetVersionHistoryDao(VersionHistoryDao versionHistoryDao)protected voidupdateSchemaIfNeeded()protected voidvalidateSchemaUpdateIfNeeded()-
Methods 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
-
-
-
-
Method Detail
-
setFinalizationManager
public void setFinalizationManager(UpgradeFinalizationManager finalizationManager)
-
setSchemaHelper
public void setSchemaHelper(ConfluenceSchemaHelper schemaHelper)
-
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
protected void finalizeIfNeeded() throws UpgradeException- Specified by:
finalizeIfNeededin classAbstractUpgradeManager- Throws:
UpgradeException
-
afterPropertiesSet
public void afterPropertiesSet()
- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Overrides:
afterPropertiesSetin classAbstractUpgradeManager
-
getRealBuildNumber
protected String 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
protected String 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
protected List<UpgradeError> 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).
-
setDatabaseBuildNumber
protected void setDatabaseBuildNumber(String databaseBuildNumber) throws Exception
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
protected void initialUpgradeFinished() throws ExceptionUpdate 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
protected void runUpgradeTasks(List<UpgradeTask> upgradeTasks) throws UpgradeException
- Overrides:
runUpgradeTasksin classAbstractUpgradeManager- Throws:
UpgradeException
-
setCacheFlusher
public void setCacheFlusher(CacheFlusher cacheFlusher)
- Since:
- 5.10
-
setEventPublisher
public void setEventPublisher(com.atlassian.event.api.EventPublisher eventPublisher)
-
setVersionHistoryDao
public void setVersionHistoryDao(VersionHistoryDao versionHistoryDao)
-
setClusterManager
public void setClusterManager(ClusterManager clusterManager)
-
setClusterLockService
public void setClusterLockService(com.atlassian.beehive.ClusterLockService clusterLockService)
-
setUpgradeGate
public void setUpgradeGate(UpgradeGate upgradeGate)
-
setRecoveryFileGenerator
public void setRecoveryFileGenerator(RecoveryFileGenerator recoveryFileGenerator)
-
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)
-
-