Top Description Fields Constructors Methods
liquibase.integration.spring

public Class MultiTenantSpringLiquibase

extends Object
implements InitializingBean, ResourceLoaderAware
Class Inheritance
All Implemented Interfaces
org.springframework.context.ResourceLoaderAware, org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean
Imports
liquibase.Scope, liquibase.exception.LiquibaseException, liquibase.logging.Logger, org.springframework.beans.factory.InitializingBean, org.springframework.context.ResourceLoaderAware, org.springframework.core.io.ResourceLoader, javax.naming.*, javax.sql.DataSource, java.io.File, java.util.ArrayList, .List, .Map

A wrapper of Liquibase suitable in multi-tenant environments where multiple data sources represent tenants. It utilizes SpringLiquibase per each data source. All the parameters are the same as for SpringLiquibase except of the data source definition - in this case it is a list of data sources available under specified JNDI subtree. You have to define the subtree with jndiBase property.

The wrapper scans the subtree for all data sources and creates SpringLiquibase instances.

Example:

 <bean id="liquibase" class="liquibase.integration.spring.MultiTenantSpringLiquibase">
	<property name="jndiBase" value="java:comp/env/jdbc/db" />
	<property name="changeLog" value="classpath:db/migration/db-changelog.xml" />	
 </bean>
 
Author
ladislav.gazo
See Also
SpringLiquibase

Field Summary

Modifier and TypeField and Description
private String
private boolean
private String
private String
private String
private DataSource
dataSource

Defines a single data source and several schemas for a multi-tenant environment.

private final List<DataSource>
private String
private boolean
private String
jndiBase

Defines the location of data sources suitable for multi-tenant environment.

private String
private String
private String
private Map<String, String>
private ResourceLoader
private File
private List<String>
private boolean

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
afterPropertiesSet()

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

public String
public String
public String
public String
public DataSource
public String
public String
public String
public String
getLabels()
Deprecated use getLabelFilter()

public String
public String
public Map<String, String>
public File
public List<String>
private SpringLiquibase
public boolean
public boolean
public boolean
private void
private void
private void
public void
setChangeLog(String changeLog)

public void
setClearCheckSums(boolean clearCheckSums)

public void
setContexts(String contexts)

public void
setDatabaseChangeLogLockTable(String databaseChangeLogLockTable)

public void
setDatabaseChangeLogTable(String databaseChangeLogTable)

public void
public void
setDefaultSchema(String defaultSchema)

public void
setDropFirst(boolean dropFirst)

public void
setJndiBase(String jndiBase)

public void
setLabelFilter(String labelFilter)

public void
setLabels(String labels)
Deprecated use setLabelFilter(String)

public void
setLiquibaseSchema(String liquibaseSchema)

public void
setLiquibaseTablespace(String liquibaseTablespace)

public void
public void
setResourceLoader(ResourceLoader
the ResourceLoader object to be used by this object
resourceLoader
)

Implements org.springframework.context.ResourceLoaderAware.setResourceLoader.

Set the ResourceLoader that this object runs in.

This might be a ResourcePatternResolver, which can be checked through instanceof ResourcePatternResolver.

public void
setRollbackFile(File rollbackFile)

public void
public void
setShouldRun(boolean shouldRun)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

changeLogback to summary
private String changeLog
clearCheckSumsback to summary
private boolean clearCheckSums
contextsback to summary
private String contexts
databaseChangeLogLockTableback to summary
private String databaseChangeLogLockTable
databaseChangeLogTableback to summary
private String databaseChangeLogTable
dataSourceback to summary
private DataSource dataSource

Defines a single data source and several schemas for a multi-tenant environment.

dataSourcesback to summary
private final List<DataSource> dataSources
defaultSchemaback to summary
private String defaultSchema
dropFirstback to summary
private boolean dropFirst
jndiBaseback to summary
private String jndiBase

Defines the location of data sources suitable for multi-tenant environment.

labelFilterback to summary
private String labelFilter
liquibaseSchemaback to summary
private String liquibaseSchema
liquibaseTablespaceback to summary
private String liquibaseTablespace
parametersback to summary
private Map<String, String> parameters
resourceLoaderback to summary
private ResourceLoader resourceLoader
rollbackFileback to summary
private File rollbackFile
schemasback to summary
private List<String> schemas
shouldRunback to summary
private boolean shouldRun

