public class BasicComponent extends Object implements Configurable, XMPPService, VHostListener
Modifier and Type | Field and Description |
---|---|
protected Set<tigase.xmpp.BareJID> |
admins |
static String |
ALL_PROP_KEY
Field description
|
static String |
COMMAND_PROP_NODE
Field description
|
protected Map<String,CommandIfc> |
scriptCommands
Field description
|
static String |
SCRIPTS_DIR_PROP_DEF
Field description
|
static String |
SCRIPTS_DIR_PROP_KEY
Field description
|
protected VHostManagerIfc |
vHostManager
Field description
|
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_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, 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
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
Constructor and Description |
---|
BasicComponent() |
Modifier and Type | Method and Description |
---|---|
void |
addComponentDomain(String domain)
Method description
|
boolean |
canCallCommand(tigase.xmpp.JID jid,
String commandId) |
boolean |
checkCommandAcl(tigase.xmpp.JID jid,
EnumSet<CmdAcl> acl)
Method description
|
tigase.xmpp.JID |
getComponentId()
Method description
|
ComponentInfo |
getComponentInfo()
Allows to obtain various informations about components
|
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. |
tigase.xmpp.BareJID |
getDefHostName()
Method description
|
tigase.xmpp.BareJID |
getDefVHostItem()
Method description
|
String |
getDiscoCategory()
Method description
|
String |
getDiscoCategoryType()
Method description
|
String |
getDiscoDescription()
Method description
|
List<tigase.xml.Element> |
getDiscoFeatures()
Deprecated.
|
List<tigase.xml.Element> |
getDiscoFeatures(tigase.xmpp.JID from)
Returns features for top level disco info
|
tigase.xml.Element |
getDiscoInfo(String node,
tigase.xmpp.JID jid)
Deprecated.
|
tigase.xml.Element |
getDiscoInfo(String node,
tigase.xmpp.JID jid,
tigase.xmpp.JID from)
Returns service discovery info for the component.
|
List<tigase.xml.Element> |
getDiscoItems(String node,
tigase.xmpp.JID jid)
Deprecated.
|
List<tigase.xml.Element> |
getDiscoItems(String node,
tigase.xmpp.JID jid,
tigase.xmpp.JID from)
Returns service discovery items for the component.
|
String |
getName()
Method description
|
protected Map<String,CommandIfc> |
getScriptCommands()
Method description
|
List<tigase.xml.Element> |
getScriptItems(String node,
tigase.xmpp.JID jid,
tigase.xmpp.JID from)
Method description
|
protected ServiceEntity |
getServiceEntity()
Method description
|
VHostItem |
getVHostItem(String domain)
Method description
|
boolean |
handlesLocalDomains()
Indicates whether the component accepts packets to all local domains.
|
boolean |
handlesNameSubdomains()
Indicates whether the component can handle packets to 'name' subdomain.
|
boolean |
handlesNonLocalDomains()
Indicates whether the component can handle all packets to
non-local domains.
|
void |
initBindings(Bindings binds)
Initialize a mapping of key/value pairs which can be used in scripts
loaded by the server
|
void |
initializationCompleted()
Method is called by
MessageRouter when all the startup components of
the server have been loaded and configured through setProperties(...) call. |
boolean |
isAdmin(tigase.xmpp.JID jid)
Method description
|
boolean |
isInitializationComplete()
Method returns information about whether the initialization process
(initializationCompleted()) method has been called.
|
boolean |
isLocalDomain(String domain)
Method description
|
boolean |
isLocalDomainOrComponent(String domain)
Method description
|
protected boolean |
isNonAdminCommands()
Method description
|
boolean |
isSubdomain()
Method returns true is component should be represented as subdomain
|
void |
processPacket(Packet packet,
Queue<Packet> results)
processPacket is a blocking processing method implemented
by all components. |
protected boolean |
processScriptCommand(Packet pc,
Queue<Packet> results)
Method description
|
void |
release()
Method description
|
void |
removeComponentDomain(String domain)
Method description
|
void |
removeServiceDiscoveryItem(String jid,
String node,
String description)
Method description
|
void |
setName(String name)
Method description
|
void |
setProperties(Map<String,Object> props)
Sets all configuration properties for the object.
|
void |
setVHostManager(VHostManagerIfc manager)
Sets the VHostManager which works on this server installation.
|
void |
updateServiceDiscoveryItem(String jid,
String node,
String description,
boolean admin)
Method description
|
void |
updateServiceDiscoveryItem(String jid,
String node,
String description,
boolean admin,
String... features)
Method description
|
void |
updateServiceDiscoveryItem(String jid,
String node,
String description,
String category,
String type,
boolean admin,
String... features)
Method description
|
void |
updateServiceEntity()
Method description
|
public static final String ALL_PROP_KEY
public static final String COMMAND_PROP_NODE
public static final String SCRIPTS_DIR_PROP_DEF
public static final String SCRIPTS_DIR_PROP_KEY
protected VHostManagerIfc vHostManager
protected Map<String,CommandIfc> scriptCommands
protected Set<tigase.xmpp.BareJID> admins
public void addComponentDomain(String domain)
domain
- public boolean canCallCommand(tigase.xmpp.JID jid, String commandId)
jid
- commandId
- boolean
public boolean checkCommandAcl(tigase.xmpp.JID jid, EnumSet<CmdAcl> acl)
jid
- acl
- boolean
public boolean handlesLocalDomains()
VHostListener
handlesLocalDomains
in interface VHostListener
public boolean handlesNameSubdomains()
VHostListener
handlesNameSubdomains
in interface VHostListener
public boolean handlesNonLocalDomains()
VHostListener
handlesNonLocalDomains
in interface VHostListener
public void initBindings(Bindings binds)
binds
- A mapping of key/value pairs, all of whose keys are Strings.public void initializationCompleted()
ServerComponent
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.initializationCompleted
in interface ServerComponent
public void processPacket(Packet packet, Queue<Packet> results)
ServerComponent
processPacket
is a blocking processing method implemented
by all components. This method processes packet and returns results
instantly without waiting for any resources.processPacket
in interface ServerComponent
packet
- a Packet
valuepublic void release()
ServerComponent
release
in interface ServerComponent
public void removeComponentDomain(String domain)
domain
- public void removeServiceDiscoveryItem(String jid, String node, String description)
jid
- node
- description
- public void updateServiceDiscoveryItem(String jid, String node, String description, boolean admin)
jid
- node
- description
- admin
- public void updateServiceDiscoveryItem(String jid, String node, String description, boolean admin, String... features)
jid
- node
- description
- admin
- features
- public void updateServiceDiscoveryItem(String jid, String node, String description, String category, String type, boolean admin, String... features)
jid
- node
- description
- category
- type
- admin
- features
- public void updateServiceEntity()
public tigase.xmpp.JID getComponentId()
ServerComponent
getComponentId
in interface ServerComponent
public ComponentInfo getComponentInfo()
ServerComponent
getComponentInfo
in interface ServerComponent
public Map<String,Object> getDefaults(Map<String,Object> params)
Configurable
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
.getDefaults
in interface Configurable
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.Map
with the component default configuration.public tigase.xmpp.BareJID getDefHostName()
BareJID
public tigase.xmpp.BareJID getDefVHostItem()
BareJID
public String getDiscoCategory()
String
public String getDiscoCategoryType()
String
public String getDiscoDescription()
String
@Deprecated public List<tigase.xml.Element> getDiscoFeatures()
List<Element>
public List<tigase.xml.Element> getDiscoFeatures(tigase.xmpp.JID from)
XMPPService
getDiscoFeatures
in interface XMPPService
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.@Deprecated public tigase.xml.Element getDiscoInfo(String node, tigase.xmpp.JID jid)
node
- jid
- Element
public tigase.xml.Element getDiscoInfo(String node, tigase.xmpp.JID jid, tigase.xmpp.JID from)
XMPPService
getDiscoInfo
in interface XMPPService
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.@Deprecated public List<tigase.xml.Element> getDiscoItems(String node, tigase.xmpp.JID jid)
node
- jid
- List<Element>
public List<tigase.xml.Element> getDiscoItems(String node, tigase.xmpp.JID jid, tigase.xmpp.JID from)
XMPPService
getDiscoItems
in interface XMPPService
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.public String getName()
ServerComponent
getName
in interface ServerComponent
public List<tigase.xml.Element> getScriptItems(String node, tigase.xmpp.JID jid, tigase.xmpp.JID from)
node
- jid
- from
- List<Element>
public VHostItem getVHostItem(String domain)
domain
- VHostItem
public boolean isAdmin(tigase.xmpp.JID jid)
jid
- boolean
public boolean isInitializationComplete()
ServerComponent
isInitializationComplete
in interface ServerComponent
true
if initialization of the object has been completed
false
otherwisepublic boolean isLocalDomain(String domain)
domain
- boolean
public boolean isLocalDomainOrComponent(String domain)
domain
- boolean
public boolean isSubdomain()
boolean
public void setName(String name)
ServerComponent
setName
in interface ServerComponent
public void setProperties(Map<String,Object> props) throws ConfigurationException
Configurable
setProperties
in interface Configurable
props
- Map
with the configurationConfigurationException
- - if setting configuration will
fail which will make it unable
to workpublic void setVHostManager(VHostManagerIfc manager)
VHostListener
setVHostManager
in interface VHostListener
manager
- is a reference to VHostManager available on the server
installation.protected boolean processScriptCommand(Packet pc, Queue<Packet> results)
pc
- results
- boolean
protected Map<String,CommandIfc> getScriptCommands()
Map<String,CommandIfc>
protected ServiceEntity getServiceEntity()
ServiceEntity
protected boolean isNonAdminCommands()
boolean
Copyright © 2016 "Tigase, Inc.". All rights reserved.