Class JDBCUnifiedArchiveRepository

  • All Implemented Interfaces:
    tigase.archive.db.MessageArchiveRepository<QueryCriteria,​tigase.db.DataRepository>, UnifiedArchiveRepository<tigase.db.DataRepository>, tigase.db.DataSourceAware<tigase.db.DataRepository>, tigase.db.util.RepositoryVersionAware, tigase.xmpp.mam.MAMRepository<QueryCriteria,​tigase.xmpp.mam.MAMRepository.Item>

    public class JDBCUnifiedArchiveRepository
    extends tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
    implements UnifiedArchiveRepository<tigase.db.DataRepository>, tigase.db.util.RepositoryVersionAware
    Extended JDBCMessageArchivingRepository class to add unique features required for Unified Archive to work
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  JDBCUnifiedArchiveRepository.Item  
      static class  JDBCUnifiedArchiveRepository.RecentItem  
      • Nested classes/interfaces inherited from interface tigase.xmpp.mam.MAMRepository

        tigase.xmpp.mam.MAMRepository.ItemHandler<Q extends tigase.xmpp.mam.Query,​I extends tigase.xmpp.mam.MAMRepository.Item>
      • Nested classes/interfaces inherited from interface tigase.archive.db.MessageArchiveRepository

        tigase.archive.db.MessageArchiveRepository.CollectionHandler<Q extends tigase.xmpp.mam.Query>, tigase.archive.db.MessageArchiveRepository.Direction
      • Nested classes/interfaces inherited from interface tigase.db.util.RepositoryVersionAware

        tigase.db.util.RepositoryVersionAware.SchemaVersion
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String OFFLINE_STORE_KEY  
      • Fields inherited from class tigase.archive.db.JDBCMessageArchiveRepository

        ADD_MESSAGE_QUERY, ADD_TAG_TO_MESSAGE_QUERY, data_repo, DELETE_EXPIRED_MESSAGES_QUERY, GET_COLLECTIONS_COUNT_QUERY, GET_COLLECTIONS_QUERY, GET_MESSAGE_POSITION_QUERY, GET_MESSAGES_COUNT_QUERY, GET_MESSAGES_QUERY, GET_TAGS_FOR_USER_COUNT_QUERY, GET_TAGS_FOR_USER_QUERY, REMOVE_MESSAGES_QUERY
      • Fields inherited from class tigase.archive.db.AbstractMessageArchiveRepository

        MSG_BODY_PATH, MSG_SUBJECT_PATH
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected int addMessageAdditionalInfo​(java.sql.PreparedStatement stmt, int i, java.util.Map<java.lang.String,​java.lang.Object> additionalData)  
      void archiveMessage​(tigase.xmpp.jid.BareJID owner, tigase.xmpp.jid.JID buddy, tigase.archive.db.MessageArchiveRepository.Direction direction, java.util.Date timestamp, tigase.xml.Element msg, java.util.Set<java.lang.String> tags)  
      protected byte[] generateHashOfMessage​(tigase.archive.db.MessageArchiveRepository.Direction direction, tigase.xml.Element msg, java.util.Date ts, java.util.Map<java.lang.String,​java.lang.Object> additionalData)  
      protected tigase.db.DataRepository getDataRepository()  
      protected void initPreparedStatements​(tigase.db.DataRepository data_repo)  
      protected JDBCUnifiedArchiveRepository.Item newItemInstance()  
      QueryCriteria newQuery()  
      java.util.stream.Stream<? extends UnifiedArchiveRepository.Item> queryRecents​(tigase.xmpp.jid.BareJID ownerJid, java.util.Date start, java.util.Date end, java.util.Set<UnifiedArchiveRepository.Type> types, java.util.Set<UnifiedArchiveRepository.CallCondition> callConditions, tigase.xmpp.rsm.RSM rsm)  
      protected int queryRecentsCount​(tigase.xmpp.jid.BareJID ownerJid, java.util.Date start, java.util.Date end, java.util.Set<UnifiedArchiveRepository.Type> types, java.util.Set<UnifiedArchiveRepository.CallCondition> callConditions)  
      protected int setQueryParams​(java.sql.PreparedStatement stmt, QueryCriteria crit, java.lang.Boolean groupByType, int i)  
      • Methods inherited from class tigase.archive.db.JDBCMessageArchiveRepository

        archiveMessage, convertToTimestamp, deleteExpiredMessages, getTags, queryCollections, queryItems, removeItems, setCountQueryParams, setDataSource, setItemsQueryParams
      • Methods inherited from class tigase.archive.db.AbstractMessageArchiveRepository

        calculateOffsetAndPosition
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface tigase.db.DataSourceAware

        setDataSource
      • Methods inherited from interface tigase.xmpp.mam.MAMRepository

        queryItems
      • Methods inherited from interface tigase.archive.db.MessageArchiveRepository

        deleteExpiredMessages, destroy, getTags, queryCollections, removeItems
      • Methods inherited from interface tigase.db.util.RepositoryVersionAware

        getVersion, updateSchema
    • Field Detail

      • OFFLINE_STORE_KEY

        protected static final java.lang.String OFFLINE_STORE_KEY
        See Also:
        Constant Field Values
    • Constructor Detail

      • JDBCUnifiedArchiveRepository

        public JDBCUnifiedArchiveRepository()
    • Method Detail

      • archiveMessage

        public void archiveMessage​(tigase.xmpp.jid.BareJID owner,
                                   tigase.xmpp.jid.JID buddy,
                                   tigase.archive.db.MessageArchiveRepository.Direction direction,
                                   java.util.Date timestamp,
                                   tigase.xml.Element msg,
                                   java.util.Set<java.lang.String> tags)
        Specified by:
        archiveMessage in interface tigase.archive.db.MessageArchiveRepository<QueryCriteria,​tigase.db.DataRepository>
        Overrides:
        archiveMessage in class tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
      • newQuery

        public QueryCriteria newQuery()
        Specified by:
        newQuery in interface tigase.xmpp.mam.MAMRepository<QueryCriteria,​tigase.xmpp.mam.MAMRepository.Item>
        Overrides:
        newQuery in class tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
      • addMessageAdditionalInfo

        protected int addMessageAdditionalInfo​(java.sql.PreparedStatement stmt,
                                               int i,
                                               java.util.Map<java.lang.String,​java.lang.Object> additionalData)
                                        throws java.sql.SQLException
        Overrides:
        addMessageAdditionalInfo in class tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
        Throws:
        java.sql.SQLException
      • initPreparedStatements

        protected void initPreparedStatements​(tigase.db.DataRepository data_repo)
                                       throws java.sql.SQLException
        Overrides:
        initPreparedStatements in class tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
        Throws:
        java.sql.SQLException
      • setQueryParams

        protected int setQueryParams​(java.sql.PreparedStatement stmt,
                                     QueryCriteria crit,
                                     java.lang.Boolean groupByType,
                                     int i)
                              throws java.sql.SQLException
        Overrides:
        setQueryParams in class tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
        Throws:
        java.sql.SQLException
      • getDataRepository

        protected tigase.db.DataRepository getDataRepository()
      • generateHashOfMessage

        protected byte[] generateHashOfMessage​(tigase.archive.db.MessageArchiveRepository.Direction direction,
                                               tigase.xml.Element msg,
                                               java.util.Date ts,
                                               java.util.Map<java.lang.String,​java.lang.Object> additionalData)
        Overrides:
        generateHashOfMessage in class tigase.archive.db.AbstractMessageArchiveRepository<QueryCriteria,​tigase.db.DataRepository>