Package tigase.pubsub.cluster
Class ClusteredNodeStrategy
- java.lang.Object
-
- tigase.pubsub.cluster.AbstractStrategy
-
- tigase.pubsub.cluster.ClusteredNodeStrategy
-
- All Implemented Interfaces:
tigase.kernel.beans.Initializable,tigase.kernel.beans.UnregisterAware,StrategyIfc
public class ClusteredNodeStrategy extends AbstractStrategy implements StrategyIfc
ClusteredNodeStrategy - all pubsub nodes are shared between all cluster nodes, which implies forwarding of packet information across the cluster with the exception of create/remove operation on nodes (to avoid race conditions).- Author:
- andrzej
-
-
Field Summary
Fields Modifier and Type Field Description static String[]FORWARD_ELEMENTSprotected ThreadLocal<ArrayDeque<tigase.xml.Element>>nodesModifications-
Fields inherited from class tigase.pubsub.cluster.AbstractStrategy
cl_controller, config, eventBus, localNodeJid, NODE_ATTR, nodeConfigureElemNames, PUBSUB_PATH, pubSubComponent
-
-
Constructor Summary
Constructors Constructor Description ClusteredNodeStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanfilterOutPacket(tigase.server.Packet packet)List<tigase.xmpp.jid.JID>getNodesForPacket(tigase.server.Packet packet)booleanisLocalNode(tigase.xmpp.jid.BareJID serviceJid, String node)booleanisOnlineLocally(tigase.xmpp.jid.JID jid)voidnodeAddedToCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String collection)voidnodeAddedToRootCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName)voidnodeAffiliationsChanged(tigase.xmpp.jid.BareJID serviceJid, String nodeName, Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersAffiliation> changedAffiliations)voidnodeConfigurationChanged(tigase.xmpp.jid.BareJID serviceJid, String nodeName)voidnodeRemovedFromCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String collection)voidnodeRemovedFromRootCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName)voidnodeSubscriptionsChanged(tigase.xmpp.jid.BareJID serviceJid, String nodeName, Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersSubscription> changedSubscriptions)voidnotifyNodeConfigurationChanges()voidonItemPublishedEvent(tigase.pubsub.modules.PublishItemModule.ItemPublishedEvent event)voidonItemRetractedEvent(tigase.pubsub.modules.RetractItemModule.ItemRetractedEvent event)voidpacketProcessed()booleansendException(tigase.server.Packet packet, tigase.component.exceptions.ComponentException ex)voiduserRemoved(tigase.xmpp.jid.BareJID serviceJid)tigase.pubsub.AbstractNodeConfigwrapNodeConfig(tigase.xmpp.jid.BareJID serviceJid, String nodeName, tigase.pubsub.AbstractNodeConfig config)tigase.pubsub.repository.cached.NodeSubscriptionswrapNodeSubscriptions(tigase.pubsub.repository.NodeSubscriptions nodeSubscriptions)-
Methods inherited from class tigase.pubsub.cluster.AbstractStrategy
beforeUnregister, getLocalNodeJid, getNodeForHashCode, getNodeForServiceJid, getNodesConnected, getNodesConnectedWithLocal, initialize, isNodeConfigure, nodeConnected, nodeDisconnected, prepareCommandData, setClusterController, setConfig, setLocalNodeJid, setPubSubComponent
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface tigase.pubsub.cluster.StrategyIfc
getLocalNodeJid, getNodesConnected, getNodesConnectedWithLocal, nodeConnected, nodeDisconnected, setClusterController, setConfig, setPubSubComponent
-
-
-
-
Field Detail
-
FORWARD_ELEMENTS
public static final String[] FORWARD_ELEMENTS
-
nodesModifications
protected final ThreadLocal<ArrayDeque<tigase.xml.Element>> nodesModifications
-
-
Method Detail
-
filterOutPacket
public boolean filterOutPacket(tigase.server.Packet packet)
- Specified by:
filterOutPacketin interfaceStrategyIfc
-
getNodesForPacket
public List<tigase.xmpp.jid.JID> getNodesForPacket(tigase.server.Packet packet) throws tigase.pubsub.exceptions.PubSubException
- Specified by:
getNodesForPacketin interfaceStrategyIfc- Throws:
tigase.pubsub.exceptions.PubSubException
-
isLocalNode
public boolean isLocalNode(tigase.xmpp.jid.BareJID serviceJid, String node)- Specified by:
isLocalNodein interfaceStrategyIfc
-
nodeAddedToCollection
public void nodeAddedToCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String collection)- Specified by:
nodeAddedToCollectionin interfaceStrategyIfc
-
nodeAddedToRootCollection
public void nodeAddedToRootCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName)- Specified by:
nodeAddedToRootCollectionin interfaceStrategyIfc
-
nodeRemovedFromCollection
public void nodeRemovedFromCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName, String collection)- Specified by:
nodeRemovedFromCollectionin interfaceStrategyIfc
-
nodeRemovedFromRootCollection
public void nodeRemovedFromRootCollection(tigase.xmpp.jid.BareJID serviceJid, String nodeName)- Specified by:
nodeRemovedFromRootCollectionin interfaceStrategyIfc
-
nodeConfigurationChanged
public void nodeConfigurationChanged(tigase.xmpp.jid.BareJID serviceJid, String nodeName)- Specified by:
nodeConfigurationChangedin interfaceStrategyIfc
-
nodeAffiliationsChanged
public void nodeAffiliationsChanged(tigase.xmpp.jid.BareJID serviceJid, String nodeName, Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersAffiliation> changedAffiliations)- Specified by:
nodeAffiliationsChangedin interfaceStrategyIfc
-
nodeSubscriptionsChanged
public void nodeSubscriptionsChanged(tigase.xmpp.jid.BareJID serviceJid, String nodeName, Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersSubscription> changedSubscriptions)- Specified by:
nodeSubscriptionsChangedin interfaceStrategyIfc
-
notifyNodeConfigurationChanges
public void notifyNodeConfigurationChanges()
-
onItemPublishedEvent
public void onItemPublishedEvent(tigase.pubsub.modules.PublishItemModule.ItemPublishedEvent event)
- Overrides:
onItemPublishedEventin classAbstractStrategy
-
onItemRetractedEvent
public void onItemRetractedEvent(tigase.pubsub.modules.RetractItemModule.ItemRetractedEvent event)
- Overrides:
onItemRetractedEventin classAbstractStrategy
-
sendException
public boolean sendException(tigase.server.Packet packet, tigase.component.exceptions.ComponentException ex)- Specified by:
sendExceptionin interfaceStrategyIfc- Overrides:
sendExceptionin classAbstractStrategy
-
isOnlineLocally
public boolean isOnlineLocally(tigase.xmpp.jid.JID jid)
- Specified by:
isOnlineLocallyin interfaceStrategyIfc
-
wrapNodeConfig
public tigase.pubsub.AbstractNodeConfig wrapNodeConfig(tigase.xmpp.jid.BareJID serviceJid, String nodeName, tigase.pubsub.AbstractNodeConfig config)- Specified by:
wrapNodeConfigin interfaceStrategyIfc- Overrides:
wrapNodeConfigin classAbstractStrategy
-
wrapNodeSubscriptions
public tigase.pubsub.repository.cached.NodeSubscriptions wrapNodeSubscriptions(tigase.pubsub.repository.NodeSubscriptions nodeSubscriptions)
- Specified by:
wrapNodeSubscriptionsin interfaceStrategyIfc- Overrides:
wrapNodeSubscriptionsin classAbstractStrategy
-
packetProcessed
public void packetProcessed()
- Specified by:
packetProcessedin interfaceStrategyIfc- Overrides:
packetProcessedin classAbstractStrategy
-
userRemoved
public void userRemoved(tigase.xmpp.jid.BareJID serviceJid)
- Specified by:
userRemovedin interfaceStrategyIfc
-
-