Package tigase.server.amp

# Class AmpComponent

java.lang.Object
tigase.server.BasicComponent
tigase.server.AbstractMessageReceiver
tigase.server.amp.AmpComponent

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

Direct Known Subclasses:
  `AmpComponentClustered`

@Bean(name="amp", parent=Kernel.class, active=true) @ConfigType({DefaultMode,SessionManagerMode,ConnectionManagersMode,ComponentMode}) @ClusterModeRequired(active=false) public class AmpComponent extends AbstractMessageReceiver implements ActionResultsHandlerIfc, RegistrarBean
Created: Apr 26, 2010 3:22:06 PM

Author:
  Artur Hefczyc

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class tigase.server.BasicComponent

  `BasicComponent.ServerInfoVHostItemExtension`

  ## Nested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout

  `PacketWriterWithTimeout.Handler`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Broadcast`
  `broadcast`

  ### 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
  `AmpComponent()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `addOutPacket(Packet packet)`
  `boolean`
  `addOutPackets(Queue<Packet> packets)`
  `String`
  `getDiscoCategoryType()`
  Method returns component category type used for service discovery responses.
  `String`
  `getDiscoDescription()`
  Method returns description used for service discovery responses.
  `Element`
  `getDiscoInfo(String node, JID jid, JID from)`
  Returns service discovery info for the component.
  `int`
  `processingInThreads()`
  Concurrency control method.
  `int`
  `processingOutThreads()`
  Concurrency control method.
  `void`
  `processPacket(Packet packet)`
  This is the main `Packet` processing method.
  `void`
  `register(Kernel kernel)`
  Method called when bean is being registered allowing developer to programatically register other beans.
  `void`
  `setAllActions(List<ActionIfc> actions)`
  `void`
  `unregister(Kernel kernel)`
  Method called while bean is being unregistered.

  ### Methods inherited from class tigase.server.AbstractMessageReceiver

  `addOutPacketNB, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, beanConfigurationChanged, clearRegexRoutings, everyHour, everyMinute, everySecond, getMaxQueueSize, getRegexRoutings, getResourceForPacketWithTimeout, getStatistics, hashCodeForPacket, isInRegexRoutings, newPacketId, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setCompId, setIncoming_filters, setName, setOutgoing_filters, setParent, setSchedulerThreads_size, start, stop, updateFiltersName`

  ### Methods inherited from class tigase.server.BasicComponent

  `addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initBindings, initializationCompleted, initialize, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface tigase.server.MessageReceiver

  `getDefHostName`

  ### Methods inherited from interface tigase.server.ServerComponent

  `getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete`

  ### Methods inherited from interface tigase.stats.StatisticsContainerIfc

  `getName`

- ## Field Details

  - ### broadcast

    @Inject protected Broadcast broadcast

- ## Constructor Details

  - ### AmpComponent

    public AmpComponent()

- ## Method Details

  - ### addOutPacket

    public boolean addOutPacket(Packet packet)
    Specified by:
      `addOutPacket` in interface `ActionResultsHandlerIfc`
    Overrides:
      `addOutPacket` in class `AbstractMessageReceiver`

  - ### addOutPackets

    public boolean addOutPackets(Queue<Packet> packets)
    Specified by:
      `addOutPackets` in interface `ActionResultsHandlerIfc`
    Overrides:
      `addOutPackets` in class `AbstractMessageReceiver`

  - ### 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

  - ### getDiscoInfo

    public Element getDiscoInfo(String node, JID jid, JID from)
    Description copied from interface: `XMPPService`
    Returns service discovery info for the component. If the jid is null then this is info for the top level request. SM may return disco info on the top level. Other components should not.
    Specified by:
      `getDiscoInfo` in interface `XMPPService`
    Overrides:
      `getDiscoInfo` in class `BasicComponent`
    Parameters:
      `node` - is service discovery node for which the request is made. Is normally null for the component top level request.
      `jid` - is the jid to which the request has been made.
      `from` - is the request sender address. Some service discovery information is only meant for administrators.
    Returns:
      returns an XML Element with service discovery data.

  - ### 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.

  - ### processPacket

    public void processPacket(Packet packet)
    Description copied from class: `AbstractMessageReceiver`
    This is the main `Packet` processing method. It is called concurrently from many threads so implementing it in thread save manner is essential. The method is called for each packet addressed to the component.
    Please note, the `Packet` instance may be processed by different parts of the server, different components or plugins at the same time. Therefore this is very important to tread the `Packet` instance as unmodifiable object.
    Processing in this method is asynchronous, therefore there is no result value. If there are some 'result' packets generated during processing, they should be passed back using `addOutPacket(Packet)` method.
    Specified by:
      `processPacket` in class `AbstractMessageReceiver`
    Parameters:
      `packet` - is an instance of the `Packet` class passed for processing.

  - ### setAllActions

    public void setAllActions(List<ActionIfc> actions)

  - ### register

    public void register(Kernel kernel)
    Description copied from interface: `RegistrarBean`
    Method called when bean is being registered allowing developer to programatically register other beans.
    Specified by:
      `register` in interface `RegistrarBean`
    Parameters:
      `kernel` - - instance from local scope

  - ### unregister

    public void unregister(Kernel kernel)
    Description copied from interface: `RegistrarBean`
    Method called while bean is being unregistered.
    Specified by:
      `unregister` in interface `RegistrarBean`
    Parameters:
      `kernel` - - instance from local scope