public class

DatabaseConfigurationManagerImpl

extends Object
implements DatabaseConfigurationManager
java.lang.Object
   ↳ com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl

Class Overview

A threadsafe implementation which reads and writes configuration for the database using the given DatabaseConfigurationLoader. Caches configuration.

Summary

Public Constructors
DatabaseConfigurationManagerImpl(JiraHome jiraHome, DatabaseConfigurationLoader databaseConfigLoader, ComponentLocator componentLocator)
Public Methods
void activateDatabase(boolean runPostDbSetupRunnables)
void activateDatabase()
Initialises the first connection to the database and causes each enqueued runnable that registered with doNowOrWhenDatabaseActivated(Runnable, String) to be run.
void activateDatabaseWithoutRunningPostDbSetupRunnables()
void createDbConfigFromEntityDefinition()
Creates a new dbconfig.xml usinfg the values in entityengine.xml if there are any Allows for upgrade from pre 5.0 instances
void doNowOrWhenDatabaseActivated(Runnable runnable, String desc)
Requests that work that needs to read from and write to the database be done.
void doNowOrWhenDatabaseConfigured(Runnable runnable, String desc)
Requests that work dependent on the database configuration be done.
DatabaseConfig getDatabaseConfiguration()
Gets the current database configuration.
DatabaseConfig getInternalDatabaseConfiguration()
Provides the DatabaseConfig that represents the embedded JIRA database.
boolean isDatabaseSetup()
Returns true only if the database configuration is available.
void runPostDbSetupRunnables()
void setDatabaseConfiguration(DatabaseConfig databaseConfig)
Persists the given config as JIRA's database configuration.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.config.database.DatabaseConfigurationManager

Public Constructors

public DatabaseConfigurationManagerImpl (JiraHome jiraHome, DatabaseConfigurationLoader databaseConfigLoader, ComponentLocator componentLocator)

Public Methods

public void activateDatabase (boolean runPostDbSetupRunnables)

public void activateDatabase ()

Initialises the first connection to the database and causes each enqueued runnable that registered with doNowOrWhenDatabaseActivated(Runnable, String) to be run. Should only be run once per application boot.

public void activateDatabaseWithoutRunningPostDbSetupRunnables ()

public void createDbConfigFromEntityDefinition ()

Creates a new dbconfig.xml usinfg the values in entityengine.xml if there are any Allows for upgrade from pre 5.0 instances

public void doNowOrWhenDatabaseActivated (Runnable runnable, String desc)

Requests that work that needs to read from and write to the database be done. If the database is already active, the runnable will be run now in the calling thread. If not, it will be enqueued until the database configuration is provided and the database is activated via activateDatabase(). Then it will be done in the thread that calls activateDatabase().

Callers can be sure that the database schema will already be updated to fit the model when the given runnable is run.

Parameters
runnable The work that must be done if or when the database is activated.
desc A description (for logging purposes) of the work.

public void doNowOrWhenDatabaseConfigured (Runnable runnable, String desc)

Requests that work dependent on the database configuration be done. If the database is already configured, the runnable will be run now in the calling thread. If not, it will be enqueued until the database configuration is provided but before the database is actually activated via activateDatabase(). Then it will be done in the thread that calls activateDatabase().

The puropse of this method is to execute tasks that want to check or read the database configuration before the schema is modified to fit the current model.

Parameters
runnable The work that must be done if or when the database is configured.
desc A description (for logging purposes) of the work.

public DatabaseConfig getDatabaseConfiguration ()

Gets the current database configuration.

Returns
  • the config if configured.

public DatabaseConfig getInternalDatabaseConfiguration ()

Provides the DatabaseConfig that represents the embedded JIRA database. This does not imply that this config is current or that there is any current configuration for the JIRA database.

Returns
  • the embedded database config.

public boolean isDatabaseSetup ()

Returns true only if the database configuration is available.

Returns
  • whether the database is set up.

public void runPostDbSetupRunnables ()

public void setDatabaseConfiguration (DatabaseConfig databaseConfig)

Persists the given config as JIRA's database configuration. This must only be done once.

Parameters
databaseConfig the config to use for JIRA's database connection.