Class LiquibaseDataInitializer

java.lang.Object
org.exoplatform.commons.persistence.impl.LiquibaseDataInitializer
All Implemented Interfaces:
org.exoplatform.commons.api.persistence.DataInitializer, org.picocontainer.Startable

public class LiquibaseDataInitializer extends Object implements org.picocontainer.Startable, org.exoplatform.commons.api.persistence.DataInitializer
Startable service to initialize all the data with Liquibase. Changelog files are added by external plugins.
  • Field Details

  • Constructor Details

    • LiquibaseDataInitializer

      public LiquibaseDataInitializer(org.exoplatform.services.naming.InitialContextInitializer initialContextInitializer, org.exoplatform.container.xml.InitParams initParams)
    • LiquibaseDataInitializer

      public LiquibaseDataInitializer(org.exoplatform.container.xml.InitParams initParams)
  • Method Details

    • getDatasourceName

      public String getDatasourceName()
    • setDatasourceName

      public void setDatasourceName(String datasourceName)
    • getContexts

      public String getContexts()
    • setContexts

      public void setContexts(String liquibaseContexts)
    • addChangeLogsPlugin

      public void addChangeLogsPlugin(ChangeLogsPlugin changeLogsPlugin)
      Add a changelogs plugin
      Parameters:
      changeLogsPlugin - Changelogs plugin to add
    • start

      public void start()
      Specified by:
      start in interface org.picocontainer.Startable
    • stop

      public void stop()
      Specified by:
      stop in interface org.picocontainer.Startable
    • getDatasource

      public DataSource getDatasource()
      Specified by:
      getDatasource in interface org.exoplatform.commons.api.persistence.DataInitializer
    • initData

      public void initData()
      Initialize the data with Liquibase with the default datasource.
      Specified by:
      initData in interface org.exoplatform.commons.api.persistence.DataInitializer
    • initData

      public void initData(String datasourceName)
      Initialize the data with Liquibase with the given datasource. Iterates over all the changelogs injected by the change logs plugins and executes them.
      Specified by:
      initData in interface org.exoplatform.commons.api.persistence.DataInitializer
    • applyChangeLog

      protected void applyChangeLog(DataSource datasource, String changelogsPath)
      Apply changelogs with Liquibase
      Parameters:
      datasource -
      changelogsPath -
    • getDatasource

      protected DataSource getDatasource(String datasourceName)
      Lookup for a datasource with the given name
      Parameters:
      datasourceName - Name of the datasource to retrieve
      Returns:
      The datasource with the given name