Constructor Detail

MultiTenantSpringLiquibaseback to summary
public MultiTenantSpringLiquibase()

Method Detail

afterPropertiesSetback to summary
public void afterPropertiesSet() throws Exception

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Doc from org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

Annotations
@Override
Exceptions
Exception:
in the event of misconfiguration (such as failure to set an essential property) or if initialization fails for any other reason
getChangeLogback to summary
public String getChangeLog()
getContextsback to summary
public String getContexts()
getDatabaseChangeLogLockTableback to summary
public String getDatabaseChangeLogLockTable()
getDatabaseChangeLogTableback to summary
public String getDatabaseChangeLogTable()
getDataSourceback to summary
public DataSource getDataSource()
getDefaultSchemaback to summary
public String getDefaultSchema()
getJndiBaseback to summary
public String getJndiBase()
getLabelFilterback to summary
public String getLabelFilter()
getLabelsback to summary
public String getLabels()

Deprecated

use getLabelFilter()

getLiquibaseSchemaback to summary
public String getLiquibaseSchema()
getLiquibaseTablespaceback to summary
public String getLiquibaseTablespace()
getParametersback to summary
public Map<String, String> getParameters()
getRollbackFileback to summary
public File getRollbackFile()
getSchemasback to summary
public List<String> getSchemas()
getSpringLiquibaseback to summary
private SpringLiquibase getSpringLiquibase(DataSource dataSource)
isClearCheckSumsback to summary
public boolean isClearCheckSums()
isDropFirstback to summary
public boolean isDropFirst()
isShouldRunback to summary
public boolean isShouldRun()
resolveDataSourcesback to summary
private void resolveDataSources() throws NamingException
runOnAllDataSourcesback to summary
private void runOnAllDataSources() throws LiquibaseException
runOnAllSchemasback to summary
private void runOnAllSchemas() throws LiquibaseException
setChangeLogback to summary
public void setChangeLog(String changeLog)
setClearCheckSumsback to summary
public void setClearCheckSums(boolean clearCheckSums)
setContextsback to summary
public void setContexts(String contexts)
setDatabaseChangeLogLockTableback to summary
public void setDatabaseChangeLogLockTable(String databaseChangeLogLockTable)
setDatabaseChangeLogTableback to summary
public void setDatabaseChangeLogTable(String databaseChangeLogTable)
setDataSourceback to summary
public void setDataSource(DataSource dataSource)
setDefaultSchemaback to summary
public void setDefaultSchema(String defaultSchema)
setDropFirstback to summary
public void setDropFirst(boolean dropFirst)
setJndiBaseback to summary
public void setJndiBase(String jndiBase)
setLabelFilterback to summary
public void setLabelFilter(String labelFilter)
setLabelsback to summary
public void setLabels(String labels)

Deprecated

use setLabelFilter(String)

setLiquibaseSchemaback to summary
public void setLiquibaseSchema(String liquibaseSchema)
setLiquibaseTablespaceback to summary
public void setLiquibaseTablespace(String liquibaseTablespace)
setParametersback to summary
public void setParameters(Map<String, String> parameters)
setResourceLoaderback to summary
public void setResourceLoader(ResourceLoader resourceLoader)

Implements org.springframework.context.ResourceLoaderAware.setResourceLoader.

Doc from org.springframework.context.ResourceLoaderAware.setResourceLoader.

Set the ResourceLoader that this object runs in.

This might be a ResourcePatternResolver, which can be checked through instanceof ResourcePatternResolver. See also the ResourcePatternUtils.getResourcePatternResolver method.

Invoked after population of normal bean properties but before an init callback like InitializingBean's afterPropertiesSet or a custom init-method. Invoked before ApplicationContextAware's setApplicationContext.

Parameters
resourceLoader:ResourceLoader

the ResourceLoader object to be used by this object

Annotations
@Override
setRollbackFileback to summary
public void setRollbackFile(File rollbackFile)
setSchemasback to summary
public void setSchemas(List<String> schemas)
setShouldRunback to summary
public void setShouldRun(boolean shouldRun)