Package tigase.pubsub

Class PubSubComponent

  • All Implemented Interfaces:
    tigase.cluster.api.ClusteredComponentIfc, tigase.conf.Configurable, tigase.disco.XMPPService, tigase.kernel.beans.config.ConfigurationChangedAware, tigase.kernel.beans.Initializable, tigase.kernel.beans.RegistrarBean, tigase.server.DisableDisco, tigase.server.MessageReceiver, tigase.server.PacketWriterWithTimeout, tigase.server.ServerComponent, tigase.stats.StatisticsContainer, tigase.stats.StatisticsContainerIfc, tigase.vhosts.VHostListener

    @Bean(name="pubsub",
          parent=tigase.kernel.core.Kernel.class,
          active=true)
    @ConfigType(DefaultMode)
    @ClusterModeRequired(active=false)
    public class PubSubComponent
    extends tigase.component.AbstractKernelBasedComponent
    implements tigase.conf.Configurable, tigase.server.DisableDisco
    Class description
    Version:
    5.1.0, 2010.11.02 at 01:05:02 MDT
    Author:
    Artur Hefczyc
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  PubSubComponent.PacketHashCodeGenerator  
      • Nested classes/interfaces inherited from class tigase.component.AbstractKernelBasedComponent

        tigase.component.AbstractKernelBasedComponent.DefaultPacketWriter
      • Nested classes/interfaces inherited from class tigase.server.BasicComponent

        tigase.server.BasicComponent.ServerInfoVHostItemExtension
      • Nested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout

        tigase.server.PacketWriterWithTimeout.Handler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String DEFAULT_LEAF_NODE_CONFIG_KEY  
      protected LeafNodeConfig defaultNodeConfig  
      static java.lang.String EVENT_XMLNS  
      protected java.lang.Integer maxRepositoryCacheSize  
      • Fields inherited from class tigase.component.AbstractKernelBasedComponent

        eventBus, kernel, log
      • Fields inherited from class tigase.server.AbstractMessageReceiver

        HOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, PACKET_DELIVERY_RETRY_COUNT_PROP_KEY, SCHEDULER_THREADS_PROP_KEY, SECOND
      • Fields inherited from class tigase.server.BasicComponent

        admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManager
      • Fields inherited from interface tigase.conf.Configurable

        ADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_CLASS_NAME, AUTH_DOMAIN_POOL_CLASS, AUTH_REPO_DOMAINS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_POOL_CLASS, AUTH_REPO_URL_PROP_KEY, BOSH_CLUST_COMP_CLASS_NAME, BOSH_COMP_CLASS_NAME, C2S_CLUST_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, CL_COMP_CLASS_NAME, CLUSTER_CONECT, CLUSTER_CONTR_CLASS_NAME, CLUSTER_LISTEN, CLUSTER_MODE, CLUSTER_NODES, CLUSTER_NODES_PROP_KEY, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, DEF_AMP_NAME, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_COMP_PROT_NAME, DEF_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DEF_WS2S_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_URL_PROP_VAL, DRUPALWP_REPO_CLASS_PROP_VAL, DUMMY_REPO_CLASS_PROP_VAL, EVENTBUS_CLASS_NAME, EXT_COMP_CLASS_NAME, GEN_ADMINS, GEN_AUTH_DB, GEN_AUTH_DB_URI, GEN_COMP_CLASS, GEN_COMP_NAME, GEN_CONF, GEN_CONFIG, GEN_CONFIG_ALL, GEN_CONFIG_COMP, GEN_CONFIG_CS, GEN_CONFIG_DEF, GEN_CONFIG_SM, GEN_DEBUG, GEN_DEBUG_PACKAGES, GEN_EXT_COMP, GEN_MAX_QUEUE_SIZE, GEN_SCRIPT_DIR, GEN_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_USER_DB_URI_PROP_KEY, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITOR_CLASS_NAME, MONITOR_CLUST_CLASS_NAME, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, PGSQL_REPO_CLASS_PROP_VAL, PGSQL_REPO_URL_PROP_VAL, ROUTER_COMP_CLASS_NAME, S2S_CLUST_COMP_CLASS_NAME, S2S_COMP_CLASS_NAME, SHARED_AUTH_REPO_PARAMS_PROP_KEY, SHARED_AUTH_REPO_PROP_KEY, SHARED_USER_REPO_PARAMS_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUST_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, STANZA_WHITE_CHAR_ACK, STANZA_XMPP_ACK, STATS_CLASS_NAME, STRINGPREP_PROCESSOR, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_DOMAIN_POOL_CLASS, USER_REPO_DOMAINS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_CLASS, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK
      • Fields inherited from interface tigase.disco.XMPPService

        CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
    • Constructor Summary

      Constructors 
      Constructor Description
      PubSubComponent()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected boolean checkPubSubServiceJid​(tigase.server.Packet packet)
      Method checks if packet is sent to pubsub@xxx and if so then it returns error as we no longer allow usage of pubsub@xxx address as pubsub service jid since we added support to use PEP and we have multiple domains support with separated nodes.
      void everyHour()  
      void everyMinute()  
      void everySecond()  
      java.lang.String getComponentVersion()  
      java.lang.String getDiscoCategory()  
      java.lang.String getDiscoCategoryType()  
      java.lang.String getDiscoDescription()  
      void getStatistics​(tigase.stats.StatisticsList list)  
      int hashCodeForPacket​(tigase.server.Packet packet)  
      void initBindings​(javax.script.Bindings binds)  
      boolean isDiscoNonAdmin()  
      boolean isSubdomain()  
      void onChangeDefaultNodeConfig​(DefaultConfigCommand.DefaultNodeConfigurationChangedEvent event)  
      void onUserRemoved​(tigase.db.UserRepository.UserRemovedEvent event)  
      int processingInThreads()  
      int processingOutThreads()  
      void processPacket​(tigase.server.Packet packet)  
      boolean processScriptCommand​(tigase.server.Packet pc, java.util.Queue<tigase.server.Packet> results)  
      protected void registerModules​(tigase.kernel.core.Kernel kernel)  
      void setName​(java.lang.String name)  
      void setPubsubRepository​(IPubSubRepository pubsubRepository)  
      void start()  
      void stop()  
      • Methods inherited from class tigase.component.AbstractKernelBasedComponent

        createScriptEngineManager, getKernel, register, unregister, updateServiceEntity
      • Methods inherited from class tigase.server.AbstractMessageReceiver

        addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, beanConfigurationChanged, clearRegexRoutings, getMaxQueueSize, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setCompId, setIncoming_filters, setOutgoing_filters, setParent, setSchedulerThreads_size, updateFiltersName
      • Methods inherited from class tigase.server.BasicComponent

        addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, initialize, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem
      • Methods inherited from class java.lang.Object

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

        getDefaults, setProperties
      • Methods inherited from interface tigase.server.MessageReceiver

        getDefHostName
      • Methods inherited from interface tigase.server.ServerComponent

        getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, release
      • Methods inherited from interface tigase.stats.StatisticsContainerIfc

        getName
      • Methods inherited from interface tigase.disco.XMPPService

        getDiscoFeatures, getDiscoInfo, getDiscoItems
    • Field Detail

      • DEFAULT_LEAF_NODE_CONFIG_KEY

        public static final java.lang.String DEFAULT_LEAF_NODE_CONFIG_KEY
        See Also:
        Constant Field Values
      • defaultNodeConfig

        @Inject(bean="defaultNodeConfig")
        protected LeafNodeConfig defaultNodeConfig
      • maxRepositoryCacheSize

        protected java.lang.Integer maxRepositoryCacheSize
    • Constructor Detail

      • PubSubComponent

        public PubSubComponent()
    • Method Detail

      • everyHour

        public void everyHour()
        Overrides:
        everyHour in class tigase.server.AbstractMessageReceiver
      • everyMinute

        public void everyMinute()
        Overrides:
        everyMinute in class tigase.server.AbstractMessageReceiver
      • everySecond

        public void everySecond()
        Overrides:
        everySecond in class tigase.server.AbstractMessageReceiver
      • getComponentVersion

        public java.lang.String getComponentVersion()
        Overrides:
        getComponentVersion in class tigase.component.AbstractKernelBasedComponent
      • getDiscoCategory

        public java.lang.String getDiscoCategory()
        Overrides:
        getDiscoCategory in class tigase.server.BasicComponent
      • getDiscoCategoryType

        public java.lang.String getDiscoCategoryType()
        Overrides:
        getDiscoCategoryType in class tigase.server.BasicComponent
      • getDiscoDescription

        public java.lang.String getDiscoDescription()
        Overrides:
        getDiscoDescription in class tigase.server.BasicComponent
      • getStatistics

        public void getStatistics​(tigase.stats.StatisticsList list)
        Specified by:
        getStatistics in interface tigase.stats.StatisticsContainerIfc
        Overrides:
        getStatistics in class tigase.server.AbstractMessageReceiver
      • hashCodeForPacket

        public int hashCodeForPacket​(tigase.server.Packet packet)
        Overrides:
        hashCodeForPacket in class tigase.server.AbstractMessageReceiver
      • initBindings

        public void initBindings​(javax.script.Bindings binds)
        Overrides:
        initBindings in class tigase.component.AbstractKernelBasedComponent
      • isDiscoNonAdmin

        public boolean isDiscoNonAdmin()
        Specified by:
        isDiscoNonAdmin in class tigase.component.AbstractKernelBasedComponent
      • isSubdomain

        public boolean isSubdomain()
        Overrides:
        isSubdomain in class tigase.server.BasicComponent
      • processingInThreads

        public int processingInThreads()
        Overrides:
        processingInThreads in class tigase.server.AbstractMessageReceiver
      • processingOutThreads

        public int processingOutThreads()
        Overrides:
        processingOutThreads in class tigase.server.AbstractMessageReceiver
      • processPacket

        public void processPacket​(tigase.server.Packet packet)
        Overrides:
        processPacket in class tigase.component.AbstractKernelBasedComponent
      • processScriptCommand

        public boolean processScriptCommand​(tigase.server.Packet pc,
                                            java.util.Queue<tigase.server.Packet> results)
        Overrides:
        processScriptCommand in class tigase.server.BasicComponent
      • setName

        public void setName​(java.lang.String name)
        Specified by:
        setName in interface tigase.server.ServerComponent
        Overrides:
        setName in class tigase.server.AbstractMessageReceiver
      • setPubsubRepository

        public void setPubsubRepository​(IPubSubRepository pubsubRepository)
      • start

        public void start()
        Specified by:
        start in interface tigase.server.MessageReceiver
        Overrides:
        start in class tigase.component.AbstractKernelBasedComponent
      • stop

        public void stop()
        Overrides:
        stop in class tigase.server.AbstractMessageReceiver
      • onUserRemoved

        @HandleEvent
        public void onUserRemoved​(tigase.db.UserRepository.UserRemovedEvent event)
      • registerModules

        protected void registerModules​(tigase.kernel.core.Kernel kernel)
        Specified by:
        registerModules in class tigase.component.AbstractKernelBasedComponent
      • checkPubSubServiceJid

        protected boolean checkPubSubServiceJid​(tigase.server.Packet packet)
        Method checks if packet is sent to pubsub@xxx and if so then it returns error as we no longer allow usage of pubsub@xxx address as pubsub service jid since we added support to use PEP and we have multiple domains support with separated nodes.
        Parameters:
        packet - packet to check
        Returns:
        true - if packet service jid is ok and should be processed