public abstract class AbstractUpgradeManager extends Object implements UpgradeManager, org.springframework.beans.factory.InitializingBean, UpgradeTaskInfoService
MINIMUM_SUPPORTED_UPGRADE_BUILD_NUMBER, MINIMUM_SUPPORTED_UPGRADE_VERSION
Constructor and Description |
---|
AbstractUpgradeManager() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
protected void |
beforeUpgrade() |
boolean |
configuredBuildNumberNewerThan(String buildNumber)
Returns true if the passed build number is less than the configured build number - that is, the version of
the currently running Confluence is newer than the version passed.
|
void |
entireUpgradeFinished()
Called when all immediate and deferred upgrade actions have been performed *if* an upgrade was needed.
|
protected List<UpgradeTask> |
getAllUpgradeTasks() |
Collection<UpgradeTaskInfo> |
getAllUpgradeTasksInfo()
While this could just return the list of UpgradeTasks directly (since UpgradeTask implements UpgradeTaskInfo),
we re-wrap them here to prevent plugins from casting them to UpgradeTask and trying to execute them.
|
protected String |
getConfiguredBuildNumber() |
protected abstract String |
getDatabaseBuildNumber() |
List<UpgradeError> |
getErrors() |
String |
getExportBuildNumber(boolean isSpaceExport)
Tells the earliest version the exports will be compatible with.
|
String |
getOldestSpaceImportAllowed()
Calculates the oldest build number from which a space can be imported.
|
List<DeferredUpgradeTask> |
getPluginDependentUpgradeTasks() |
Map<String,PluginExportCompatibility> |
getPluginExportCompatibility(boolean isSpaceExport)
Returns the list of plugins with data (especially plugins with Active Objects data) and
tells how backward-compatible they are.
|
List<UpgradeTask> |
getPreSchemaUpgradeTasks() |
protected abstract String |
getRealBuildNumber() |
List<UpgradeTask> |
getSchemaUpgradeTasks() |
List<UpgradeTask> |
getUpgradeTasks() |
protected List<UpgradeTask> |
getUpgradeTasksToRun() |
protected void |
initialUpgradeFinished()
Once all upgrade tasks have been completed without error, make sure the build number stored in the applications main configuration file and database now matches
the build number of this version of the release.
|
boolean |
isUpgraded() |
boolean |
needUpgrade() |
protected boolean |
permitDatabaseUpgrades()
This is used to guard against database upgrades being performed multiple times on the same database.
|
protected void |
postUpgrade() |
protected abstract List<UpgradeError> |
runUpgradePrerequisites()
Runs all upgrade prerequisites.
|
protected void |
runUpgradeTasks(List<UpgradeTask> upgradeTasks) |
void |
setApplicationConfig(com.atlassian.config.ApplicationConfiguration applicationConfig) |
protected void |
setConfiguredBuildNumber(String buildNumber) |
protected abstract void |
setDatabaseBuildNumber(String databaseBuildNumber)
Once the upgrade is complete, we'll need to set the new database build number in the database.
|
void |
setPluginAccessor(com.atlassian.plugin.PluginAccessor pluginAccessor) |
void |
setPluginDependentUpgradeTasks(List<DeferredUpgradeTask> upgradeTasks) |
void |
setPreSchemaUpgradeTasks(List<UpgradeTask> preSchemaUpgradeTasks) |
void |
setSchemaHelper(SchemaHelper schemaHelper) |
void |
setSchemaUpgradeTasks(List<UpgradeTask> upgradeTasks) |
void |
setUpgradeTasks(List<UpgradeTask> upgradeTasks) |
boolean |
taskNewerThan(String buildNumber,
UpgradeTask upgradeTask)
Returns true if the build number for the task is greater than the passed build number.
|
void |
upgrade(com.atlassian.johnson.JohnsonEventContainer agentJohnson) |
protected void |
upgradeStarted() |
protected void |
upgradeTaskSucceeded(UpgradeTask upgradeTask) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
setDatabaseBuildNumber
public void setApplicationConfig(com.atlassian.config.ApplicationConfiguration applicationConfig)
public void setSchemaHelper(SchemaHelper schemaHelper)
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
public void upgrade(com.atlassian.johnson.JohnsonEventContainer agentJohnson) throws UpgradeException
upgrade
in interface UpgradeManager
UpgradeException
protected void runUpgradeTasks(List<UpgradeTask> upgradeTasks) throws UpgradeException
UpgradeException
protected List<UpgradeTask> getAllUpgradeTasks()
public Collection<UpgradeTaskInfo> getAllUpgradeTasksInfo()
getAllUpgradeTasksInfo
in interface UpgradeTaskInfoService
UpgradeTaskInfo
objects, one for each UpgradeTask
in the system,
in no particular order.protected List<UpgradeTask> getUpgradeTasksToRun()
protected void upgradeTaskSucceeded(UpgradeTask upgradeTask) throws Exception
Exception
protected void upgradeStarted()
public List<UpgradeTask> getPreSchemaUpgradeTasks()
public void setPreSchemaUpgradeTasks(List<UpgradeTask> preSchemaUpgradeTasks)
public void setUpgradeTasks(List<UpgradeTask> upgradeTasks)
public void setPluginAccessor(com.atlassian.plugin.PluginAccessor pluginAccessor)
public List<UpgradeTask> getUpgradeTasks()
public void setSchemaUpgradeTasks(List<UpgradeTask> upgradeTasks)
public List<UpgradeTask> getSchemaUpgradeTasks()
public List<UpgradeError> getErrors()
getErrors
in interface UpgradeManager
public void setPluginDependentUpgradeTasks(List<DeferredUpgradeTask> upgradeTasks)
public List<DeferredUpgradeTask> getPluginDependentUpgradeTasks()
protected abstract List<UpgradeError> runUpgradePrerequisites()
protected String getConfiguredBuildNumber()
protected void setConfiguredBuildNumber(String buildNumber) throws com.atlassian.config.ConfigurationException
com.atlassian.config.ConfigurationException
public boolean needUpgrade()
needUpgrade
in interface UpgradeManager
public boolean configuredBuildNumberNewerThan(String buildNumber)
UpgradeManager
configuredBuildNumberNewerThan
in interface UpgradeManager
public boolean taskNewerThan(String buildNumber, UpgradeTask upgradeTask)
UpgradeManager
taskNewerThan
in interface UpgradeManager
protected void initialUpgradeFinished() throws Exception
Note that this method is called "initialUpgradeFinished" because any deferred pluginDependentUpgradeTasks may still have to run, so the upgrade process is not yet complete.
Exception
- when setting the database or configuration build number failspublic void entireUpgradeFinished()
UpgradeManager
entireUpgradeFinished
in interface UpgradeManager
protected abstract String getRealBuildNumber()
protected abstract String getDatabaseBuildNumber()
getConfiguredBuildNumber()
.protected abstract void setDatabaseBuildNumber(String databaseBuildNumber) throws Exception
databaseBuildNumber
- The new database build numberException
- when there is any problem setting the database build numberprotected boolean permitDatabaseUpgrades() throws UpgradeException
UpgradeException
- If the implementation of this method encounters any errors.protected void beforeUpgrade() throws UpgradeException
UpgradeException
protected void postUpgrade()
public boolean isUpgraded()
isUpgraded
in interface UpgradeManager
public String getOldestSpaceImportAllowed()
UpgradeManager
getOldestSpaceImportAllowed
in interface UpgradeManager
public String getExportBuildNumber(boolean isSpaceExport)
UpgradeManager
getExportBuildNumber
in interface UpgradeManager
isSpaceExport
- true if the export is about a space, false for a global export.public Map<String,PluginExportCompatibility> getPluginExportCompatibility(boolean isSpaceExport)
UpgradeManager
Returns the list of plugins with data (especially plugins with Active Objects data) and tells how backward-compatible they are.
If at least one plugin isn't compatible, the importer silently doesn't import any data.
What is a compatible version?
The data is exported as-is in XML and reimported in an earlier version. If the earlier version of the plugin is able to read the data without fault, then it is compatible. Note that there is no downgrade task, obviously.
getPluginExportCompatibility
in interface UpgradeManager
isSpaceExport
- true if the export is about a space, false for a global export.Copyright © 2003–2016 Atlassian. All rights reserved.