com.atlassian.confluence.upgrade
Class AbstractUpgradeManager

java.lang.Object
  extended by com.atlassian.confluence.upgrade.AbstractUpgradeManager
All Implemented Interfaces:
UpgradeManager, org.springframework.beans.factory.InitializingBean
Direct Known Subclasses:
DefaultUpgradeManager

public abstract class AbstractUpgradeManager
extends Object
implements UpgradeManager, org.springframework.beans.factory.InitializingBean


Field Summary
 
Fields inherited from interface com.atlassian.confluence.upgrade.UpgradeManager
MINIMUM_SUPPORTED_UPGRADE_BUILD_NUMBER, MINIMUM_SUPPORTED_UPGRADE_VERSION
 
Constructor Summary
AbstractUpgradeManager()
           
 
Method Summary
 void afterPropertiesSet()
           
 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()
           
protected  String getConfiguredBuildNumber()
           
protected abstract  String getDatabaseBuildNumber()
           
 List<UpgradeError> getErrors()
           
 List<DeferredUpgradeTask> getPluginDependentUpgradeTasks()
           
 List<UpgradeTask> getPreSchemaUpgradeTasks()
           
protected abstract  String getRealBuildNumber()
           
 List<UpgradeTask> getSchemaUpgradeTasks()
           
 List<UpgradeTask> getUpgradeTasks()
           
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.
 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 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)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractUpgradeManager

public AbstractUpgradeManager()
Method Detail

setApplicationConfig

public void setApplicationConfig(com.atlassian.config.ApplicationConfiguration applicationConfig)

setSchemaHelper

public void setSchemaHelper(SchemaHelper schemaHelper)

afterPropertiesSet

public void afterPropertiesSet()
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean

upgrade

public void upgrade(com.atlassian.johnson.JohnsonEventContainer agentJohnson)
             throws UpgradeException
Specified by:
upgrade in interface UpgradeManager
Throws:
UpgradeException

getAllUpgradeTasks

protected List<UpgradeTask> getAllUpgradeTasks()
Returns:
the complete list of upgrade tasks to be run for this upgrade, in the correct order.

upgradeTaskSucceeded

protected void upgradeTaskSucceeded(UpgradeTask upgradeTask)
                             throws Exception
Throws:
Exception

upgradeStarted

protected void upgradeStarted()

getPreSchemaUpgradeTasks

public List<UpgradeTask> getPreSchemaUpgradeTasks()

setPreSchemaUpgradeTasks

public void setPreSchemaUpgradeTasks(List<UpgradeTask> preSchemaUpgradeTasks)

setUpgradeTasks

public void setUpgradeTasks(List<UpgradeTask> upgradeTasks)

getUpgradeTasks

public List<UpgradeTask> getUpgradeTasks()

setSchemaUpgradeTasks

public void setSchemaUpgradeTasks(List<UpgradeTask> upgradeTasks)

getSchemaUpgradeTasks

public List<UpgradeTask> getSchemaUpgradeTasks()

getErrors

public List<UpgradeError> getErrors()
Specified by:
getErrors in interface UpgradeManager

setPluginDependentUpgradeTasks

public void setPluginDependentUpgradeTasks(List<DeferredUpgradeTask> upgradeTasks)

getPluginDependentUpgradeTasks

public List<DeferredUpgradeTask> getPluginDependentUpgradeTasks()

runUpgradePrerequisites

protected abstract List<UpgradeError> runUpgradePrerequisites()
Runs all upgrade prerequisites.

Returns:
an empty list if all upgrade prerequisites pass, otherwise, returns a list consisting of one or more failure messages.

getConfiguredBuildNumber

protected String getConfiguredBuildNumber()
Returns:
The build number of the current version that the user is running under. This version is stored in their confluence home confluence.cfg.xml file

setConfiguredBuildNumber

protected void setConfiguredBuildNumber(String buildNumber)
                                 throws com.atlassian.config.ConfigurationException
Throws:
com.atlassian.config.ConfigurationException

needUpgrade

public boolean needUpgrade()
Specified by:
needUpgrade in interface UpgradeManager

configuredBuildNumberNewerThan

public boolean configuredBuildNumberNewerThan(String buildNumber)
Description copied from interface: UpgradeManager
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.

Specified by:
configuredBuildNumberNewerThan in interface UpgradeManager

taskNewerThan

public boolean taskNewerThan(String buildNumber,
                             UpgradeTask upgradeTask)
Description copied from interface: UpgradeManager
Returns true if the build number for the task is greater than the passed build number. Usually indicates that the task should run as part of an upgrade.

Specified by:
taskNewerThan in interface UpgradeManager

initialUpgradeFinished

protected void initialUpgradeFinished()
                               throws Exception
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. Note that this method is called "initialUpgradeFinished" because any deferred pluginDependentUpgradeTasks may still have to run, so the upgrade process is not yet complete.

Throws:
Exception - when setting the database or configuration build number fails

entireUpgradeFinished

public void entireUpgradeFinished()
Description copied from interface: UpgradeManager
Called when all immediate and deferred upgrade actions have been performed *if* an upgrade was needed.

Specified by:
entireUpgradeFinished in interface UpgradeManager

getRealBuildNumber

protected abstract String getRealBuildNumber()
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 abstract String getDatabaseBuildNumber()
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 getConfiguredBuildNumber().

setDatabaseBuildNumber

protected abstract void setDatabaseBuildNumber(String databaseBuildNumber)
                                        throws Exception
Once the upgrade is complete, we'll need to set the new database build number in the database.

Parameters:
databaseBuildNumber - The new database build number
Throws:
Exception - when there is any problem setting the database build number

permitDatabaseUpgrades

protected boolean permitDatabaseUpgrades()
                                  throws UpgradeException
This is used to guard against database upgrades being performed multiple times on the same database. By default, assume a non-clustered setup and allow database upgrades.

Returns:
True by default. Is overridden for cluster upgrades.
Throws:
UpgradeException - If the implementation of this method encounters any errors.

postUpgrade

protected void postUpgrade()

isUpgraded

public boolean isUpgraded()
Specified by:
isUpgraded in interface UpgradeManager
Returns:
true if the UpgradeManager was able to successfully upgrade this instance, or if no upgrade was necessary; otherwise false.


Copyright © 2003-2013 Atlassian. All Rights Reserved.