Package tigase.pubsub.repository.cached
Class CachedPubSubRepository<T>
java.lang.Object
tigase.pubsub.repository.cached.CachedPubSubRepository<T>
- All Implemented Interfaces:
tigase.kernel.beans.Initializable,IExtenedMAMPubSubRepository,IItems.IListnener,IPubSubRepository,tigase.stats.StatisticHolder,tigase.xmpp.mam.MAMRepository<PubSubQuery,tigase.xmpp.mam.MAMRepository.Item>
@Bean(name="repository",
parent=PubSubComponent.class,
active=true)
public class CachedPubSubRepository<T>
extends Object
implements IPubSubRepository, IExtenedMAMPubSubRepository, tigase.stats.StatisticHolder, tigase.kernel.beans.Initializable, IItems.IListnener
Implementation 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 ClassesModifier and TypeClassDescriptionstatic interfacestatic classstatic classstatic classNested classes/interfaces inherited from interface tigase.pubsub.repository.IPubSubRepository
IPubSubRepository.IListener, IPubSubRepository.RepositorySupplier<T>, IPubSubRepository.RootCollectionSetIfcNested classes/interfaces inherited from interface tigase.xmpp.mam.MAMRepository
tigase.xmpp.mam.MAMRepository.Item, tigase.xmpp.mam.MAMRepository.ItemHandler<Q extends tigase.xmpp.mam.Query,I extends tigase.xmpp.mam.MAMRepository.Item> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected IPubSubConfigprotected IPubSubDAO<T, tigase.db.DataSource, PubSubQuery> protected static Loggerprotected Cache<CachedPubSubRepository.NodeKey, Node> protected final AtomicLongprotected PubSubLogic -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMAMItem(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String uuid, tigase.xml.Element message, String itemId) voidaddToRootCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName) protected CachedPubSubRepository.NodeKeyvoidcreateNode(tigase.xmpp.jid.BareJID serviceJid, String nodeName, tigase.xmpp.jid.BareJID ownerJid, AbstractNodeConfig nodeConfig, NodeType nodeType, String collection) voidcreateService(tigase.xmpp.jid.BareJID serviceJID, boolean isPublic) voiddeleteNode(tigase.xmpp.jid.BareJID serviceJid, String nodeName) voiddeleteService(tigase.xmpp.jid.BareJID userJid) voiddestroy()voidvoidvoidString[]getChildNodes(tigase.xmpp.jid.BareJID serviceJid, String nodeName) tigase.xmpp.mam.MAMRepository.ItemgetMAMItem(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String stableId) protected NodegetNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, String nodeName) getNodeAndSubnodes(tigase.xmpp.jid.BareJID serviceJid, String nodeName, Predicate<Node<T>> filterWithSubnodes, Predicate<Node<T>> filter) getNodeConfig(tigase.xmpp.jid.BareJID serviceJid, String nodeName) protected NodegetNodeFromCache(tigase.xmpp.jid.BareJID serviceJid, String nodeName) getNodeItems(tigase.xmpp.jid.BareJID serviceJid, String nodeName) getNodeItems(tigase.xmpp.jid.BareJID serviceJid, String nodeName, tigase.xmpp.jid.JID requester, Date after, Date before, tigase.xmpp.rsm.RSM rsm) getNodeMeta(tigase.xmpp.jid.BareJID serviceJid, String nodeName) longgetNodesCount(tigase.xmpp.jid.BareJID serviceJID) getNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, String nodeName) String[]getRootCollection(tigase.xmpp.jid.BareJID serviceJid) protected IPubSubRepository.RootCollectionSetIfcgetRootCollectionSet(tigase.xmpp.jid.BareJID serviceJid) List<tigase.xmpp.jid.BareJID> getServices(tigase.xmpp.jid.BareJID domain, Boolean isPublic) voidgetStatistics(String name, tigase.stats.StatisticsList stats) getUserAffiliations(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID jid) Map<tigase.xmpp.jid.BareJID, tigase.xmpp.impl.roster.RosterElement> getUserRoster(tigase.xmpp.jid.BareJID owner) getUserSubscriptions(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID userJid) protected booleanhasAccessPermission(Node node, tigase.xmpp.jid.JID requester, PubSubLogic.Action action) voidinit()voidprotected booleanvoiditemDeleted(tigase.xmpp.jid.BareJID serviceJID, String node, String id) voiditemWritten(tigase.xmpp.jid.BareJID serviceJID, String node, String id, String publisher, tigase.xml.Element item, String uuid) protected Nodeprotected voidloadRootCollections(CachedPubSubRepository.RootCollectionSet rootCollection) protected IAffiliationsCachednewNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<Map<tigase.xmpp.jid.BareJID, UsersAffiliation>> affiliationSupplier) protected ISubscriptionsCachednewNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<Map<tigase.xmpp.jid.BareJID, UsersSubscription>> subscriptionsSupplier) newQuery()newQuery(tigase.xmpp.jid.BareJID jid) protected voidnodeCollectionChanged(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String oldCollection, String newCollection) voidqueryItems(PubSubQuery query, tigase.xmpp.mam.MAMRepository.ItemHandler<PubSubQuery, tigase.xmpp.mam.MAMRepository.Item> itemHandler) voidremoveFromRootCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName) protected voidprotected voidserviceRemoved(tigase.xmpp.jid.BareJID userJid) voidsetDao(IPubSubDAO<T, tigase.db.DataSource, PubSubQuery> dao) voidsetStatisticsPrefix(String prefix) voidstatisticExecutedIn(long executionTime) voidupdate(tigase.xmpp.jid.BareJID serviceJid, String nodeName, AbstractNodeConfig nodeConfig) voidupdate(tigase.xmpp.jid.BareJID serviceJid, String nodeName, IAffiliations nodeAffiliations) voidupdate(tigase.xmpp.jid.BareJID serviceJid, String nodeName, ISubscriptions nodeSubscriptions) voidupdateMAMItem(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String stableId, tigase.xml.Element message) protected voidupdateNodeConfiguration(tigase.xmpp.jid.BareJID serviceJID, String nodeName, tigase.form.Form config) booleanvalidateItem(tigase.xmpp.jid.BareJID serviceJID, String node, String id, String publisher, tigase.xml.Element item)
-
Field Details
-
config
-
dao
-
log
-
pubSubLogic
-
nodes
-
nodesCount
-
-
Constructor Details
-
CachedPubSubRepository
public CachedPubSubRepository()
-
-
Method Details
-
isServiceAutoCreated
protected boolean isServiceAutoCreated() -
addToRootCollection
public void addToRootCollection(tigase.xmpp.jid.BareJID serviceJid, 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, String nodeName, tigase.xmpp.jid.BareJID ownerJid, AbstractNodeConfig nodeConfig, NodeType nodeType, 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 List<tigase.xmpp.jid.BareJID> getServices(tigase.xmpp.jid.BareJID domain, 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, 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, String nodeName, tigase.form.Form config) -
getChildNodes
public String[] getChildNodes(tigase.xmpp.jid.BareJID serviceJid, 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, 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, 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, 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, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
getNodeItemsin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeItems
public List<IItems.IItem> getNodeItems(tigase.xmpp.jid.BareJID serviceJid, String nodeName, tigase.xmpp.jid.JID requester, Date after, 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, 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
- Specified by:
getPubSubDAOin interfaceIPubSubRepository
-
setDao
-
getRootCollection
public String[] getRootCollection(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException - Specified by:
getRootCollectionin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getStatistics
- Specified by:
getStatisticsin interfacetigase.stats.StatisticHolder
-
getUserAffiliations
public Map<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 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 Map<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(PubSubQuery query, tigase.xmpp.mam.MAMRepository.ItemHandler<PubSubQuery, tigase.xmpp.mam.MAMRepository.Item> itemHandler) throws tigase.component.exceptions.RepositoryException, tigase.component.exceptions.ComponentException- Specified by:
queryItemsin interfacetigase.xmpp.mam.MAMRepository<PubSubQuery,tigase.xmpp.mam.MAMRepository.Item> - Throws:
tigase.component.exceptions.RepositoryExceptiontigase.component.exceptions.ComponentException
-
newQuery
- Specified by:
newQueryin interfacetigase.xmpp.mam.MAMRepository<PubSubQuery,tigase.xmpp.mam.MAMRepository.Item>
-
newQuery
- Specified by:
newQueryin interfacetigase.xmpp.mam.MAMRepository<PubSubQuery,tigase.xmpp.mam.MAMRepository.Item>
-
removeFromRootCollection
public void removeFromRootCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
removeFromRootCollectionin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
setStatisticsPrefix
- 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, 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, 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, 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, String nodeName, String uuid, tigase.xml.Element message, String itemId) throws tigase.component.exceptions.RepositoryException - Specified by:
addMAMItemin interfaceIPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
getMAMItem
public tigase.xmpp.mam.MAMRepository.Item getMAMItem(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String stableId) throws tigase.component.exceptions.RepositoryException - Specified by:
getMAMItemin interfaceIExtenedMAMPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
updateMAMItem
public void updateMAMItem(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String stableId, tigase.xml.Element message) throws tigase.component.exceptions.RepositoryException - Specified by:
updateMAMItemin interfaceIExtenedMAMPubSubRepository- Throws:
tigase.component.exceptions.RepositoryException
-
validateItem
public boolean validateItem(tigase.xmpp.jid.BareJID serviceJID, String node, String id, String publisher, tigase.xml.Element item) throws PubSubException - Specified by:
validateItemin interfaceIItems.IListnener- Throws:
PubSubException
-
itemWritten
public void itemWritten(tigase.xmpp.jid.BareJID serviceJID, String node, String id, String publisher, tigase.xml.Element item, String uuid) - Specified by:
itemWrittenin interfaceIItems.IListnener
-
itemDeleted
- Specified by:
itemDeletedin interfaceIItems.IListnener
-
createKey
protected CachedPubSubRepository.NodeKey createKey(tigase.xmpp.jid.BareJID serviceJid, String nodeName) -
getNode
protected Node getNode(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Throws:
tigase.component.exceptions.RepositoryException
-
loadNode
protected Node loadNode(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Throws:
tigase.component.exceptions.RepositoryException
-
newNodeAffiliations
protected IAffiliationsCached newNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<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, String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<Map<tigase.xmpp.jid.BareJID, UsersSubscription>> subscriptionsSupplier) throws tigase.component.exceptions.RepositoryException- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeFromCache
-
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 List<Node<T>> getNodeAndSubnodes(tigase.xmpp.jid.BareJID serviceJid, String nodeName, Predicate<Node<T>> filterWithSubnodes, 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
-
saveNode
protected void saveNode(Node<T> node, int iteration) throws tigase.component.exceptions.RepositoryException - Throws:
tigase.component.exceptions.RepositoryException
-