public class BasicComponent extends Object implements Configurable, XMPPService, VHostListener, ClusteredComponentIfc, Initializable, ConfigurationChangedAware
Modifier and Type | Class and Description |
---|---|
static class |
BasicComponent.ServerInfoVHostItemExtension |
Modifier and Type | Field and Description |
---|---|
protected ConcurrentSkipListSet<BareJID> |
admins |
static String |
ALL_PROP_KEY |
static String |
COMMAND_PROP_NODE |
protected Map<String,CommandIfc> |
scriptCommands |
protected ScriptEngineManager |
scriptEngineManager |
static String |
SCRIPTS_DIR_PROP_DEF |
static String |
SCRIPTS_DIR_PROP_KEY |
protected ConcurrentSkipListSet<String> |
trusted |
protected VHostManagerIfc |
vHostManager |
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
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
Constructor and Description |
---|
BasicComponent() |
Modifier and Type | Method and Description |
---|---|
void |
addComponentDomain(String domain) |
void |
beanConfigurationChanged(Collection<String> changedFields)
Method called when configuration was applied to bean.
|
boolean |
canCallCommand(JID jid,
String commandId)
Method checks if following adhoc command can execute from this JID
|
boolean |
canCallCommand(JID jid,
String domain,
String commandId) |
boolean |
checkCommandAcl(JID jid,
Set<CmdAcl> acl)
Check if entity with JID is allowed ot execute command with passed access control list.
|
boolean |
checkCommandAcl(JID jid,
String domain,
Set<CmdAcl> acl)
Check if entity with JID is allowed ot execute command with passed access control list.
|
protected ScriptEngineManager |
createScriptEngineManager() |
void |
everyHour() |
void |
everyMinute() |
void |
everySecond() |
JID |
getComponentId()
Method returns component jid in form of the component name followed by server hostname as a domain.
|
ComponentInfo |
getComponentInfo()
Allows to obtain various informations about components
|
Map<String,Object> |
getDefaults(Map<String,Object> params)
Deprecated.
|
BareJID |
getDefHostName() |
BareJID |
getDefVHostItem() |
String |
getDiscoCategory()
Method returns category of a component used for service discovery responses.
|
String |
getDiscoCategoryType()
Method returns component category type used for service discovery responses.
|
String |
getDiscoDescription()
Method returns description used for service discovery responses.
|
Element |
getDiscoExtensionsForm(String domain) |
List<Element> |
getDiscoFeatures()
Method returns list of features provided by this component.
|
List<Element> |
getDiscoFeatures(JID from)
Method returns list of features provided by this component for provided JID.
|
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.
|
String |
getName()
Method returns name of the component.
|
List<JID> |
getNodesConnected() |
List<JID> |
getNodesConnectedWithLocal() |
protected Map<String,CommandIfc> |
getScriptCommands() |
List<Element> |
getScriptItems(String node,
JID jid,
JID from) |
protected ServiceEntity |
getServiceEntity() |
Optional<Element> |
getServiceEntityCaps(JID fromJid) |
void |
getStatistics(StatisticsList list) |
VHostItem |
getVHostItem(String domain) |
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. |
void |
initialize()
Method will be called, when bean will be created, configured and ready to use.
|
boolean |
isAdmin(JID jid) |
boolean |
isInitializationComplete()
Method returns information about whether the initialization process (initializationCompleted()) method has been
called.
|
boolean |
isLocalDomain(String domain) |
boolean |
isLocalDomainOrComponent(String domain) |
protected boolean |
isNonAdminCommands() |
boolean |
isSubdomain() |
boolean |
isTrusted(JID jid) |
boolean |
isTrusted(String jid) |
void |
nodeConnected(String node)
Method is called on cluster node connection event.
|
void |
nodeDisconnected(String node)
Method is called on cluster node disconnection event.
|
protected void |
onNodeConnected(JID jid) |
protected void |
onNodeDisconnected(JID jid) |
void |
processPacket(Packet packet,
Queue<Packet> results)
processPacket is a blocking processing method implemented by all components. |
boolean |
processScriptCommand(Packet pc,
Queue<Packet> results) |
void |
release()
Method called when component is being stopped and unloaded.
|
void |
removeComponentDomain(String domain) |
void |
removeServiceDiscoveryItem(String jid,
String node,
String description) |
void |
setAdmins(Set<BareJID> admins) |
void |
setClusterController(ClusterControllerIfc cl_controller)
Set's the configures the cluster controller object for cluster communication and API.
|
void |
setCommandsACL(ConcurrentHashMap<String,CopyOnWriteArraySet<CmdAcl>> commandsACL) |
void |
setCompId(JID jid) |
void |
setName(String name)
Method used to assign component name (localpart of the component)
|
void |
setProperties(Map<String,Object> props)
Deprecated.
|
void |
setScriptsBaseDir(String scriptsBaseDir) |
void |
setVHostManager(VHostManagerIfc manager)
Sets the VHostManager which works on this server installation.
|
void |
updateServiceDiscoveryItem(String jid,
String node,
String description,
boolean admin) |
void |
updateServiceDiscoveryItem(String jid,
String node,
String description,
boolean admin,
String... features) |
void |
updateServiceDiscoveryItem(String jid,
String node,
String description,
String category,
String type,
boolean admin,
String... features) |
void |
updateServiceEntity() |
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
@ConfigField(desc="List of admins JIDs", alias="admins") protected ConcurrentSkipListSet<BareJID> admins
protected Map<String,CommandIfc> scriptCommands
protected ConcurrentSkipListSet<String> trusted
@Inject(nullAllowed=true) protected VHostManagerIfc vHostManager
protected ScriptEngineManager scriptEngineManager
public void addComponentDomain(String domain)
public void beanConfigurationChanged(Collection<String> changedFields)
ConfigurationChangedAware
beanConfigurationChanged
in interface ConfigurationChangedAware
changedFields
- collection of field names which were changedpublic boolean canCallCommand(JID jid, String commandId)
jid
- - JID of entity which wants to execute commandcommandId
- - ID of an adhoc commandboolean
public boolean checkCommandAcl(JID jid, Set<CmdAcl> acl)
jid
- - entity JIDacl
- - access control listboolean
public boolean checkCommandAcl(JID jid, String domain, Set<CmdAcl> acl)
jid
- - entity JIDdomain
- - domain for which check permissionacl
- - access control listboolean
public void everyHour()
public void everyMinute()
public void everySecond()
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 nodeConnected(String node)
ClusteredComponentIfc
nodeConnected
in interface ClusteredComponentIfc
node
- is a hostname of a cluster node generating the event.public void nodeDisconnected(String node)
ClusteredComponentIfc
nodeDisconnected
in interface ClusteredComponentIfc
node
- is a hostname of a cluster node generating the event.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)
public void removeServiceDiscoveryItem(String jid, String node, String description)
public void setClusterController(ClusterControllerIfc cl_controller)
ClusteredComponentIfc
setClusterController
in interface ClusteredComponentIfc
cl_controller
- cluster controller object used for cluster communicationpublic void updateServiceDiscoveryItem(String jid, String node, String description, boolean admin)
public void updateServiceDiscoveryItem(String jid, String node, String description, boolean admin, String... features)
public void updateServiceDiscoveryItem(String jid, String node, String description, String category, String type, boolean admin, String... features)
public void updateServiceEntity()
public JID getComponentId()
ServerComponent
getComponentId
in interface ServerComponent
public void setCompId(JID jid)
public ComponentInfo getComponentInfo()
ServerComponent
getComponentInfo
in interface ServerComponent
@Deprecated 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 BareJID getDefHostName()
public BareJID getDefVHostItem()
public String getDiscoCategory()
public String getDiscoCategoryType()
public String getDiscoDescription()
public List<Element> getDiscoFeatures()
public List<Element> getDiscoFeatures(JID from)
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.public Element getDiscoInfo(String node, JID jid, 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.public List<Element> getDiscoItems(String node, JID jid, 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 void setName(String name)
ServerComponent
setName
in interface ServerComponent
name
- to be assignedpublic void getStatistics(StatisticsList list)
public boolean isAdmin(JID jid)
public boolean isInitializationComplete()
ServerComponent
isInitializationComplete
in interface ServerComponent
true
if initialization of the object has been completed false
otherwisepublic boolean isLocalDomain(String domain)
public boolean isLocalDomainOrComponent(String domain)
public boolean isSubdomain()
public boolean isTrusted(JID jid)
public boolean isTrusted(String jid)
@Deprecated 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 setCommandsACL(ConcurrentHashMap<String,CopyOnWriteArraySet<CmdAcl>> commandsACL)
public void setScriptsBaseDir(String scriptsBaseDir)
public void setVHostManager(VHostManagerIfc manager)
VHostListener
setVHostManager
in interface VHostListener
manager
- is a reference to VHostManager available on the server installation.public void initialize()
Initializable
initialize
in interface Initializable
protected ScriptEngineManager createScriptEngineManager()
protected void onNodeConnected(JID jid)
protected void onNodeDisconnected(JID jid)
protected Map<String,CommandIfc> getScriptCommands()
protected ServiceEntity getServiceEntity()
protected boolean isNonAdminCommands()
Copyright © 2004–2020 "Tigase, Inc.". All rights reserved.