Class 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.
    1. Initializing the Confluence environment, beginning with loading confluence.cfg.xml from the confluence.home property specified in confluence-init.properties.
    2. Delegating, monitoring, and answering all client requests concerning Confluence initialization routines.
    3. Providing the SetupPersister with whatever resources it needs to let a user bootstrapManager Confluence.
    • 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 interface com.atlassian.config.bootstrap.AtlassianBootstrapManager
        Overrides:
        init in class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
        Throws:
        com.atlassian.config.bootstrap.BootstrapException
      • publishConfiguration

        @Deprecated
        public void publishConfiguration()
        Deprecated.
        since 5.9
        Specified by:
        publishConfiguration in interface com.atlassian.config.bootstrap.AtlassianBootstrapManager
        Overrides:
        publishConfiguration in class com.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 interface BootstrapManagerInternal
        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 interface com.atlassian.config.bootstrap.AtlassianBootstrapManager
        Specified by:
        getFilePathProperty in interface BootstrapManager
        Overrides:
        getFilePathProperty in class com.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 class com.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 interface BootstrapManager
        Returns:
        local home in standalone installation and shared home in clustered installation
      • getApplicationHome

        public String getApplicationHome()
        Specified by:
        getApplicationHome in interface com.atlassian.config.bootstrap.AtlassianBootstrapManager
        Specified by:
        getApplicationHome in interface BootstrapManager
        Overrides:
        getApplicationHome in class com.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 interface BootstrapManager
        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 interface BootstrapManager
        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 interface BootstrapManager
        Throws:
        com.atlassian.config.ConfigurationException
      • performPersistenceUpgrade

        protected boolean performPersistenceUpgrade()
        Overrides:
        performPersistenceUpgrade in class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
      • getHibernateProperties

        public Properties getHibernateProperties()
        Specified by:
        getHibernateProperties in interface com.atlassian.config.bootstrap.AtlassianBootstrapManager
        Overrides:
        getHibernateProperties in class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
      • getTestDatabaseConnection

        public Connection getTestDatabaseConnection​(com.atlassian.config.db.DatabaseDetails databaseDetails)
                                             throws com.atlassian.config.bootstrap.BootstrapException
        Specified by:
        getTestDatabaseConnection in interface com.atlassian.config.bootstrap.AtlassianBootstrapManager
        Overrides:
        getTestDatabaseConnection in class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
        Throws:
        com.atlassian.config.bootstrap.BootstrapException
      • checkConfigurationOnStartup

        public void checkConfigurationOnStartup()
                                         throws com.atlassian.config.bootstrap.BootstrapException
        Specified by:
        checkConfigurationOnStartup in interface BootstrapManager
        Throws:
        com.atlassian.config.bootstrap.BootstrapException
      • afterConfigurationLoaded

        protected void afterConfigurationLoaded()
                                         throws com.atlassian.config.ConfigurationException
        Overrides:
        afterConfigurationLoaded in class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
        Throws:
        com.atlassian.config.ConfigurationException
      • postBootstrapDatabase

        protected void postBootstrapDatabase()
                                      throws com.atlassian.config.bootstrap.BootstrapException
        Overrides:
        postBootstrapDatabase in class com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager
        Throws:
        com.atlassian.config.bootstrap.BootstrapException