com.atlassian.confluence.upgrade
Interface UpgradeManager

All Known Implementing Classes:
AbstractUpgradeManager, DefaultUpgradeManager

public interface UpgradeManager

UpgradeManager is responsible for creating a list of UpgradeTasks. For simple upgrades (standard version build 20 to standard version build 21, for example) it's a simple list for that kind of version. A more sophisticated one (upgrade from standard to enterprise version, for example) can be modeled as a composite subclass of two UpgradeManagers. Note that all license specific code is strictly put into the corresponding subclass, so whatever check for enterprise license or things like that is in a specific subclass and not in form of if(enterprise) do blah code spread here and there.


Field Summary
static int MINIMUM_SUPPORTED_UPGRADE_BUILD_NUMBER
          The lowest build number we will attempt to upgrade from.
static java.lang.String MINIMUM_SUPPORTED_UPGRADE_VERSION
          The Confluence version corresponding to the build numbers above.
 
Method Summary
 boolean configuredBuildNumberNewerThan(java.lang.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.
 java.util.List<UpgradeError> getErrors()
           
 java.lang.String getExportBuildNumber(boolean spaceExport)
          Tells the earliest version the exports will be compatible with.
 java.lang.String getOldestSpaceImportAllowed()
          Calculates the oldest build number from which a space can be imported.
 java.util.Map<java.lang.String,PluginExportCompatibility> getPluginExportCompatibility(boolean spaceExport)
          Returns the list of plugins with data (especially plugins with Active Objects data) and tells how backward-compatible they are.
 boolean isUpgraded()
           
 boolean needUpgrade()
           
 void setDatabaseBuildNumber()
          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).
 boolean taskNewerThan(java.lang.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)
           
 

Field Detail

MINIMUM_SUPPORTED_UPGRADE_BUILD_NUMBER

static final int MINIMUM_SUPPORTED_UPGRADE_BUILD_NUMBER
The lowest build number we will attempt to upgrade from. Any upgrade from a build prior to this number will fail, and a Johnson event will be posted explaining why the upgrade could not be performed.

See Also:
Constant Field Values

MINIMUM_SUPPORTED_UPGRADE_VERSION

static final java.lang.String MINIMUM_SUPPORTED_UPGRADE_VERSION
The Confluence version corresponding to the build numbers above. This is only used to provide user-friendly error messages.

See Also:
Constant Field Values
Method Detail

upgrade

void upgrade(com.atlassian.johnson.JohnsonEventContainer agentJohnson)
             throws UpgradeException
Throws:
UpgradeException

getErrors

java.util.List<UpgradeError> getErrors()

needUpgrade

boolean needUpgrade()

isUpgraded

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

configuredBuildNumberNewerThan

boolean configuredBuildNumberNewerThan(java.lang.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.


taskNewerThan

boolean taskNewerThan(java.lang.String buildNumber,
                      UpgradeTask upgradeTask)
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.


entireUpgradeFinished

void entireUpgradeFinished()
Called when all immediate and deferred upgrade actions have been performed *if* an upgrade was needed.


getOldestSpaceImportAllowed

java.lang.String getOldestSpaceImportAllowed()
Calculates the oldest build number from which a space can be imported.

Returns:
the build number
Since:
5.2

getExportBuildNumber

java.lang.String getExportBuildNumber(boolean spaceExport)
Tells the earliest version the exports will be compatible with.

Parameters:
spaceExport - true if the export is about a space, false for a global export.
Returns:
a build number
Since:
5.2

getPluginExportCompatibility

@NotNull
java.util.Map<java.lang.String,PluginExportCompatibility> getPluginExportCompatibility(boolean spaceExport)

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.

Parameters:
spaceExport - true if the export is about a space, false for a global export.
Returns:
a matrix of plugin key and minimum versions of the plugins.

setDatabaseBuildNumber

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



Copyright © 2003-2014 Atlassian. All Rights Reserved.