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.UnregisterAwareMessageArchingPlugin 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.StringARCHIVEprotected tigase.xmpp.jid.JIDcomponentJidstatic java.lang.StringDEFAULT_SAVEprotected static java.lang.StringIDprotected booleanignorePubSubEventsFullJidstatic java.lang.StringMSG_ARCHIVE_PATHSstatic java.lang.StringMUC_SAVEstatic java.lang.StringOWNER_JIDprotected static java.lang.StringSETTINGS
-
Constructor Summary
Constructors Constructor Description MessageArchivePlugin()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddStableId(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session)voidbeforeUnregister()voidgenerateStableId(tigase.server.Packet packet)java.lang.String[]getArchivingMatchers()tigase.xmpp.jid.JIDgetComponentJid()StoreMethodgetDefaultStoreMethod(java.util.Optional<MessageArchiveVHostItemExtension> maExt)StoreMethodgetRequiredStoreMethod(java.util.Optional<MessageArchiveVHostItemExtension> maExt)StoreMucgetRequiredStoreMucMessages(tigase.xmpp.XMPPResourceConnection session)SettingsgetSettings(tigase.xmpp.jid.BareJID account, tigase.xmpp.XMPPResourceConnection session)voidinitialize()booleanisArchivingOfMixMessageEnabled()SettingsloadSettings(tigase.archive.processors.MessageArchivePlugin.RepoStringSupplier dataSupplier, tigase.archive.processors.MessageArchivePlugin.RepoStringConsumer dataConsumer, java.util.function.Supplier<java.util.Optional<tigase.vhosts.VHostItem>> vhostSupplier)SettingsloadSettings(tigase.xmpp.XMPPResourceConnection session)voidprocess(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)voidsetArchiveOffline(boolean archiveOffline)voidsetArchivingMatchers(java.lang.String[] matcherStrs)voidsetCacheSize(int cacheSize)voidsetComponentJid(tigase.xmpp.jid.JID componentJid)voidsetMamProcessors(java.util.List<AbstractMAMProcessor> mamProcessors)protected tigase.xml.Element.Matcher<tigase.xml.Element>stanzaIdMatcher(java.lang.String by)protected voiduserConnected(tigase.server.xmppsession.UserConnectedEvent event)booleanwillArchive(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)booleanwillArchive(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:
processin 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:
initializein interfacetigase.kernel.beans.Initializable
-
beforeUnregister
public void beforeUnregister()
- Specified by:
beforeUnregisterin 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:
generateStableIdin interfacetigase.server.xmppsession.SessionManager.MessageArchive
-
addStableId
public void addStableId(tigase.server.Packet packet, tigase.xmpp.XMPPResourceConnection session)- Specified by:
addStableIdin 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:
willArchivein 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
-
-