Package com.atlassian.confluence.setup
Class DefaultBootstrapManager
- java.lang.Object
-
- com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
-
- com.atlassian.confluence.setup.DefaultBootstrapManager
-
- All Implemented Interfaces:
com.atlassian.config.bootstrap.AtlassianBootstrapManager
,BootstrapManager
,BootstrapManagerInternal
,ConfluenceBootstrapConstants
public class DefaultBootstrapManager extends com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager implements BootstrapManagerInternal
BootstrapManager is responsible for initializing the dependencies of Confluence environment.- Initializing the Confluence environment, beginning with loading confluence.cfg.xml from the confluence.home property specified in confluence-init.properties.
- Delegating, monitoring, and answering all client requests concerning Confluence initialization routines.
- Providing the SetupPersister with whatever resources it needs to let a user bootstrapManager Confluence.
-
-
Field Summary
Fields Modifier and Type Field Description static String
CONFIG_DIR_NAME
static String
CONFLUENCE_DATABASE_CHOICE
static String
JTDS_PROTOCOL
static String
LOCK_FILE_NAME
static String
SYNCHRONY_BTF
Deprecated.static String
SYNCHRONY_BTF_OFF
Since 6.12 this field defines a bandana property, and not a field in the config filestatic String
SYNCHRONY_ENCRYPTION_DISABLED
static String
SYNCHRONY_PROXY_ENABLED
-
Fields inherited from class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
applicationConfig, bootstrapFailureReason, bootstrapped, hibernateConfig, hibernateConfigurator, homeLocator, setupPersister
-
Fields inherited from interface com.atlassian.confluence.setup.BootstrapManager
JWT_KEY_LENGTH, JWT_PRIVATE_KEY, JWT_PUBLIC_KEY
-
Fields inherited from interface com.atlassian.confluence.setup.ConfluenceBootstrapConstants
ATLASSIAN_LICENSE_KEY, ATTACHMENTS_DIR_PROP, CONFLUENCE_HOME_CONSTANT, CONFLUENCE_LOCAL_HOME_CONSTANT, DEFAULT_LICENSE_REGISTRY_KEY, GLOBAL_PLUGIN_STATE, INSTALLATION_DATE_KEY, LICENSE_HASH_KEY, LICENSE_MESSAGE_KEY, LUCENE_INDEX_DIR_PROP, TEMP_DIR_PROP, WEBAPP_CONTEXT_PATH_KEY
-
-
Constructor Summary
Constructors Constructor Description DefaultBootstrapManager(com.atlassian.config.ApplicationConfiguration applicationConfiguration, ClusterConfigurationHelperInternal clusterConfigurationHelper, SingleConnectionProvider databaseHelper, HealthCheckRunner healthCheckRunner, com.atlassian.config.db.HibernateConfigurator hibernateConfigurator, com.atlassian.config.HomeLocator homeLocator, com.atlassian.config.setup.SetupPersister setupPersister, List<String> tables)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
afterConfigurationLoaded()
void
bootstrapSharedConfiguration(SharedConfigurationMap sharedConfig)
Deprecated.since 5.9void
checkConfigurationOnStartup()
void
cleanupOnShutdown()
If there's any resource that needs to be cleaned up, do it here.String
getApplicationHome()
File
getConfiguredLocalHome()
Returns the configured local home or null if not configured.String
getConfluenceHome()
Deprecated.Optional<com.atlassian.config.db.DatabaseDetails>
getDatabaseDetail(String database)
Get Db configuration from config file if we are using db.first setup typeOptional<String>
getDataSourceName()
Returns the name of the JNDI-based DataSource, if any.protected String
getDbUrl(com.atlassian.config.db.DatabaseDetails dbDetails)
String
getFilePathProperty(String key)
"${confluenceHome}" is replaced on the fly with the current location of confluence.
This effectively allows Confluence to be moved without breaking some system paths (like attachments).
This does not handle moves to a different drive though.String
getHibernateDialect()
Returns the SQL dialect being used by Hibernate.Properties
getHibernateProperties()
File
getLocalHome()
Confluence local home directory.File
getSharedHome()
Confluence shared home directory.Connection
getTestDatabaseConnection(com.atlassian.config.db.DatabaseDetails databaseDetails)
String
getWebAppContextPath()
void
init()
boolean
isWebAppContextPathSet()
protected boolean
performPersistenceUpgrade()
protected void
postBootstrapDatabase()
void
publishConfiguration()
Deprecated.since 5.9void
setConfluenceHome(String confluenceHome)
void
setWebAppContextPath(String webAppContextPath)
-
Methods inherited from class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
bootstrapDatabase, bootstrapDatasource, databaseContainsExistingData, finishBootstrapInitialisation, getApplicationConfig, getBootstrapFailureReason, getBuildNumber, getConfiguredApplicationHome, getHibernateConfig, getHibernateConfigurator, getHomeLocator, getOperation, getPropertiesWithPrefix, getProperty, getPropertyKeys, getSetupPersister, getString, getTables, getTestDatasourceConnection, isApplicationHomeValid, isBootstrapped, isPropertyTrue, isSetupComplete, removeProperty, save, setApplicationConfig, setBuildNumber, setHibernateConfig, setHibernateConfigurator, setHomeLocator, setOperation, setProperty, setSetupComplete, setSetupPersister, setTables
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.atlassian.config.bootstrap.AtlassianBootstrapManager
bootstrapDatabase, bootstrapDatasource, databaseContainsExistingData, getApplicationConfig, getBootstrapFailureReason, getBuildNumber, getHibernateConfig, getHibernateConfigurator, getOperation, getPropertiesWithPrefix, getProperty, getPropertyKeys, getSetupPersister, getString, getTestDatasourceConnection, isApplicationHomeValid, isBootstrapped, isPropertyTrue, isSetupComplete, removeProperty, save, setBuildNumber, setHibernateConfigurator, setOperation, setProperty, setSetupComplete
-
Methods inherited from interface com.atlassian.confluence.setup.BootstrapManager
getConfiguredApplicationHome
-
-
-
-
Field Detail
-
CONFIG_DIR_NAME
public static final String CONFIG_DIR_NAME
- See Also:
- Constant Field Values
-
LOCK_FILE_NAME
public static final String LOCK_FILE_NAME
- See Also:
- Constant Field Values
-
SYNCHRONY_BTF
@Deprecated public static final String SYNCHRONY_BTF
Deprecated.This field no longer used- Since:
- 6.12
- See Also:
- Constant Field Values
-
SYNCHRONY_PROXY_ENABLED
public static final String SYNCHRONY_PROXY_ENABLED
- See Also:
- Constant Field Values
-
SYNCHRONY_ENCRYPTION_DISABLED
public static final String SYNCHRONY_ENCRYPTION_DISABLED
- See Also:
- Constant Field Values
-
SYNCHRONY_BTF_OFF
public static final String SYNCHRONY_BTF_OFF
Since 6.12 this field defines a bandana property, and not a field in the config file- See Also:
- Constant Field Values
-
CONFLUENCE_DATABASE_CHOICE
public static final String CONFLUENCE_DATABASE_CHOICE
- See Also:
- Constant Field Values
-
JTDS_PROTOCOL
public static final String JTDS_PROTOCOL
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DefaultBootstrapManager
public DefaultBootstrapManager(com.atlassian.config.ApplicationConfiguration applicationConfiguration, ClusterConfigurationHelperInternal clusterConfigurationHelper, SingleConnectionProvider databaseHelper, HealthCheckRunner healthCheckRunner, com.atlassian.config.db.HibernateConfigurator hibernateConfigurator, com.atlassian.config.HomeLocator homeLocator, com.atlassian.config.setup.SetupPersister setupPersister, List<String> tables)
-
-
Method Detail
-
init
public void init() throws com.atlassian.config.bootstrap.BootstrapException
- Specified by:
init
in interfacecom.atlassian.config.bootstrap.AtlassianBootstrapManager
- Overrides:
init
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
- Throws:
com.atlassian.config.bootstrap.BootstrapException
-
publishConfiguration
@Deprecated public void publishConfiguration()
Deprecated.since 5.9- Specified by:
publishConfiguration
in interfacecom.atlassian.config.bootstrap.AtlassianBootstrapManager
- Overrides:
publishConfiguration
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
-
getDatabaseDetail
public Optional<com.atlassian.config.db.DatabaseDetails> getDatabaseDetail(String database)
Description copied from interface:BootstrapManagerInternal
Get Db configuration from config file if we are using db.first setup type- Specified by:
getDatabaseDetail
in interfaceBootstrapManagerInternal
- Parameters:
database
- the name of database- Returns:
- Optional Database Configuration object
-
getFilePathProperty
public String getFilePathProperty(String key)
"${confluenceHome}" is replaced on the fly with the current location of confluence.
This effectively allows Confluence to be moved without breaking some system paths (like attachments).
This does not handle moves to a different drive though.- Specified by:
getFilePathProperty
in interfacecom.atlassian.config.bootstrap.AtlassianBootstrapManager
- Specified by:
getFilePathProperty
in interfaceBootstrapManager
- Overrides:
getFilePathProperty
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
- Parameters:
key
- the property key whose value you want to perform replacement upon.
-
getDbUrl
protected String getDbUrl(com.atlassian.config.db.DatabaseDetails dbDetails)
- Overrides:
getDbUrl
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
-
getConfluenceHome
@Deprecated public String getConfluenceHome()
Deprecated.Description copied from interface:BootstrapManager
Returns local home in standalone installation and shared home in clustered installation.- Specified by:
getConfluenceHome
in interfaceBootstrapManager
- Returns:
- local home in standalone installation and shared home in clustered installation
-
getApplicationHome
public String getApplicationHome()
- Specified by:
getApplicationHome
in interfacecom.atlassian.config.bootstrap.AtlassianBootstrapManager
- Specified by:
getApplicationHome
in interfaceBootstrapManager
- Overrides:
getApplicationHome
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
-
getSharedHome
public File getSharedHome()
Description copied from interface:BootstrapManager
Confluence shared home directory.This directory is shared between all nodes in a cluster. In non-clustered installations without a shared directory, directory called "shared-home" inside local home directory is returned instead.
This directory should be used for data that can be safely shared across a cluster. Any users of this directory should take into account locking to prevent concurrency errors.
- Specified by:
getSharedHome
in interfaceBootstrapManager
- Returns:
- shared home directory
-
getLocalHome
public File getLocalHome()
Description copied from interface:BootstrapManager
Confluence local home directory.This directory is only visible to the local node in a cluster.
This directory should be used for data that must be node specific and cannot be shared between cluster nodes.
- Specified by:
getLocalHome
in interfaceBootstrapManager
- Returns:
- String representing the path to Confluence's home directory on disk.
-
setConfluenceHome
public void setConfluenceHome(String confluenceHome) throws com.atlassian.config.ConfigurationException
- Specified by:
setConfluenceHome
in interfaceBootstrapManager
- Throws:
com.atlassian.config.ConfigurationException
-
bootstrapSharedConfiguration
@Deprecated public void bootstrapSharedConfiguration(SharedConfigurationMap sharedConfig)
Deprecated.since 5.9Starts Confluence with a database configuration that has been retrieved from another cluster node.- Specified by:
bootstrapSharedConfiguration
in interfaceBootstrapManager
-
getConfiguredLocalHome
public File getConfiguredLocalHome()
Description copied from interface:BootstrapManager
Returns the configured local home or null if not configured.Only bootstrap code should need this method. Most code should use
BootstrapManager.getLocalHome()
instead.- Specified by:
getConfiguredLocalHome
in interfaceBootstrapManager
- Returns:
- configured local home
-
performPersistenceUpgrade
protected boolean performPersistenceUpgrade()
- Overrides:
performPersistenceUpgrade
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
-
getHibernateProperties
public Properties getHibernateProperties()
- Specified by:
getHibernateProperties
in interfacecom.atlassian.config.bootstrap.AtlassianBootstrapManager
- Overrides:
getHibernateProperties
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
-
getTestDatabaseConnection
public Connection getTestDatabaseConnection(com.atlassian.config.db.DatabaseDetails databaseDetails) throws com.atlassian.config.bootstrap.BootstrapException
- Specified by:
getTestDatabaseConnection
in interfacecom.atlassian.config.bootstrap.AtlassianBootstrapManager
- Overrides:
getTestDatabaseConnection
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
- Throws:
com.atlassian.config.bootstrap.BootstrapException
-
checkConfigurationOnStartup
public void checkConfigurationOnStartup() throws com.atlassian.config.bootstrap.BootstrapException
- Specified by:
checkConfigurationOnStartup
in interfaceBootstrapManager
- Throws:
com.atlassian.config.bootstrap.BootstrapException
-
cleanupOnShutdown
public void cleanupOnShutdown()
Description copied from interface:BootstrapManager
If there's any resource that needs to be cleaned up, do it here.- Specified by:
cleanupOnShutdown
in interfaceBootstrapManager
-
getDataSourceName
public Optional<String> getDataSourceName()
Description copied from interface:BootstrapManager
Returns the name of the JNDI-based DataSource, if any.- Specified by:
getDataSourceName
in interfaceBootstrapManager
- Returns:
- empty if Confluence is using a direct JDBC connection
-
getHibernateDialect
public String getHibernateDialect()
Description copied from interface:BootstrapManager
Returns the SQL dialect being used by Hibernate.- Specified by:
getHibernateDialect
in interfaceBootstrapManager
- Returns:
- see above
- See Also:
AvailableSettings.DIALECT
-
afterConfigurationLoaded
protected void afterConfigurationLoaded() throws com.atlassian.config.ConfigurationException
- Overrides:
afterConfigurationLoaded
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
- Throws:
com.atlassian.config.ConfigurationException
-
postBootstrapDatabase
protected void postBootstrapDatabase() throws com.atlassian.config.bootstrap.BootstrapException
- Overrides:
postBootstrapDatabase
in classcom.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
- Throws:
com.atlassian.config.bootstrap.BootstrapException
-
getWebAppContextPath
public String getWebAppContextPath()
- Specified by:
getWebAppContextPath
in interfaceBootstrapManager
-
setWebAppContextPath
public void setWebAppContextPath(String webAppContextPath)
- Specified by:
setWebAppContextPath
in interfaceBootstrapManager
-
isWebAppContextPathSet
public boolean isWebAppContextPathSet()
- Specified by:
isWebAppContextPathSet
in interfaceBootstrapManager
-
-