Package tigase.pubsub.repository.cached
Class CachedPubSubRepository<T>
- java.lang.Object
-
- tigase.pubsub.repository.cached.CachedPubSubRepository<T>
-
- All Implemented Interfaces:
tigase.kernel.beans.Initializable,IPubSubRepository,tigase.stats.StatisticHolder,tigase.xmpp.mam.MAMRepository<Query,IPubSubRepository.Item>
@Bean(name="pubsubRepository", parent=PubSubComponent.class, active=true) public class CachedPubSubRepository<T> extends java.lang.Object implements IPubSubRepository, tigase.stats.StatisticHolder, tigase.kernel.beans.InitializableImplementation 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 classCachedPubSubRepository.NodeKeystatic classCachedPubSubRepository.RootCollectionSet-
Nested classes/interfaces inherited from interface tigase.pubsub.repository.IPubSubRepository
IPubSubRepository.Item, IPubSubRepository.RootCollectionSetIfc
-
-
Field Summary
Fields Modifier and Type Field Description protected PubSubConfigconfigprotected IPubSubDAO<T,tigase.db.DataSource,Query>daoprotected java.util.logging.Loggerlogprotected Logiclogicstatic longMAX_WRITE_DELAYprotected java.util.Map<CachedPubSubRepository.NodeKey,Node>nodesprotected java.util.concurrent.atomic.AtomicLongnodesCount
-
Constructor Summary
Constructors Constructor Description CachedPubSubRepository()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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)voiddeleteNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)voiddestroy()voideveryHour()voideveryMinute()voideverySecond()voidforgetConfiguration(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)java.util.Collection<Node>getAllNodes()java.lang.String[]getBuddyGroups(tigase.xmpp.jid.BareJID owner, tigase.xmpp.jid.BareJID bareJid)java.lang.StringgetBuddySubscription(tigase.xmpp.jid.BareJID owner, tigase.xmpp.jid.BareJID buddy)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)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)voidgetStatistics(java.lang.String name, tigase.stats.StatisticsList stats)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)voidinit()voidinitialize()protected voidloadRootCollections(CachedPubSubRepository.RootCollectionSet rootCollection)QuerynewQuery()protected voidnodeCollectionChanged(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, java.lang.String oldCollection, java.lang.String newCollection)voidonUserRemoved(tigase.xmpp.jid.BareJID userJid)voidqueryItems(Query query, tigase.xmpp.mam.MAMRepository.ItemHandler<Query,IPubSubRepository.Item> itemHandler)voidremoveFromRootCollection(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)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 voiduserRemoved(tigase.xmpp.jid.BareJID userJid)protected NodeSubscriptionswrapNodeSubscriptions(NodeSubscriptions nodeSubscriptions)
-
-
-
Field Detail
-
MAX_WRITE_DELAY
public static final long MAX_WRITE_DELAY
- See Also:
- Constant Field Values
-
config
@Inject protected PubSubConfig config
-
dao
@Inject protected IPubSubDAO<T,tigase.db.DataSource,Query> dao
-
log
protected java.util.logging.Logger log
-
logic
@Inject protected Logic logic
-
nodes
protected java.util.Map<CachedPubSubRepository.NodeKey,Node> nodes
-
nodesCount
protected final java.util.concurrent.atomic.AtomicLong nodesCount
-
-
Method Detail
-
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- Specified by:
createNodein 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
-
forgetConfiguration
public void forgetConfiguration(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
forgetConfigurationin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getAllNodes
public java.util.Collection<Node> getAllNodes()
-
getBuddyGroups
public java.lang.String[] getBuddyGroups(tigase.xmpp.jid.BareJID owner, tigase.xmpp.jid.BareJID bareJid) throws tigase.component.exceptions.RepositoryException- Specified by:
getBuddyGroupsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getBuddySubscription
public java.lang.String getBuddySubscription(tigase.xmpp.jid.BareJID owner, tigase.xmpp.jid.BareJID buddy) throws tigase.component.exceptions.RepositoryException- Specified by:
getBuddySubscriptionin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
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
-
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
-
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,IPubSubRepository.Item> itemHandler) throws tigase.component.exceptions.RepositoryException, tigase.component.exceptions.ComponentException
- Specified by:
queryItemsin interfacetigase.xmpp.mam.MAMRepository<Query,IPubSubRepository.Item>- Throws:
tigase.component.exceptions.RepositoryExceptiontigase.component.exceptions.ComponentException
-
newQuery
public Query newQuery()
- Specified by:
newQueryin interfacetigase.xmpp.mam.MAMRepository<Query,IPubSubRepository.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- Specified by:
updatein interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
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
-
onUserRemoved
public void onUserRemoved(tigase.xmpp.jid.BareJID userJid) throws tigase.component.exceptions.RepositoryException- Specified by:
onUserRemovedin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
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
-
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)
-
userRemoved
protected void userRemoved(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)
-
wrapNodeSubscriptions
protected NodeSubscriptions wrapNodeSubscriptions(NodeSubscriptions nodeSubscriptions)
-
-