Class TestComponent

All Implemented Interfaces:
ClusteredComponentIfc, Configurable, XMPPService, ConfigurationChangedAware, Initializable, RegistrarBean, DisableDisco, MessageReceiver, PacketWriterWithTimeout, ServerComponent, StatisticsContainer, StatisticsContainerIfc, VHostListener

@Bean(name="test", parent=Kernel.class, active=false) public class TestComponent extends AbstractKernelBasedComponent
A test component used to demonstrate API and for running different kinds of tests on the Tigase server - generate local traffic for performance and load tests. Created: Nov 28, 2009 9:22:36 PM
  • Constructor Details

    • TestComponent

      public TestComponent()
  • Method Details

    • getDiscoCategoryType

      public String getDiscoCategoryType()
      Description copied from class: BasicComponent
      Method returns component category type used for service discovery responses.
      Overrides:
      getDiscoCategoryType in class BasicComponent
      Returns:
      category type of a component
    • getDiscoDescription

      public String getDiscoDescription()
      Description copied from class: BasicComponent
      Method returns description used for service discovery responses.
      Overrides:
      getDiscoDescription in class BasicComponent
      Returns:
      description of a component
    • getStatistics

      public void getStatistics(StatisticsList list)
      Description copied from class: AbstractMessageReceiver
      Method returns component statistics. Please note, the method can be called every second by the server monitoring system therefore no extensive or lengthy calculations are allowed. If there are some statistics requiring lengthy operations like database access they must have Level.FINEST assigned and must be put inside the level guard to prevent generating them by the system monitor. The system monitor does not collect FINEST statistics.
      Level guard code looks like the example below:
       if (list.checkLevel(Level.FINEST)) {
         // Some CPU intensive calculations or lengthy operations
         list.add(getName(), "Statistic description", stat_value, Level.FINEST);
       }
      
       
      This way you make sure your extensive operation is not executed every second by the monitoring system and does not affect the server performance.
      Specified by:
      getStatistics in interface StatisticsContainerIfc
      Overrides:
      getStatistics in class AbstractMessageReceiver
      Parameters:
      list - is a StatistcsList where all statistics are stored.
    • hashCodeForPacket

      public int hashCodeForPacket(Packet packet)
      Description copied from class: AbstractMessageReceiver
      This method decides how incoming packets are distributed among processing threads. Different components needs different distribution to efficient use all threads and avoid packets re-ordering.
      If there are N processing threads, packets are distributed among threads using following code:
       int threadNo = Math.abs(hashCodeForPacket(packet) % N);
       

      For a PubSub component, for example, a better packets distribution would be based on the PubSub channel name, for SM a better distribution is based on the destination address, etc....
      Overrides:
      hashCodeForPacket in class AbstractMessageReceiver
      Parameters:
      packet - is a Packet which needs to be processed by some thread.
      Returns:
      a hash code generated for the input thread.
    • initBindings

      public void initBindings(Bindings binds)
      Description copied from class: BasicComponent
      Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
      Overrides:
      initBindings in class AbstractKernelBasedComponent
      Parameters:
      binds - A mapping of key/value pairs, all of whose keys are Strings.
    • isDiscoNonAdmin

      public boolean isDiscoNonAdmin()
      Description copied from class: AbstractKernelBasedComponent
      Is this component discoverable by disco#items for domain by non admin users.
      Specified by:
      isDiscoNonAdmin in class AbstractKernelBasedComponent
      Returns:
      true - if yes
    • processingInThreads

      public int processingInThreads()
      Description copied from class: AbstractMessageReceiver
      Concurrency control method. Returns preferable number of threads set for this component.
      Overrides:
      processingInThreads in class AbstractMessageReceiver
      Returns:
      preferable number of threads set for this component.
    • processingOutThreads

      public int processingOutThreads()
      Description copied from class: AbstractMessageReceiver
      Concurrency control method. Returns preferable number of threads set for this component.
      Overrides:
      processingOutThreads in class AbstractMessageReceiver
      Returns:
      preferable number of threads set for this component.
    • registerModules

      protected void registerModules(Kernel kernel)
      Specified by:
      registerModules in class AbstractKernelBasedComponent