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 class
MDRepositoryConfigBean is bean responsible for basic management and initialization of repository for domain.static enum
Determines behaviour of MDRepositoryBean. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ConcurrentHashMap<String,
String> protected MDRepositoryBean.SelectorType
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Method 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 T
getRepository
(String domain) Provides repository instance for passed domain namevoid
Method will be called, when bean will be created, configured and ready to use.protected void
initializeRepository
(String domain, T repo) Method called to initialized passed repository instance for passed domain.protected void
void
Method called when bean is being registered allowing developer to programatically register other beans.void
registerIfNotExists
(String name) Provides access to all available repository instancesvoid
setDataSourceBean
(DataSourceBean dataSourceBean) void
unregister
(Kernel kernel) Method called while bean is being unregistered.protected void
updateDataSourceAware
(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, wait
Methods 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:RegistrarBean
Method called when bean is being registered allowing developer to programatically register other beans.- Specified by:
register
in interfaceRegistrarBean
- Parameters:
kernel
- - instance from local scope
-
unregister
Description copied from interface:RegistrarBean
Method called while bean is being unregistered.- Specified by:
unregister
in interfaceRegistrarBean
- Parameters:
kernel
- - instance from local scope
-
initialize
public void initialize()Description copied from interface:Initializable
Method will be called, when bean will be created, configured and ready to use.- Specified by:
initialize
in interfaceInitializable
-
beforeUnregister
public void beforeUnregister()Description copied from interface:UnregisterAware
Method called before bean unregister.- Specified by:
beforeUnregister
in 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
-