tigase.server.xmppcomponent

## Class ComponentConnectionManager

- java.lang.Object
- - tigase.server.BasicComponent
  - - tigase.server.AbstractMessageReceiver
    - - tigase.server.ConnectionManager<XMPPIOService<Object>>
      - - tigase.server.xmppcomponent.ComponentConnectionManager

- All Implemented Interfaces:
    ClusteredComponentIfc, Configurable, XMPPService, IOServiceListener<XMPPIOService<Object>>, MessageReceiver, ServerComponent, StatisticsContainer, StatisticsContainerIfc, VHostListener, XMPPIOServiceListener<XMPPIOService<Object>>

      public class ComponentConnectionManager
      extends ConnectionManager<XMPPIOService<Object>>
      implements XMPPService

  Class ComponentConnectionManager Created: Tue Nov 22 07:07:11 2005
  Version:
    $Rev$
  Author:
    Artur Hefczyc

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class tigase.server.ConnectionManager

      `ConnectionManager.LIMIT_ACTION, ConnectionManager.Watchdog, ConnectionManager.WATCHDOG_PING_TYPE`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `IDENTITY_TYPE_KEY`
    `static String` | `IDENTITY_TYPE_VAL`
    `static String` | `PACK_ROUTED_KEY`
    `boolean` | `PACK_ROUTED_VAL`
    `String` | `PORT_LOCAL_HOST_PROP_VAL`
    `String` | `PORT_REMOTE_HOST_PROP_VAL`
    `static String` | `PORT_ROUTING_TABLE_PROP_KEY`
    `String[]` | `PORT_ROUTING_TABLE_PROP_VAL`
    `SocketType` | `PORT_SOCKET_PROP_VAL`
    `ConnectionType` | `PORT_TYPE_PROP_VAL`
    `int[]` | `PORTS`
    `static String` | `RETURN_SERVICE_DISCO_KEY`
    `static boolean` | `RETURN_SERVICE_DISCO_VAL`
    `static String` | `SECRET_PROP_KEY`
    `String` | `SECRET_PROP_VAL`

    - ### Fields inherited from class tigase.server.ConnectionManager

      `connectionDelay, delayPortListening, elements_number_limit, ELEMENTS_NUMBER_LIMIT_PROP_KEY, ELEMENTS_NUMBER_LIMIT_PROP_VAL, HT_TRAFFIC_THROTTLING_PROP_KEY, HT_TRAFFIC_THROTTLING_PROP_VAL, LAST_MINUTE_BIN_LIMIT_PROP_VAL, LAST_MINUTE_PACKETS_LIMIT_PROP_VAL, MAX_INACTIVITY_TIME, MAX_RECONNECTS_PROP_KEY, net_buffer, NET_BUFFER_HT_PROP_KEY, NET_BUFFER_HT_PROP_VAL, NET_BUFFER_LIMIT_HT_PROP_VAL, NET_BUFFER_LIMIT_PROP_KEY, NET_BUFFER_LIMIT_ST_PROP_VAL, NET_BUFFER_PROP_KEY, NET_BUFFER_ST_PROP_KEY, NET_BUFFER_ST_PROP_VAL, pingElement, PORT_CLASS_PROP_KEY, PORT_IFC_PROP_KEY, PORT_IFC_PROP_VAL, PORT_KEY, PORT_LISTENING_DELAY_DEF, PORT_LISTENING_DELAY_KEY, PORT_LOCAL_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, processors, PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TLS_PROP_KEY, TLS_REQUIRED_PROP_KEY, TLS_REQUIRED_PROP_VAL, TLS_USE_PROP_KEY, TLS_USE_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, WATCHDOG_DELAY, WATCHDOG_PING_TYPE_KEY, WATCHDOG_TIMEOUT, watchdogDelay, watchdogPingType, watchdogTimeout, WHITE_CHAR_ACK_PROP_KEY, WHITE_CHAR_ACK_PROP_VAL, XMPP_ACK_PROP_KEY, XMPP_ACK_PROP_VAL`

    - ### 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, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManager`

    - ### Fields inherited from interface tigase.disco.XMPPService

      `CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS`

    - ### 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_SRECV_NAME, DEF_SSEND_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, SRECV_COMP_CLASS_NAME, SSEND_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`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ComponentConnectionManager()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Map<String,Object>` | `getDefaults(Map<String,Object> params)` Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values.
    `protected int[]` | `getDefPlainPorts()` Method description
    `List<Element>` | `getDiscoFeatures(JID from)` Returns features for top level disco info
    `Element` | `getDiscoInfo(String node, JID jid, JID from)` Returns service discovery info for the component.
    `List<Element>` | `getDiscoItems(String node, JID jid, JID from)` Returns service discovery items for the component.
    `protected long` | `getMaxInactiveTime()` Method description
    `protected Map<String,Object>` | `getParamsForPort(int port)` Method description
    `protected String` | `getServiceId(Packet packet)` Method description
    `protected String` | `getUniqueId(XMPPIOService<Object> serv)` Method description
    `protected XMPPIOService<Object>` | `getXMPPIOServiceInstance()` Method description
    `void` | `processPacket(Packet packet)` This is the main `Packet` processing method.
    `Queue<Packet>` | `processSocketData(XMPPIOService<Object> serv)`
    `boolean` | `processUndeliveredPacket(Packet packet, Long stamp, String errorMessage)` Processes undelivered packets
    `void` | `reconnectionFailed(Map<String,Object> port_props)`
    `void` | `serviceStarted(XMPPIOService<Object> serv)`
    `boolean` | `serviceStopped(XMPPIOService<Object> service)`
    `void` | `setProperties(Map<String,Object> props)` Sets all configuration properties for the object.
    `void` | `tlsHandshakeCompleted(XMPPIOService<Object> service)`
    `void` | `xmppStreamClosed(XMPPIOService<Object> serv)`
    `String[]` | `xmppStreamOpened(XMPPIOService<Object> service, Map<String,String> attribs)`

    - ### Methods inherited from class tigase.server.ConnectionManager

      `addWaitingTask, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, everyMinute, getDefSSLPorts, getDefTrafficThrottling, getServiceId, getStatistics, getXMPPIOService, getXMPPIOService, hashCodeForPacket, initBindings, initializationCompleted, isHighThroughput, newWatchdog, packetsReady, processingInThreads, processingOutThreads, release, setName, setupWatchdogThread, socketAccepted, stop, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writePacketToSocket, writeRawData, xmppStreamError`

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

      `addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everyHour, everySecond, getMaxQueueSize, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent, start`

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

      `addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getComponentInfo, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoCategoryType, getDiscoDescription, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setClusterController, 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.ServerComponent

      `getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, release, setName`

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

      `getName`

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

      `getDefHostName`

- - ### Field Detail

    - #### SECRET_PROP_KEY

          public static final String SECRET_PROP_KEY

      See Also:
        Constant Field Values

    - #### PORT_ROUTING_TABLE_PROP_KEY

          public static final String PORT_ROUTING_TABLE_PROP_KEY

      See Also:
        Constant Field Values

    - #### PACK_ROUTED_KEY

          public static final String PACK_ROUTED_KEY

      See Also:
        Constant Field Values

    - #### RETURN_SERVICE_DISCO_KEY

          public static final String RETURN_SERVICE_DISCO_KEY

      See Also:
        Constant Field Values

    - #### RETURN_SERVICE_DISCO_VAL

          public static final boolean RETURN_SERVICE_DISCO_VAL

      See Also:
        Constant Field Values

    - #### IDENTITY_TYPE_KEY

          public static final String IDENTITY_TYPE_KEY

      See Also:
        Constant Field Values

    - #### IDENTITY_TYPE_VAL

          public static final String IDENTITY_TYPE_VAL

      See Also:
        Constant Field Values

    - #### PORTS

          public int[] PORTS

    - #### PORT_LOCAL_HOST_PROP_VAL

          public String PORT_LOCAL_HOST_PROP_VAL

    - #### PORT_REMOTE_HOST_PROP_VAL

          public String PORT_REMOTE_HOST_PROP_VAL

    - #### PORT_TYPE_PROP_VAL

          public ConnectionType PORT_TYPE_PROP_VAL

    - #### PORT_SOCKET_PROP_VAL

          public SocketType PORT_SOCKET_PROP_VAL

    - #### SECRET_PROP_VAL

          public String SECRET_PROP_VAL

    - #### PORT_ROUTING_TABLE_PROP_VAL

          public String[] PORT_ROUTING_TABLE_PROP_VAL

    - #### PACK_ROUTED_VAL

          public boolean PACK_ROUTED_VAL

  - ### Constructor Detail

    - #### ComponentConnectionManager

          public ComponentConnectionManager()

  - ### Method Detail

    - #### getDefaults

          public Map<String,Object> getDefaults(Map<String,Object> params)

      Description copied from class: `AbstractMessageReceiver`
      Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values. All the default parameters returned from this method are later passed to the `setProperties(...)` method. Some of them may have changed value if they have been overwritten in the server configuration. The configuration property value can be of any of the basic types: `int`, `long`, `boolean`, `String`.
      Specified by:
        `getDefaults` in interface `Configurable`
      Overrides:
        `getDefaults` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `params` - is a `Map` with some initial properties set for the starting up server. These parameters can be used as a hints to generate component's default configuration.
      Returns:
        a `Map` with the component default configuration.

    - #### getDiscoFeatures

          public List<Element> getDiscoFeatures(JID from)

      Description copied from interface: `XMPPService`
      Returns features for top level disco info
      Specified by:
        `getDiscoFeatures` in interface `XMPPService`
      Overrides:
        `getDiscoFeatures` in class `BasicComponent`
      Parameters:
        `from` - a request sender address. Some service disco elements are meant to be available only to system administrarors. The component is responsible to check whether the sender is the component administrator and return results appropriate.
      Returns:
        a list of elements with service discovery features.

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

    - #### getDiscoItems

          public List<Element> getDiscoItems(String node,
                                             JID jid,
                                             JID from)

      Description copied from interface: `XMPPService`
      Returns service discovery items for the component. If the JID is null then this is request for the top level request. SM may return disco items on the top level, other components should just return it's top level service discovery item for null node.
      Specified by:
        `getDiscoItems` in interface `XMPPService`
      Overrides:
        `getDiscoItems` in class `BasicComponent`
      Parameters:
        `node` - is a service discovery node for which the request has been made.
        `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:
        a list of service discovery items for this component or the component itself disco item for the top level request.

    - #### 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.
      Overrides:
        `processPacket` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `packet` - is an instance of the `Packet` class passed for processing.

    - #### processSocketData

          public Queue<Packet> processSocketData(XMPPIOService<Object> serv)

      Specified by:
        `processSocketData` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### processUndeliveredPacket

          public boolean processUndeliveredPacket(Packet packet,
                                                  Long stamp,
                                                  String errorMessage)

      Description copied from class: `ConnectionManager`
      Processes undelivered packets
      Specified by:
        `processUndeliveredPacket` in class `ConnectionManager<XMPPIOService<Object>>`
        `stamp` - - timestamp when packet was received to be written to XMPPIOService

    - #### reconnectionFailed

          public void reconnectionFailed(Map<String,Object> port_props)

      Specified by:
        `reconnectionFailed` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### serviceStarted

          public void serviceStarted(XMPPIOService<Object> serv)

      Overrides:
        `serviceStarted` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### serviceStopped

          public boolean serviceStopped(XMPPIOService<Object> service)

      Specified by:
        `serviceStopped` in interface `IOServiceListener<XMPPIOService<Object>>`
      Overrides:
        `serviceStopped` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### setProperties

          public void setProperties(Map<String,Object> props)
                             throws ConfigurationException

      Description copied from interface: `Configurable`
      Sets all configuration properties for the object.
      Specified by:
        `setProperties` in interface `Configurable`
      Overrides:
        `setProperties` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `props` - `Map` with the configuration
      Throws:
        `ConfigurationException` - - if setting configuration will fail which will make it unable to work

    - #### tlsHandshakeCompleted

          public void tlsHandshakeCompleted(XMPPIOService<Object> service)

      Specified by:
        `tlsHandshakeCompleted` in interface `IOServiceListener<XMPPIOService<Object>>`

    - #### xmppStreamClosed

          public void xmppStreamClosed(XMPPIOService<Object> serv)

      Specified by:
        `xmppStreamClosed` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`

    - #### xmppStreamOpened

          public String[] xmppStreamOpened(XMPPIOService<Object> service,
                                           Map<String,String> attribs)

      Specified by:
        `xmppStreamOpened` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`

    - #### getDefPlainPorts

          protected int[] getDefPlainPorts()

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getDefPlainPorts` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `int[]`

    - #### getMaxInactiveTime

          protected long getMaxInactiveTime()

      Method description
      We should not really close external component connection at all, so let's say something like: 1000 days...
      Specified by:
        `getMaxInactiveTime` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `long`

    - #### getParamsForPort

          protected Map<String,Object> getParamsForPort(int port)

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getParamsForPort` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `Map<String,Object>`

    - #### getServiceId

          protected String getServiceId(Packet packet)

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getServiceId` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `String`

    - #### getUniqueId

          protected String getUniqueId(XMPPIOService<Object> serv)

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getUniqueId` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `String`

    - #### getXMPPIOServiceInstance

          protected XMPPIOService<Object> getXMPPIOServiceInstance()

      Description copied from class: `ConnectionManager`
      Method description
      Specified by:
        `getXMPPIOServiceInstance` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `IO`

Copyright © 2022 "Tigase, Inc.". All rights reserved.