Package tigase.server

## Interface ServerComponent

- All Known Subinterfaces:
    `ClusteredComponentIfc`, `ComponentRegistrator`, `Configurable`, `MessageReceiver`, `MessageRouterIfc`, `StatisticsContainer`, `VHostListener`, `XMPPService`
  All Known Implementing Classes:
    `AbstractComponent`, `AbstractComponentRegistrator`, `AbstractKernelBasedComponent`, `AbstractMessageReceiver`, `AmpComponent`, `AmpComponentClustered`, `BasicComponent`, `BoshConnectionClustered`, `BoshConnectionManager`, `ClientConnectionClustered`, `ClientConnectionManager`, `ClusterConnectionManager`, `ClusterController`, `ComponentConnectionManager`, `ComponentProtocol`, `ComponentProtocolManager`, `Configurator`, `ConfiguratorAbstract`, `ConfiguratorOld`, `ConnectionManager`, `EchoComponent`, `EventBusComponent`, `EventBusComponent`, `ExternalServiceDiscoveryComponent`, `MessageRouter`, `MonitorComponent`, `MonitorComponent`, `S2SConnectionManager`, `SessionManager`, `SessionManagerClustered`, `StatisticsCollector`, `TestComponent`, `VHostManager`, `VirtualComponent`, `WebSocketClientConnectionClustered`, `WebSocketClientConnectionManager`, `WorkgroupQueuesComponent`, `XMPPServiceCollector`

      public interface ServerComponent

  Interface ServerComponent
  Object of this type can be managed by MessageRouter. All classes which are loaded by MessageRouter must inherit this interface.
  Created: Tue Nov 22 07:07:11 2005
  Author:
    Artur Hefczyc

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `JID` | `getComponentId()` | Method returns component jid in form of the component name followed by server hostname as a domain.
    `ComponentInfo` | `getComponentInfo()` | Allows to obtain various informations about components
    `java.lang.String` | `getName()` | Method returns name of the component.
    `void` | `initializationCompleted()` | Method is called by `MessageRouter` when all the startup components of the server have been loaded and configured through setProperties(...) call.
    `boolean` | `isInitializationComplete()` | Method returns information about whether the initialization process (initializationCompleted()) method has been called.
    `void` | `processPacket​(Packet packet, java.util.Queue<Packet> results)` | `processPacket` is a blocking processing method implemented by all components.
    `void` | `release()` | Method called when component is being stopped and unloaded.
    `void` | `setName​(java.lang.String name)` | Method used to assign component name (localpart of the component)

- - ### Method Detail

    - #### initializationCompleted

          void initializationCompleted()

      Method is called by `MessageRouter` when all the startup components of the server have been loaded and configured through setProperties(...) call. At this point the whole server should be loaded and functional, except initializations taking place in this routine.

    - #### processPacket

          void processPacket​(Packet packet,
                             java.util.Queue<Packet> results)

      `processPacket` is a blocking processing method implemented by all components. This method processes packet and returns results instantly without waiting for any resources.
      Parameters:
        `packet` - a `Packet` value

    - #### release

          void release()

      Method called when component is being stopped and unloaded.

    - #### getComponentId

          JID getComponentId()

      Method returns component jid in form of the component name followed by server hostname as a domain.
      Returns:
        jid

    - #### getComponentInfo

          ComponentInfo getComponentInfo()

      Allows to obtain various informations about components
      Returns:
        information about particular component

    - #### getName

          java.lang.String getName()

      Method returns name of the component.
      Returns:
        name of the component

    - #### setName

          void setName​(java.lang.String name)

      Method used to assign component name (localpart of the component)
      Parameters:
        `name` - to be assigned

    - #### isInitializationComplete

          boolean isInitializationComplete()

      Method returns information about whether the initialization process (initializationCompleted()) method has been called.
      Returns:
        `true` if initialization of the object has been completed `false` otherwise