Package tigase.archive.processors
Class MessageArchivePlugin
- java.lang.Object
-
- tigase.xmpp.XMPPProcessor
-
- tigase.xmpp.impl.annotation.AnnotatedXMPPProcessor
-
- tigase.archive.processors.MessageArchivePlugin
-
- All Implemented Interfaces:
java.lang.Comparable<tigase.xmpp.XMPPImplIfc>
,tigase.kernel.beans.Initializable
,tigase.kernel.beans.UnregisterAware
,tigase.server.xmppsession.SessionManager.MessageArchive
,tigase.xmpp.XMPPImplIfc
,tigase.xmpp.XMPPProcessorConcurrencyAwareIfc
,tigase.xmpp.XMPPProcessorIfc
@Bean(name="message-archive", parents={Xep0136MessageArchivingProcessor.class,Xep0313MessageArchiveManagementProcessor.class,MAM2Processor.class}, active=true, exportable=true) public class MessageArchivePlugin extends tigase.xmpp.impl.annotation.AnnotatedXMPPProcessor implements tigase.xmpp.XMPPProcessorIfc, tigase.server.xmppsession.SessionManager.MessageArchive, tigase.kernel.beans.Initializable, tigase.kernel.beans.UnregisterAware
MessageArchingPlugin is implementation of plugin which forwards messages with type set to "chat" to MessageArchivingComponent to store this messages in message archive.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ARCHIVE
protected tigase.xmpp.jid.JID
componentJid
static java.lang.String
DEFAULT_SAVE
protected static java.lang.String
ID
protected boolean
ignorePubSubEventsFullJid
static java.lang.String
MSG_ARCHIVE_PATHS
static java.lang.String
MUC_SAVE
static java.lang.String
OWNER_JID
protected static java.lang.String
SETTINGS
-
Constructor Summary
Constructors Constructor Description MessageArchivePlugin()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addStableId(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session)
void
beforeUnregister()
void
generateStableId(tigase.server.Packet packet)
java.lang.String[]
getArchivingMatchers()
tigase.xmpp.jid.JID
getComponentJid()
StoreMethod
getDefaultStoreMethod(java.util.Optional<MessageArchiveVHostItemExtension> maExt)
StoreMethod
getRequiredStoreMethod(java.util.Optional<MessageArchiveVHostItemExtension> maExt)
StoreMuc
getRequiredStoreMucMessages(tigase.xmpp.XMPPResourceConnection session)
Settings
getSettings(tigase.xmpp.jid.BareJID account, tigase.xmpp.XMPPResourceConnection session)
void
initialize()
boolean
isArchivingOfMixMessageEnabled()
Settings
loadSettings(tigase.archive.processors.MessageArchivePlugin.RepoStringSupplier dataSupplier, tigase.archive.processors.MessageArchivePlugin.RepoStringConsumer dataConsumer, java.util.function.Supplier<java.util.Optional<tigase.vhosts.VHostItem>> vhostSupplier)
Settings
loadSettings(tigase.xmpp.XMPPResourceConnection session)
void
process(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session, tigase.db.NonAuthUserRepository repo, java.util.Queue<tigase.server.Packet> results, java.util.Map<java.lang.String,java.lang.Object> settings)
void
setArchiveOffline(boolean archiveOffline)
void
setArchivingMatchers(java.lang.String[] matcherStrs)
void
setCacheSize(int cacheSize)
void
setComponentJid(tigase.xmpp.jid.JID componentJid)
void
setMamProcessors(java.util.List<AbstractMAMProcessor> mamProcessors)
protected tigase.xml.Element.Matcher<tigase.xml.Element>
stanzaIdMatcher(java.lang.String by)
protected void
userConnected(tigase.server.xmppsession.UserConnectedEvent event)
boolean
willArchive(tigase.server.Packet packet, tigase.xmpp.jid.JID buddyJid, Settings settings, java.util.function.Supplier<java.util.Optional<tigase.vhosts.VHostItem>> vhostItemSupplier, java.util.function.Predicate<tigase.xmpp.jid.JID> isInRoster)
boolean
willArchive(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session)
-
Methods inherited from class tigase.xmpp.impl.annotation.AnnotatedXMPPProcessor
id, supDiscoFeatures, supElementNamePaths, supNamespaces, supStreamFeatures, supTypes
-
Methods inherited from class tigase.xmpp.XMPPProcessor
canHandle, compareTo, concurrentQueuesNo, getComponentInfo, getInstance, getQueueSize, getStatistics, getThreadsNo, init, toString
-
-
-
-
Field Detail
-
DEFAULT_SAVE
public static final java.lang.String DEFAULT_SAVE
- See Also:
- Constant Field Values
-
MUC_SAVE
public static final java.lang.String MUC_SAVE
- See Also:
- Constant Field Values
-
OWNER_JID
public static final java.lang.String OWNER_JID
- See Also:
- Constant Field Values
-
ARCHIVE
public static final java.lang.String ARCHIVE
- See Also:
- Constant Field Values
-
MSG_ARCHIVE_PATHS
public static final java.lang.String MSG_ARCHIVE_PATHS
- See Also:
- Constant Field Values
-
ID
protected static final java.lang.String ID
- See Also:
- Constant Field Values
-
SETTINGS
protected static final java.lang.String SETTINGS
- See Also:
- Constant Field Values
-
componentJid
@ConfigField(desc="Message archiving component JID", alias="component-jid") protected tigase.xmpp.jid.JID componentJid
-
ignorePubSubEventsFullJid
@ConfigField(desc="Ignore PubSub notifications sent to full JID", alias="ignore-pubsub-events-full-jid") protected boolean ignorePubSubEventsFullJid
-
-
Method Detail
-
isArchivingOfMixMessageEnabled
public boolean isArchivingOfMixMessageEnabled()
-
setArchiveOffline
public void setArchiveOffline(boolean archiveOffline)
-
setCacheSize
public void setCacheSize(int cacheSize)
-
setMamProcessors
public void setMamProcessors(java.util.List<AbstractMAMProcessor> mamProcessors)
-
process
public void process(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session, tigase.db.NonAuthUserRepository repo, java.util.Queue<tigase.server.Packet> results, java.util.Map<java.lang.String,java.lang.Object> settings) throws tigase.xmpp.XMPPException
- Specified by:
process
in interfacetigase.xmpp.XMPPProcessorIfc
- Throws:
tigase.xmpp.XMPPException
-
getArchivingMatchers
public java.lang.String[] getArchivingMatchers()
-
setArchivingMatchers
public void setArchivingMatchers(java.lang.String[] matcherStrs)
-
getComponentJid
public tigase.xmpp.jid.JID getComponentJid()
-
setComponentJid
public void setComponentJid(tigase.xmpp.jid.JID componentJid)
-
getDefaultStoreMethod
public StoreMethod getDefaultStoreMethod(java.util.Optional<MessageArchiveVHostItemExtension> maExt)
-
getRequiredStoreMethod
public StoreMethod getRequiredStoreMethod(java.util.Optional<MessageArchiveVHostItemExtension> maExt)
-
getSettings
public Settings getSettings(tigase.xmpp.jid.BareJID account, tigase.xmpp.XMPPResourceConnection session) throws tigase.xmpp.NotAuthorizedException
- Throws:
tigase.xmpp.NotAuthorizedException
-
getRequiredStoreMucMessages
public StoreMuc getRequiredStoreMucMessages(tigase.xmpp.XMPPResourceConnection session)
-
initialize
public void initialize()
- Specified by:
initialize
in interfacetigase.kernel.beans.Initializable
-
beforeUnregister
public void beforeUnregister()
- Specified by:
beforeUnregister
in interfacetigase.kernel.beans.UnregisterAware
-
userConnected
@HandleEvent protected void userConnected(tigase.server.xmppsession.UserConnectedEvent event)
-
loadSettings
public Settings loadSettings(tigase.xmpp.XMPPResourceConnection session) throws tigase.xmpp.NotAuthorizedException
- Throws:
tigase.xmpp.NotAuthorizedException
-
loadSettings
public Settings loadSettings(tigase.archive.processors.MessageArchivePlugin.RepoStringSupplier dataSupplier, tigase.archive.processors.MessageArchivePlugin.RepoStringConsumer dataConsumer, java.util.function.Supplier<java.util.Optional<tigase.vhosts.VHostItem>> vhostSupplier) throws tigase.xmpp.NotAuthorizedException
- Throws:
tigase.xmpp.NotAuthorizedException
-
generateStableId
public void generateStableId(tigase.server.Packet packet)
- Specified by:
generateStableId
in interfacetigase.server.xmppsession.SessionManager.MessageArchive
-
addStableId
public void addStableId(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session)
- Specified by:
addStableId
in interfacetigase.server.xmppsession.SessionManager.MessageArchive
-
stanzaIdMatcher
protected tigase.xml.Element.Matcher<tigase.xml.Element> stanzaIdMatcher(java.lang.String by)
-
willArchive
public boolean willArchive(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session) throws tigase.xmpp.NotAuthorizedException
- Specified by:
willArchive
in interfacetigase.server.xmppsession.SessionManager.MessageArchive
- Throws:
tigase.xmpp.NotAuthorizedException
-
willArchive
public boolean willArchive(tigase.server.Packet packet, tigase.xmpp.jid.JID buddyJid, Settings settings, java.util.function.Supplier<java.util.Optional<tigase.vhosts.VHostItem>> vhostItemSupplier, java.util.function.Predicate<tigase.xmpp.jid.JID> isInRoster) throws tigase.xmpp.NotAuthorizedException
- Throws:
tigase.xmpp.NotAuthorizedException
-
-