Package tigase.vhosts
Class VHostManager
- All Implemented Interfaces:
ClusteredComponentIfc,Configurable,XMPPService,ConfigurationChangedAware,Initializable,RegistrarBean,ComponentRegistrator,ServerComponent,StatisticsContainer,StatisticsContainerIfc,VHostListener,VHostManagerIfc
@Bean(name="vhost-man",
parent=Kernel.class,
active=true,
exportable=true)
@ConfigType({DefaultMode,SessionManagerMode,ConnectionManagersMode,ComponentMode})
public class VHostManager
extends AbstractComponentRegistrator<VHostListener>
implements VHostManagerIfc, StatisticsContainer, RegistrarBean
Describe class VHostManager here.
Created: Fri Nov 21 14:28:20 2008
Created: Fri Nov 21 14:28:20 2008
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtension -
Field Summary
FieldsFields inherited from class tigase.server.AbstractComponentRegistrator
componentsFields 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.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 TypeMethodDescriptionvoidaddComponentDomain(String domain) Adds a component domain to the collection of local component domains.voidcomponentAdded(VHostListener component) Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponentscollection.voidcomponentRemoved(VHostListener component) Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponentscollection.Method returns a list of all hosted VHosts.getComponentsForLocalDomain(String domain) The method returns an array with server components which can process packets for a given local domain.getComponentsForNonLocalDomain(String domain) The method returns an array of server components which can process packets sent to non-local domain.MethodgetDefVHostItemreturns a default VHost for the installation.Method returns component category type used for service discovery responses.Method returns description used for service discovery responses.voidgetStatistics(StatisticsList list) getVHostItem(String domain) Returns an object with all domain properties for given domain.getVHostItemDomainOrComponent(String domain) Returns an object with all domain properties for a given domain or base domain if passed domain is name of subdomain used by component.voidinitBindings(Bindings binds) Initialize a mapping of key/value pairs which can be used in scripts loaded by the servervoidbooleanisAnonymousEnabled(String domain) This method checks whether anonymous login is enabled for a given domain.booleanisCorrectType(ServerComponent component) Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class.booleanisLocalDomain(String domain) This method checks whether given domain is server by this server instance.booleanisLocalDomainOrComponent(String domain) Method check if domains is locally hosted as a vhost or a component of a vhost.voidMethod called when bean is being registered allowing developer to programatically register other beans.voidremoveComponentDomain(String domain) Removes a domain previously registered by a component.voidMethod used to assign component name (localpart of the component)voidunregister(Kernel kernel) Method called while bean is being unregistered.Methods inherited from class tigase.server.AbstractComponentRegistrator
addComponent, deleteComponent, getComponent, newPacketId, releaseMethods inherited from class tigase.server.BasicComponent
beanConfigurationChanged, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, everyHour, everyMinute, everySecond, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDiscoCategory, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, initialize, isAdmin, isInitializationComplete, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processPacket, processScriptCommand, reloadScripts, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setCompId, 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.ServerComponent
getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, releaseMethods inherited from interface tigase.stats.StatisticsContainerIfc
getName
-
Field Details
-
repo
-
-
Constructor Details
-
VHostManager
public VHostManager()Creates a newVHostManagerinstance.
-
-
Method Details
-
addComponentDomain
Description copied from interface:VHostManagerIfcAdds a component domain to the collection of local component domains. This is mainly needed/used by an external components connecting to the server and binding hostnames. Normally the s2s component have no way of knowing about this new and temporary domains handled by the server and would refuse all connections for these domains. Adding them to a collection of component domains allows the s2s to detect them and accept connection for them.- Specified by:
addComponentDomainin interfaceVHostManagerIfc- Overrides:
addComponentDomainin classBasicComponent- Parameters:
domain- is a component domain name added to the collection.
-
componentAdded
Description copied from class:AbstractComponentRegistratorMethod provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponentscollection.- Specified by:
componentAddedin classAbstractComponentRegistrator<VHostListener>- Parameters:
component- is a reference to the component just added to the collection.
-
componentRemoved
Description copied from class:AbstractComponentRegistratorMethod provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponentscollection.- Specified by:
componentRemovedin classAbstractComponentRegistrator<VHostListener>- Parameters:
component- is a reference to the component removed from the collection.
-
initBindings
Description copied from class:BasicComponentInitialize a mapping of key/value pairs which can be used in scripts loaded by the server- Overrides:
initBindingsin classBasicComponent- Parameters:
binds- A mapping of key/value pairs, all of whose keys are Strings.
-
removeComponentDomain
Description copied from interface:VHostManagerIfcRemoves a domain previously registered by a component. It should not be normally used.- Specified by:
removeComponentDomainin interfaceVHostManagerIfc- Overrides:
removeComponentDomainin classBasicComponent- Parameters:
domain- is a component domain name being removed from the collection.
-
register
Description copied from interface:RegistrarBeanMethod called when bean is being registered allowing developer to programatically register other beans.- Specified by:
registerin interfaceRegistrarBean- Parameters:
kernel- - instance from local scope
-
unregister
Description copied from interface:RegistrarBeanMethod called while bean is being unregistered.- Specified by:
unregisterin interfaceRegistrarBean- Parameters:
kernel- - instance from local scope
-
getAllVHosts
Description copied from interface:VHostManagerIfcMethod returns a list of all hosted VHosts.- Specified by:
getAllVHostsin interfaceVHostManagerIfc
-
getComponentsForLocalDomain
Description copied from interface:VHostManagerIfcThe method returns an array with server components which can process packets for a given local domain. If the domain is not localnullis returned. The given domain may also consist of: component nameServerComponent.getName()plus any local domain but only if the component returnstruefrom method call:VHostListener.handlesNameSubdomains()- Specified by:
getComponentsForLocalDomainin interfaceVHostManagerIfc- Parameters:
domain- is aStringwith a domain name to check. It may by just a local domain or string created with component name and localdomain.- Returns:
- an array with ServerComponents which can handle packets for a given domain or
nullif no component found for a given domain.
-
getComponentsForNonLocalDomain
Description copied from interface:VHostManagerIfcThe method returns an array of server components which can process packets sent to non-local domain. Most commonly there is only one such component: server-2-server connections manager. It is possible however there might be more such components. All of them will get the packet for processing.- Specified by:
getComponentsForNonLocalDomainin interfaceVHostManagerIfc- Parameters:
domain- is aStringwith a domain to check. At the moment this parameter is ignored. In the future it will be possible to assign a specific component for any non-local domain.- Returns:
- an array with ServerComponents which can handle packets to non-local domains.
-
getDefVHostItem
Description copied from interface:VHostManagerIfcMethodgetDefVHostItemreturns a default VHost for the installation. In most cases this is the first VHost defined in the server configuration.- Specified by:
getDefVHostItemin interfaceVHostManagerIfc- Overrides:
getDefVHostItemin classBasicComponent- Returns:
- a
BareJIDvalue of the default VHost for the installation.
-
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
-
getStatistics
- Specified by:
getStatisticsin interfaceStatisticsContainerIfc- Overrides:
getStatisticsin classBasicComponent
-
getVHostItem
Description copied from interface:VHostManagerIfcReturns an object with all domain properties for given domain.- Specified by:
getVHostItemin interfaceVHostManagerIfc- Overrides:
getVHostItemin classBasicComponent- Parameters:
domain- is a domain name- Returns:
- a VHostItem object with all domain properties.
-
getVHostItemDomainOrComponent
Description copied from interface:VHostManagerIfcReturns an object with all domain properties for a given domain or base domain if passed domain is name of subdomain used by component.- Specified by:
getVHostItemDomainOrComponentin interfaceVHostManagerIfc- Parameters:
domain- is a domain name- Returns:
- a VHostItem object with all domain properties.
-
isAnonymousEnabled
Description copied from interface:VHostManagerIfcThis method checks whether anonymous login is enabled for a given domain. That is it checks whether this domains is local and anonymousEnabled parameter for this domain is set to true.- Specified by:
isAnonymousEnabledin interfaceVHostManagerIfc- Parameters:
domain- is a String with domain name to check.- Returns:
- a boolean value indicating whether given domain is enabled for anonymous logins or not.
-
isCorrectType
Description copied from class:AbstractComponentRegistratorMethod checks whether the component provides as method parameter is correct type that is implements special interface or extends special class. Result of the method determines whether the component can be added to the internalcomponentscollection.- Specified by:
isCorrectTypein classAbstractComponentRegistrator<VHostListener>- Parameters:
component- is a reference to the component being checked.- Returns:
- a
booleanvalue oftrueif the component is of a correct type andfalseotherwise.
-
isLocalDomain
Description copied from interface:VHostManagerIfcThis method checks whether given domain is server by this server instance. That is if this domain is local to this server installation. It doesn't check however whether the domain is disabled or enabled. It only checks if tthe list of local domains contains this virtual host.- Specified by:
isLocalDomainin interfaceVHostManagerIfc- Overrides:
isLocalDomainin classBasicComponent- Parameters:
domain- is a String with domain name to check.- Returns:
- a boolean value indicating whether given domain is local or not.
-
isLocalDomainOrComponent
Description copied from interface:VHostManagerIfcMethod check if domains is locally hosted as a vhost or a component of a vhost.- Specified by:
isLocalDomainOrComponentin interfaceVHostManagerIfc- Overrides:
isLocalDomainOrComponentin classBasicComponent- Returns:
- true - if domain is locally hosted as a vhost of a component of a vhost.
-
setName
Description copied from interface:ServerComponentMethod used to assign component name (localpart of the component)- Specified by:
setNamein interfaceServerComponent- Overrides:
setNamein classBasicComponent- Parameters:
name- to be assigned
-
initializeRepository
- Throws:
TigaseDBException
-
generateSecret
-
getComponentRepository
-