Package tigase.server.ext
Class ComponentProtocol
- All Implemented Interfaces:
ClusteredComponentIfc,Configurable,RepositoryChangeListenerIfc<CompRepoItem>,XMPPService,ConfigurationChangedAware,Initializable,RegistrarBean,UnregisterAware,IOServiceListener<ComponentIOService>,ComponentProtocolHandler,MessageReceiver,PacketWriterWithTimeout,ServerComponent,StatisticsContainer,StatisticsContainerIfc,VHostListener,XMPPIOServiceListener<ComponentIOService>
@Bean(name="ext",
parent=Kernel.class,
active=false)
public class ComponentProtocol
extends ConnectionManager<ComponentIOService>
implements ComponentProtocolHandler, UnregisterAware, RepositoryChangeListenerIfc<CompRepoItem>
Created: Sep 30, 2009 8:28:13 PM
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested classes/interfaces inherited from class tigase.server.ConnectionManager
ConnectionManager.LIMIT_ACTION, ConnectionManager.PortConfigBean, ConnectionManager.PortsConfigBean, ConnectionManager.SecPortConfigBean, ConnectionManager.Watchdog, ConnectionManager.WATCHDOG_PING_TYPENested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtensionNested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout
PacketWriterWithTimeout.Handler -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final booleanFields 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, kernel, 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_ST_PROP_VAL, 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_NEW_CONNECTIONS_THROTTLING_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, PROP_KEY, serviceConnectedTimeout, SOCKET_BUFFER_HT_PROP_VAL, SOCKET_BUFFER_ST_PROP_VAL, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, trafficThrottling, 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_VALFields 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, SECONDFields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManagerFields inherited from interface tigase.server.ext.ComponentProtocolHandler
EXTCOMP_BIND_HOSTNAMES_PROP_KEY, REPO_ITEM_KEYFields 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_ACKFields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidauthenticationFailed(ComponentIOService serv, Packet packet) voidMethod called before bean unregister.voidbindHostname(String hostname, ComponentIOService serv) protected booleangetCompRepoItem(String hostname) protected StringMethod returns component category type used for service discovery responses.Method returns description used for service discovery responses.protected longprotected IntegergetMaxQueueSize(int def) getProcessor(String key) voidgetStatistics(StatisticsList list) Method returns component statistics.getStreamOpenHandler(String xmlns) protected ComponentIOServiceprotected ComponentIOServicevoidinitBindings(Bindings binds) Initialize a mapping of key/value pairs which can be used in scripts loaded by the servervoidMethod will be called, when bean will be created, configured and ready to use.protected booleanvoiditemAdded(CompRepoItem repoItem) voiditemRemoved(CompRepoItem item) voiditemUpdated(CompRepoItem item) booleanprocessUndeliveredPacket(Packet packet, Long stamp, String errorMessage) Processes undelivered packetsvoidreconnectionFailed(Map<String, Object> port_props) voidMethod called when bean is being registered allowing developer to programatically register other beans.voidbooleanserviceStopped(ComponentIOService service) voidvoidstart()voidtlsHandshakeCompleted(ComponentIOService service) voidunbindHostname(String hostname, ComponentIOService serv) booleanvoidString[]xmppStreamOpened(ComponentIOService serv, Map<String, String> attribs) Methods inherited from class tigase.server.ConnectionManager
addWaitingTask, beanConfigurationChanged, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, everyMinute, getDefPlainPorts, getDefPorts, getDefSSLPorts, getFlashCrossDomainPolicy, getNet_buffer_limit, getParamsForPort, getPortsConfigBean, getServiceId, getServiceId, getTrafficThrottling, getUniqueId, getXMPPIOService, hashCodeForPacket, initializationCompleted, newWatchdog, packetsReady, processingInThreads, processingOutThreads, processPacket, redeliverWaitingPackets, release, releaseListener, serviceConnected, setFlashCrossDomainPolicyFile, setName, setNet_buffer_limit, setProcessors, setTrafficThrottling, setupWatchdogThread, setWatchdogPingType, shouldRedeliverWaitingPackets, socketAccepted, startService, stop, unregister, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writeRawData, xmppStreamErrorMethods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, removeRegexRouting, schedulerThreads, setCompId, setIncoming_filters, setOutgoing_filters, setParent, setSchedulerThreads_size, updateFiltersNameMethods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, 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, updateServiceEntityMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface tigase.server.ext.ComponentProtocolHandler
newPacketIdMethods inherited from interface tigase.server.MessageReceiver
getDefHostNameMethods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, getName, isInitializationCompleteMethods inherited from interface tigase.stats.StatisticsContainerIfc
getName
-
Field Details
-
AUTHENTICATION_TIMEOUT_PROP_KEY
- See Also:
-
CLOSE_ON_SEQUENCE_ERROR_PROP_KEY
- See Also:
-
EXTCOMP_BIND_HOSTNAMES
- See Also:
-
EXTCOMP_REPO_CLASS_PROP_KEY
- See Also:
-
EXTCOMP_REPO_CLASS_PROP_VAL
- See Also:
-
EXTCOMP_REPO_CLASS_PROPERTY
- See Also:
-
IDENTITY_TYPE_KEY
- See Also:
-
IDENTITY_TYPE_VAL
- See Also:
-
MAX_AUTH_ATTEMPTS_PROP_KEY
- See Also:
-
PACK_ROUTED_KEY
- See Also:
-
RETURN_SERVICE_DISCO_KEY
- See Also:
-
RETURN_SERVICE_DISCO_VAL
public static final boolean RETURN_SERVICE_DISCO_VAL- See Also:
-
-
Constructor Details
-
ComponentProtocol
public ComponentProtocol()
-
-
Method Details
-
authenticated
- Specified by:
authenticatedin interfaceComponentProtocolHandler
-
authenticationFailed
- Specified by:
authenticationFailedin interfaceComponentProtocolHandler
-
bindHostname
- Specified by:
bindHostnamein interfaceComponentProtocolHandler
-
enableServiceConnectedTimeout
- Overrides:
enableServiceConnectedTimeoutin classConnectionManager<ComponentIOService>
-
getCompRepoItem
- Specified by:
getCompRepoItemin interfaceComponentProtocolHandler
-
getDiscoCategoryType
Description copied from class:BasicComponentMethod returns component category type used for service discovery responses.- Overrides:
getDiscoCategoryTypein classBasicComponent- Returns:
- category type of a component
-
getDiscoDescription
Description copied from class:BasicComponentMethod returns description used for service discovery responses.- Overrides:
getDiscoDescriptionin classBasicComponent- Returns:
- description of a component
-
getProcessor
- Specified by:
getProcessorin interfaceComponentProtocolHandler
-
getStatistics
Description copied from class:AbstractMessageReceiverMethod 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 haveLevel.FINESTassigned and must be put inside the level guard to prevent generating them by the system monitor. The system monitor does not collectFINESTstatistics.
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:
getStatisticsin interfaceStatisticsContainerIfc- Overrides:
getStatisticsin classConnectionManager<ComponentIOService>- Parameters:
list- is aStatistcsListwhere all statistics are stored.
-
getStreamFeatures
- Specified by:
getStreamFeaturesin interfaceComponentProtocolHandler
-
getStreamOpenHandler
- Specified by:
getStreamOpenHandlerin interfaceComponentProtocolHandler
-
initBindings
Description copied from class:BasicComponentInitialize a mapping of key/value pairs which can be used in scripts loaded by the server- Overrides:
initBindingsin classConnectionManager<ComponentIOService>- Parameters:
binds- A mapping of key/value pairs, all of whose keys are Strings.
-
register
Description copied from interface:RegistrarBeanMethod called when bean is being registered allowing developer to programatically register other beans.- Specified by:
registerin interfaceRegistrarBean- Overrides:
registerin classConnectionManager<ComponentIOService>- Parameters:
kernel- - instance from local scope
-
initialize
public void initialize()Description copied from interface:InitializableMethod will be called, when bean will be created, configured and ready to use.- Specified by:
initializein interfaceInitializable- Overrides:
initializein classBasicComponent
-
beforeUnregister
public void beforeUnregister()Description copied from interface:UnregisterAwareMethod called before bean unregister.- Specified by:
beforeUnregisterin interfaceUnregisterAware
-
processSocketData
- Specified by:
processSocketDatain classConnectionManager<ComponentIOService>
-
processUndeliveredPacket
Description copied from class:ConnectionManagerProcesses undelivered packets- Specified by:
processUndeliveredPacketin classConnectionManager<ComponentIOService>- Parameters:
stamp- - timestamp when packet was received to be written to XMPPIOService
-
reconnectionFailed
- Specified by:
reconnectionFailedin classConnectionManager<ComponentIOService>
-
serviceStarted
- Overrides:
serviceStartedin classConnectionManager<ComponentIOService>
-
serviceStopped
- Specified by:
serviceStoppedin interfaceIOServiceListener<ComponentIOService>- Overrides:
serviceStoppedin classConnectionManager<ComponentIOService>
-
setRepo
-
start
public void start()- Specified by:
startin interfaceMessageReceiver- Overrides:
startin classConnectionManager<ComponentIOService>
-
tlsHandshakeCompleted
- Specified by:
tlsHandshakeCompletedin interfaceIOServiceListener<ComponentIOService>
-
unbindHostname
- Specified by:
unbindHostnamein interfaceComponentProtocolHandler
-
writePacketToSocket
- Overrides:
writePacketToSocketin classConnectionManager<ComponentIOService>
-
xmppStreamClosed
- Specified by:
xmppStreamClosedin interfaceXMPPIOServiceListener<ComponentIOService>
-
xmppStreamOpened
- Specified by:
xmppStreamOpenedin interfaceXMPPIOServiceListener<ComponentIOService>
-
itemAdded
- Specified by:
itemAddedin interfaceRepositoryChangeListenerIfc<CompRepoItem>
-
itemUpdated
- Specified by:
itemUpdatedin interfaceRepositoryChangeListenerIfc<CompRepoItem>
-
itemRemoved
- Specified by:
itemRemovedin interfaceRepositoryChangeListenerIfc<CompRepoItem>
-
getDefTrafficThrottling
- Overrides:
getDefTrafficThrottlingin classConnectionManager<ComponentIOService>
-
getMaxInactiveTime
protected long getMaxInactiveTime()- Specified by:
getMaxInactiveTimein classConnectionManager<ComponentIOService>
-
getMaxQueueSize
- Overrides:
getMaxQueueSizein classAbstractMessageReceiver
-
getXMPPIOService
- Overrides:
getXMPPIOServicein classConnectionManager<ComponentIOService>
-
getXMPPIOServiceInstance
- Specified by:
getXMPPIOServiceInstancein classConnectionManager<ComponentIOService>
-
isHighThroughput
protected boolean isHighThroughput()- Overrides:
isHighThroughputin classConnectionManager<ComponentIOService>
-