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 interface
static class
static class
static class
Nested classes/interfaces inherited from interface tigase.pubsub.repository.IPubSubRepository
IPubSubRepository.IListener, IPubSubRepository.RepositorySupplier<T>, IPubSubRepository.RootCollectionSetIfc
Nested 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 IPubSubConfig
protected IPubSubDAO<T,
tigase.db.DataSource, PubSubQuery> protected static Logger
protected Cache<CachedPubSubRepository.NodeKey,
Node> protected final AtomicLong
protected PubSubLogic
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMAMItem
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String uuid, tigase.xml.Element message, String itemId) void
addToRootCollection
(tigase.xmpp.jid.BareJID serviceJid, String nodeName) protected CachedPubSubRepository.NodeKey
void
createNode
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, tigase.xmpp.jid.BareJID ownerJid, AbstractNodeConfig nodeConfig, NodeType nodeType, String collection) void
createService
(tigase.xmpp.jid.BareJID serviceJID, boolean isPublic) void
deleteNode
(tigase.xmpp.jid.BareJID serviceJid, String nodeName) void
deleteService
(tigase.xmpp.jid.BareJID userJid) void
destroy()
void
void
void
String[]
getChildNodes
(tigase.xmpp.jid.BareJID serviceJid, String nodeName) tigase.xmpp.mam.MAMRepository.Item
getMAMItem
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String stableId) protected Node
getNodeAffiliations
(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 Node
getNodeFromCache
(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) long
getNodesCount
(tigase.xmpp.jid.BareJID serviceJID) getNodeSubscriptions
(tigase.xmpp.jid.BareJID serviceJid, String nodeName) String[]
getRootCollection
(tigase.xmpp.jid.BareJID serviceJid) protected IPubSubRepository.RootCollectionSetIfc
getRootCollectionSet
(tigase.xmpp.jid.BareJID serviceJid) List<tigase.xmpp.jid.BareJID>
getServices
(tigase.xmpp.jid.BareJID domain, Boolean isPublic) void
getStatistics
(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 boolean
hasAccessPermission
(Node node, tigase.xmpp.jid.JID requester, PubSubLogic.Action action) void
init()
void
protected boolean
void
itemDeleted
(tigase.xmpp.jid.BareJID serviceJID, String node, String id) void
itemWritten
(tigase.xmpp.jid.BareJID serviceJID, String node, String id, String publisher, tigase.xml.Element item, String uuid) protected Node
protected void
loadRootCollections
(CachedPubSubRepository.RootCollectionSet rootCollection) protected IAffiliationsCached
newNodeAffiliations
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, T nodeId, IPubSubRepository.RepositorySupplier<Map<tigase.xmpp.jid.BareJID, UsersAffiliation>> affiliationSupplier) protected ISubscriptionsCached
newNodeSubscriptions
(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 void
nodeCollectionChanged
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String oldCollection, String newCollection) void
queryItems
(PubSubQuery query, tigase.xmpp.mam.MAMRepository.ItemHandler<PubSubQuery, tigase.xmpp.mam.MAMRepository.Item> itemHandler) void
removeFromRootCollection
(tigase.xmpp.jid.BareJID serviceJid, String nodeName) protected void
protected void
serviceRemoved
(tigase.xmpp.jid.BareJID userJid) void
setDao
(IPubSubDAO<T, tigase.db.DataSource, PubSubQuery> dao) void
setStatisticsPrefix
(String prefix) void
statisticExecutedIn
(long executionTime) void
update
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, AbstractNodeConfig nodeConfig) void
update
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, IAffiliations nodeAffiliations) void
update
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, ISubscriptions nodeSubscriptions) void
updateMAMItem
(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String stableId, tigase.xml.Element message) protected void
updateNodeConfiguration
(tigase.xmpp.jid.BareJID serviceJID, String nodeName, tigase.form.Form config) boolean
validateItem
(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:
addToRootCollection
in 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:
createNode
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
PubSubException
-
createService
public void createService(tigase.xmpp.jid.BareJID serviceJID, boolean isPublic) throws tigase.component.exceptions.RepositoryException - Specified by:
createService
in 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:
getServices
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
deleteNode
public void deleteNode(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
deleteNode
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
destroy
public void destroy()- Specified by:
destroy
in interfaceIPubSubRepository
-
everyHour
public void everyHour()- Specified by:
everyHour
in interfacetigase.stats.StatisticHolder
-
everyMinute
public void everyMinute()- Specified by:
everyMinute
in interfacetigase.stats.StatisticHolder
-
everySecond
public void everySecond()- Specified by:
everySecond
in 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:
getChildNodes
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeAffiliations
public IAffiliations getNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
getNodeAffiliations
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeConfig
public AbstractNodeConfig getNodeConfig(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
getNodeConfig
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeMeta
public INodeMeta getNodeMeta(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
getNodeMeta
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeItems
public IItems getNodeItems(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
getNodeItems
in 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:
getNodeItems
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.ComponentException
tigase.component.exceptions.RepositoryException
-
getNodeSubscriptions
public ISubscriptions getNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, String nodeName) throws tigase.component.exceptions.RepositoryException - Specified by:
getNodeSubscriptions
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
getNodesCount
public long getNodesCount(tigase.xmpp.jid.BareJID serviceJID) throws tigase.component.exceptions.RepositoryException - Specified by:
getNodesCount
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
getPubSubDAO
- Specified by:
getPubSubDAO
in interfaceIPubSubRepository
-
setDao
-
getRootCollection
public String[] getRootCollection(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException - Specified by:
getRootCollection
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
getStatistics
- Specified by:
getStatistics
in 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:
getUserAffiliations
in 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:
getUserRoster
in 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:
getUserSubscriptions
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
init
public void init()- Specified by:
init
in interfaceIPubSubRepository
-
initialize
public void initialize()- Specified by:
initialize
in 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:
queryItems
in interfacetigase.xmpp.mam.MAMRepository<PubSubQuery,
tigase.xmpp.mam.MAMRepository.Item> - Throws:
tigase.component.exceptions.RepositoryException
tigase.component.exceptions.ComponentException
-
newQuery
- Specified by:
newQuery
in interfacetigase.xmpp.mam.MAMRepository<PubSubQuery,
tigase.xmpp.mam.MAMRepository.Item>
-
newQuery
- Specified by:
newQuery
in 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:
removeFromRootCollection
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
setStatisticsPrefix
- Specified by:
setStatisticsPrefix
in interfacetigase.stats.StatisticHolder
-
statisticExecutedIn
public void statisticExecutedIn(long executionTime) - Specified by:
statisticExecutedIn
in interfacetigase.stats.StatisticHolder
-
update
public void update(tigase.xmpp.jid.BareJID serviceJid, String nodeName, AbstractNodeConfig nodeConfig) throws tigase.component.exceptions.RepositoryException, PubSubException - Specified by:
update
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
PubSubException
-
update
public void update(tigase.xmpp.jid.BareJID serviceJid, String nodeName, IAffiliations nodeAffiliations) throws tigase.component.exceptions.RepositoryException - Specified by:
update
in 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:
update
in interfaceIPubSubRepository
- Throws:
tigase.component.exceptions.RepositoryException
-
deleteService
public void deleteService(tigase.xmpp.jid.BareJID userJid) throws tigase.component.exceptions.RepositoryException - Specified by:
deleteService
in 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:
addMAMItem
in 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:
getMAMItem
in 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:
updateMAMItem
in 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:
validateItem
in 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:
itemWritten
in interfaceIItems.IListnener
-
itemDeleted
- Specified by:
itemDeleted
in 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.RepositoryException
tigase.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
-