Package tigase.pubsub.repository.cached
Class CachedPubSubRepository<T>
- java.lang.Object
-
- tigase.pubsub.repository.cached.CachedPubSubRepository<T>
-
- All Implemented Interfaces:
tigase.kernel.beans.Initializable,IItems.IListnener,IPubSubRepository,tigase.stats.StatisticHolder,tigase.xmpp.mam.MAMRepository<Query,tigase.xmpp.mam.MAMRepository.Item>
@Bean(name="repository", parent=PubSubComponent.class, active=true) public class CachedPubSubRepository<T> extends java.lang.Object implements IPubSubRepository, tigase.stats.StatisticHolder, tigase.kernel.beans.Initializable, IItems.IListnenerImplementation of IPubSubRepository interface providing access to the database for data storage with caching.- Version:
- 5.0.0, 2010.03.27 at 05:20:46 GMT
- Author:
- Artur Hefczyc
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceCachedPubSubRepository.NodeAffiliationProvider<T>static classCachedPubSubRepository.NodeKeystatic classCachedPubSubRepository.RootCollectionSetstatic classCachedPubSubRepository.SizedCache<V>-
Nested classes/interfaces inherited from interface tigase.pubsub.repository.IPubSubRepository
IPubSubRepository.IListener, IPubSubRepository.RepositorySupplier<T>, IPubSubRepository.RootCollectionSetIfc
-
-
Field Summary
Fields Modifier and Type Field Description protected IPubSubConfigconfigprotected IPubSubDAO<T,tigase.db.DataSource,Query>daoprotected java.util.logging.Loggerlogprotected Cache<CachedPubSubRepository.NodeKey,Node>nodesprotected java.util.concurrent.atomic.AtomicLongnodesCountprotected PubSubLogicpubSubLogic
-
Constructor Summary
Constructors Constructor Description CachedPubSubRepository()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMAMItem(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, java.lang.String uuid, tigase.xml.Element message, java.lang.String itemId)voidaddToRootCollection(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)protected CachedPubSubRepository.NodeKeycreateKey(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)voidcreateNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, tigase.xmpp.jid.BareJID ownerJid, AbstractNodeConfig nodeConfig, NodeType nodeType, java.lang.String collection)voidcreateService(tigase.xmpp.jid.BareJID serviceJID, boolean isPublic)voiddeleteNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)voiddeleteService(tigase.xmpp.jid.BareJID userJid)voiddestroy()voideveryHour()voideveryMinute()voideverySecond()java.lang.String[]getChildNodes(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)protected NodegetNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)IAffiliationsgetNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)protected java.util.List<Node<T>>getNodeAndSubnodes(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, java.util.function.Predicate<Node<T>> filterWithSubnodes, java.util.function.Predicate<Node<T>> filter)AbstractNodeConfiggetNodeConfig(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)protected NodegetNodeFromCache(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)IItemsgetNodeItems(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)java.util.List<IItems.IItem>getNodeItems(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, tigase.xmpp.jid.JID requester, java.util.Date after, java.util.Date before, tigase.xmpp.rsm.RSM rsm)INodeMetagetNodeMeta(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)longgetNodesCount(tigase.xmpp.jid.BareJID serviceJID)ISubscriptionsgetNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)IPubSubDAOgetPubSubDAO()java.lang.String[]getRootCollection(tigase.xmpp.jid.BareJID serviceJid)protected IPubSubRepository.RootCollectionSetIfcgetRootCollectionSet(tigase.xmpp.jid.BareJID serviceJid)java.util.List<tigase.xmpp.jid.BareJID>getServices(tigase.xmpp.jid.BareJID domain, java.lang.Boolean isPublic)voidgetStatistics(java.lang.String name, tigase.stats.StatisticsList stats)java.util.Map<java.lang.String,UsersAffiliation>getUserAffiliations(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID jid)java.util.Map<tigase.xmpp.jid.BareJID,tigase.xmpp.impl.roster.RosterElement>getUserRoster(tigase.xmpp.jid.BareJID owner)java.util.Map<java.lang.String,UsersSubscription>getUserSubscriptions(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID userJid)protected booleanhasAccessPermission(Node node, tigase.xmpp.jid.JID requester, PubSubLogic.Action action)voidinit()voidinitialize()protected booleanisServiceAutoCreated()voiditemDeleted(tigase.xmpp.jid.BareJID serviceJID, java.lang.String node, java.lang.String id)voiditemWritten(tigase.xmpp.jid.BareJID serviceJID, java.lang.String node, java.lang.String id, java.lang.String publisher, tigase.xml.Element item, java.lang.String uuid)protected NodeloadNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)protected voidloadRootCollections(CachedPubSubRepository.RootCollectionSet rootCollection)protected IAffiliationsCachednewNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<java.util.Map<tigase.xmpp.jid.BareJID,UsersAffiliation>> affiliationSupplier)protected ISubscriptionsCachednewNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<java.util.Map<tigase.xmpp.jid.BareJID,UsersSubscription>> subscriptionsSupplier)QuerynewQuery()protected voidnodeCollectionChanged(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, java.lang.String oldCollection, java.lang.String newCollection)voidqueryItems(Query query, tigase.xmpp.mam.MAMRepository.ItemHandler<Query,tigase.xmpp.mam.MAMRepository.Item> itemHandler)voidremoveFromRootCollection(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)protected voidsaveNode(Node<T> node, int iteration)protected voidserviceRemoved(tigase.xmpp.jid.BareJID userJid)voidsetDao(IPubSubDAO<T,tigase.db.DataSource,Query> dao)voidsetStatisticsPrefix(java.lang.String prefix)voidstatisticExecutedIn(long executionTime)voidupdate(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, AbstractNodeConfig nodeConfig)voidupdate(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, IAffiliations nodeAffiliations)voidupdate(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, ISubscriptions nodeSubscriptions)protected voidupdateNodeConfiguration(tigase.xmpp.jid.BareJID serviceJID, java.lang.String nodeName, tigase.form.Form config)booleanvalidateItem(tigase.xmpp.jid.BareJID serviceJID, java.lang.String node, java.lang.String id, java.lang.String publisher, tigase.xml.Element item)
-
-
-
Field Detail
-
config
@Inject protected IPubSubConfig config
-
dao
@Inject protected IPubSubDAO<T,tigase.db.DataSource,Query> dao
-
log
protected java.util.logging.Logger log
-
pubSubLogic
@Inject protected PubSubLogic pubSubLogic
-
nodes
protected Cache<CachedPubSubRepository.NodeKey,Node> nodes
-
nodesCount
protected final java.util.concurrent.atomic.AtomicLong nodesCount
-
-
Method Detail
-
isServiceAutoCreated
protected boolean isServiceAutoCreated()
-
addToRootCollection
public void addToRootCollection(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
addToRootCollectionin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
createNode
public void createNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, tigase.xmpp.jid.BareJID ownerJid, AbstractNodeConfig nodeConfig, NodeType nodeType, java.lang.String collection) throws tigase.component.exceptions.RepositoryException, PubSubException- Specified by:
createNodein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryExceptionPubSubException
-
createService
public void createService(tigase.xmpp.jid.BareJID serviceJID, boolean isPublic) throws tigase.component.exceptions.RepositoryException- Specified by:
createServicein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getServices
public java.util.List<tigase.xmpp.jid.BareJID> getServices(tigase.xmpp.jid.BareJID domain, java.lang.Boolean isPublic) throws tigase.component.exceptions.RepositoryException- Specified by:
getServicesin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
deleteNode
public void deleteNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
deleteNodein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
destroy
public void destroy()
- Specified by:
destroyin interfaceIPubSubRepository
-
everyHour
public void everyHour()
- Specified by:
everyHourin interfacetigase.stats.StatisticHolder
-
everyMinute
public void everyMinute()
- Specified by:
everyMinutein interfacetigase.stats.StatisticHolder
-
everySecond
public void everySecond()
- Specified by:
everySecondin interfacetigase.stats.StatisticHolder
-
updateNodeConfiguration
protected void updateNodeConfiguration(tigase.xmpp.jid.BareJID serviceJID, java.lang.String nodeName, tigase.form.Form config)
-
getChildNodes
public java.lang.String[] getChildNodes(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
getChildNodesin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeAffiliations
public IAffiliations getNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException
- Specified by:
getNodeAffiliationsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeConfig
public AbstractNodeConfig getNodeConfig(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException
- Specified by:
getNodeConfigin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeMeta
public INodeMeta getNodeMeta(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException
- Specified by:
getNodeMetain interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeItems
public IItems getNodeItems(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException
- Specified by:
getNodeItemsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeItems
public java.util.List<IItems.IItem> getNodeItems(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, tigase.xmpp.jid.JID requester, java.util.Date after, java.util.Date before, tigase.xmpp.rsm.RSM rsm) throws tigase.component.exceptions.ComponentException, tigase.component.exceptions.RepositoryException
- Specified by:
getNodeItemsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.ComponentExceptiontigase.component.exceptions.RepositoryException
-
getNodeSubscriptions
public ISubscriptions getNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException
- Specified by:
getNodeSubscriptionsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getNodesCount
public long getNodesCount(tigase.xmpp.jid.BareJID serviceJID) throws tigase.component.exceptions.RepositoryException- Specified by:
getNodesCountin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getPubSubDAO
public IPubSubDAO getPubSubDAO()
- Specified by:
getPubSubDAOin interfaceIPubSubRepository
-
setDao
public void setDao(IPubSubDAO<T,tigase.db.DataSource,Query> dao)
-
getRootCollection
public java.lang.String[] getRootCollection(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException- Specified by:
getRootCollectionin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getStatistics
public void getStatistics(java.lang.String name, tigase.stats.StatisticsList stats)- Specified by:
getStatisticsin interfacetigase.stats.StatisticHolder
-
getUserAffiliations
public java.util.Map<java.lang.String,UsersAffiliation> getUserAffiliations(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID jid) throws tigase.component.exceptions.RepositoryException
- Specified by:
getUserAffiliationsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getUserRoster
public java.util.Map<tigase.xmpp.jid.BareJID,tigase.xmpp.impl.roster.RosterElement> getUserRoster(tigase.xmpp.jid.BareJID owner) throws tigase.component.exceptions.RepositoryException- Specified by:
getUserRosterin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getUserSubscriptions
public java.util.Map<java.lang.String,UsersSubscription> getUserSubscriptions(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID userJid) throws tigase.component.exceptions.RepositoryException
- Specified by:
getUserSubscriptionsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
init
public void init()
- Specified by:
initin interfaceIPubSubRepository
-
initialize
public void initialize()
- Specified by:
initializein interfacetigase.kernel.beans.Initializable
-
queryItems
public void queryItems(Query query, tigase.xmpp.mam.MAMRepository.ItemHandler<Query,tigase.xmpp.mam.MAMRepository.Item> itemHandler) throws tigase.component.exceptions.RepositoryException, tigase.component.exceptions.ComponentException
- Specified by:
queryItemsin interfacetigase.xmpp.mam.MAMRepository<Query,tigase.xmpp.mam.MAMRepository.Item>- Throws:
tigase.component.exceptions.RepositoryExceptiontigase.component.exceptions.ComponentException
-
newQuery
public Query newQuery()
- Specified by:
newQueryin interfacetigase.xmpp.mam.MAMRepository<Query,tigase.xmpp.mam.MAMRepository.Item>
-
removeFromRootCollection
public void removeFromRootCollection(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
removeFromRootCollectionin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
setStatisticsPrefix
public void setStatisticsPrefix(java.lang.String prefix)
- Specified by:
setStatisticsPrefixin interfacetigase.stats.StatisticHolder
-
statisticExecutedIn
public void statisticExecutedIn(long executionTime)
- Specified by:
statisticExecutedInin interfacetigase.stats.StatisticHolder
-
update
public void update(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, AbstractNodeConfig nodeConfig) throws tigase.component.exceptions.RepositoryException, PubSubException- Specified by:
updatein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryExceptionPubSubException
-
update
public void update(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, IAffiliations nodeAffiliations) throws tigase.component.exceptions.RepositoryException- Specified by:
updatein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
update
public void update(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, ISubscriptions nodeSubscriptions) throws tigase.component.exceptions.RepositoryException- Specified by:
updatein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
deleteService
public void deleteService(tigase.xmpp.jid.BareJID userJid) throws tigase.component.exceptions.RepositoryException- Specified by:
deleteServicein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
addMAMItem
public void addMAMItem(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, java.lang.String uuid, tigase.xml.Element message, java.lang.String itemId) throws tigase.component.exceptions.RepositoryException- Specified by:
addMAMItemin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
validateItem
public boolean validateItem(tigase.xmpp.jid.BareJID serviceJID, java.lang.String node, java.lang.String id, java.lang.String publisher, tigase.xml.Element item) throws PubSubException- Specified by:
validateItemin interfaceIItems.IListnener- Throws:
PubSubException
-
itemWritten
public void itemWritten(tigase.xmpp.jid.BareJID serviceJID, java.lang.String node, java.lang.String id, java.lang.String publisher, tigase.xml.Element item, java.lang.String uuid)- Specified by:
itemWrittenin interfaceIItems.IListnener
-
itemDeleted
public void itemDeleted(tigase.xmpp.jid.BareJID serviceJID, java.lang.String node, java.lang.String id)- Specified by:
itemDeletedin interfaceIItems.IListnener
-
createKey
protected CachedPubSubRepository.NodeKey createKey(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)
-
getNode
protected Node getNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException
- Throws:
tigase.component.exceptions.RepositoryException
-
loadNode
protected Node loadNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException
- Throws:
tigase.component.exceptions.RepositoryException
-
newNodeAffiliations
protected IAffiliationsCached newNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<java.util.Map<tigase.xmpp.jid.BareJID,UsersAffiliation>> affiliationSupplier) throws tigase.component.exceptions.RepositoryException
- Throws:
tigase.component.exceptions.RepositoryException
-
newNodeSubscriptions
protected ISubscriptionsCached newNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<java.util.Map<tigase.xmpp.jid.BareJID,UsersSubscription>> subscriptionsSupplier) throws tigase.component.exceptions.RepositoryException
- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeFromCache
protected Node getNodeFromCache(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)
-
getRootCollectionSet
protected IPubSubRepository.RootCollectionSetIfc getRootCollectionSet(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException
- Throws:
tigase.component.exceptions.RepositoryException
-
loadRootCollections
protected void loadRootCollections(CachedPubSubRepository.RootCollectionSet rootCollection) throws tigase.component.exceptions.RepositoryException
- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeAndSubnodes
protected java.util.List<Node<T>> getNodeAndSubnodes(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, java.util.function.Predicate<Node<T>> filterWithSubnodes, java.util.function.Predicate<Node<T>> filter) throws tigase.component.exceptions.RepositoryException, tigase.component.exceptions.ComponentException
- Throws:
tigase.component.exceptions.RepositoryExceptiontigase.component.exceptions.ComponentException
-
hasAccessPermission
protected boolean hasAccessPermission(Node node, tigase.xmpp.jid.JID requester, PubSubLogic.Action action)
-
serviceRemoved
protected void serviceRemoved(tigase.xmpp.jid.BareJID userJid)
-
nodeCollectionChanged
protected void nodeCollectionChanged(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, java.lang.String oldCollection, java.lang.String newCollection)
-
-