Package tigase.db.beans
Class MDRepositoryBean<T extends DataSourceAware>
java.lang.Object
tigase.db.beans.MDRepositoryBean<T>
- All Implemented Interfaces:
Initializable,RegistrarBean,RegistrarBeanWithDefaultBeanClass,UnregisterAware
- Direct Known Subclasses:
MDRepositoryBeanWithStatistics
public abstract class MDRepositoryBean<T extends DataSourceAware>
extends Object
implements Initializable, UnregisterAware, RegistrarBeanWithDefaultBeanClass
Abstract class implementing bean to which should be used to create name aware repository pool. This class is
responsible for creation of correct repository instances for every DataSource configured.
Created by andrzej on 15.03.2016.
Created by andrzej on 15.03.2016.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classMDRepositoryConfigBean is bean responsible for basic management and initialization of repository for domain.static enumDetermines behaviour of MDRepositoryBean. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ConcurrentHashMap<String, String> protected MDRepositoryBean.SelectorType -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidMethod called before bean unregister.findClassForDataSource(DataSource dataSource) Method returns class implementing repository which supports data source instance provided in parameter.getName()Returns name of a beanProvides access to unmodifiable map domain to repository instanceprotected TgetRepository(String domain) Provides repository instance for passed domain namevoidMethod will be called, when bean will be created, configured and ready to use.protected voidinitializeRepository(String domain, T repo) Method called to initialized passed repository instance for passed domain.protected voidvoidMethod called when bean is being registered allowing developer to programatically register other beans.voidregisterIfNotExists(String name) Provides access to all available repository instancesvoidsetDataSourceBean(DataSourceBean dataSourceBean) voidunregister(Kernel kernel) Method called while bean is being unregistered.protected voidupdateDataSourceAware(String domain, T newRepo, T oldRepo) Method called when repository instance for domain changes.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface tigase.kernel.beans.RegistrarBeanWithDefaultBeanClass
getDefaultBeanClass
-
Field Details
-
aliases
@ConfigField(desc="Map of aliases for data sources to use") protected ConcurrentHashMap<String,String> aliases -
dataSourceSelection
@ConfigField(desc="Create repositories for: every UserRepository, every data source, listed data sources") protected MDRepositoryBean.SelectorType dataSourceSelection
-
-
Constructor Details
-
MDRepositoryBean
public MDRepositoryBean()
-
-
Method Details
-
getName
Returns name of a bean- Returns:
- name of a bean
-
setDataSourceBean
-
registerIfNotExists
-
register
Description copied from interface:RegistrarBeanMethod called when bean is being registered allowing developer to programatically register other beans.- Specified by:
registerin interfaceRegistrarBean- Parameters:
kernel- - instance from local scope
-
unregister
Description copied from interface:RegistrarBeanMethod called while bean is being unregistered.- Specified by:
unregisterin interfaceRegistrarBean- Parameters:
kernel- - instance from local scope
-
initialize
public void initialize()Description copied from interface:InitializableMethod will be called, when bean will be created, configured and ready to use.- Specified by:
initializein interfaceInitializable
-
beforeUnregister
public void beforeUnregister()Description copied from interface:UnregisterAwareMethod called before bean unregister.- Specified by:
beforeUnregisterin interfaceUnregisterAware
-
findClassForDataSource
protected abstract Class<? extends T> findClassForDataSource(DataSource dataSource) throws DBInitException Method returns class implementing repository which supports data source instance provided in parameter.- Returns:
- repository class
- Throws:
DBInitException
-
repositoriesStream
Provides access to all available repository instances- Returns:
- stream of repository instances
-
getRepositories
Provides access to unmodifiable map domain to repository instance- Returns:
- map of domain to repository instance
-
getRepository
Provides repository instance for passed domain name- Returns:
- instance of repository
-
onDataSourceChange
-
initializeRepository
Method called to initialized passed repository instance for passed domain.
Should be empty if no custom initialization is required. -
updateDataSourceAware
Method called when repository instance for domain changes.- Parameters:
domain- name of domainnewRepo- new instance of repositoryoldRepo- old instance of repository
-