com.atlassian.confluence.upgrade
Class AbstractUpgradeManager

java.lang.Object
  extended by com.atlassian.confluence.upgrade.AbstractUpgradeManager
All Implemented Interfaces:
UpgradeManager
Direct Known Subclasses:
DefaultUpgradeManager

public abstract class AbstractUpgradeManager
extends Object
implements UpgradeManager


Field Summary
protected  Comparator<String> buildNumberComp
           
 
Constructor Summary
AbstractUpgradeManager()
           
 
Method Summary
protected  void doUpgrade()
          Runs required upgrade tasks.
protected  String getConfiguredBuildNumber()
          This is the build number of the current version that the user is running under.
protected abstract  String getDatabaseBuildNumber()
          This is the build number of the data in the database.
 List<UpgradeError> getErrors()
           
protected abstract  String getRealBuildNumber()
          The is the build number of the new version of Confluence being upgraded to.
 List<UpgradeTask> getSchemaUpgradeTasks()
           
 List<UpgradeTask> getUpgradeTasks()
           
 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<String> 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 setPreSchemaUpgradeTasks(List<UpgradeTask> preSchemaUpgradeTasks)
           
 void setSchemaHelper(SchemaHelper schemaHelper)
           
 void setSchemaUpgradeTasks(List<UpgradeTask> upgradeTasks)
           
 void setUpgradeTasks(List<UpgradeTask> upgradeTasks)
           
 void upgrade(com.atlassian.johnson.JohnsonEventContainer agentJohnson)
           
protected  void upgradeFinished()
          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.
protected  void upgradeSchema()
           
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
 

Field Detail

buildNumberComp

protected final Comparator<String> buildNumberComp
Constructor Detail

AbstractUpgradeManager

public AbstractUpgradeManager()
Method Detail

setApplicationConfig

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

setSchemaHelper

public void setSchemaHelper(SchemaHelper schemaHelper)

upgrade

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

doUpgrade

protected void doUpgrade()
                  throws Throwable
Runs required upgrade tasks. Stops running upgrade tasks if any task throws anything or reports errors from UpgradeTask.getErrors(). Updates the configured build number after each successful task. Updates the database build number after each database upgrade task.

Throws:
Throwable - if anything is thrown by an upgrade task (or anything else throws a Throwable of course)
UpgradeException - if an upgrade task throws an UpgradeException or lists any errors after execution. Such errors will be made available in getErrors()

upgradeSchema

protected void upgradeSchema()
                      throws com.atlassian.config.ConfigurationException,
                             UpgradeException
Throws:
com.atlassian.config.ConfigurationException
UpgradeException

upgradeTaskSucceeded

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

upgradeStarted

protected void upgradeStarted()
                       throws Exception
Throws:
Exception

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

runUpgradePrerequisites

protected abstract List<String> 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()
This is 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

upgradeFinished

protected void upgradeFinished()
                        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.

Throws:
Exception

getRealBuildNumber

protected abstract String getRealBuildNumber()
The is 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()
This is 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.

Throws:
Exception

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.

Throws:
UpgradeException

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-2011 Atlassian. All Rights Reserved.