OF-2260: Add user's name to listing of group members
When looking at the members of a group, it's handy to have listed the (full) name of each member, instead of only its username.
OF-2243: Version check task should not be busy doing nothing
Instead of scheduling an immediate task that does nothing for X seconds, schedule a task that will start in X seconds, that immediately does something.
This prevents using up a thread from the TaskEngine that's not doing anything for a significant amount of time.
OF-2257: Expose stats for all ThreadPoolExecutors via JMX
In this commit, all (non-short-lived) ThreadPoolExecutors that are used in Openfire have their statistics exposed via XMPP.
The rationale here is that it is desirable to be able to determine when a particular thread pool is being used at its maximum capacity (in which case slowdowns could occur).
OF-2257: Replace usage of TaskEngine prior to server initialization
Prioer to Openfire being initialized, TaskEngine should not be used. This prevents issues with TaskEngine using properties that are yet to be initialized. Although TaskManager does not currently do that in its present state, it will, when support for JMX is added (OF-2257).
This commit replaces the usage of TaskEngine with a generic Timer.
OF-2258: Make thread pool for roster manager configurable.
This replaces the hard-coded configuration of the thread pool in the roster manager with properties that can be modified by an admin.
- `xmpp.client.roster.threadpool.size.core`: The number of threads to keep in the thread pool that is used to invoke roster event listeners, even if they are idle.
- `xmpp.client.roster.threadpool.size.max`: The maximum number of threads to allow in the thread pool that is used to invoke roster event listeners.
- `xmpp.client.roster.threadpool.keepalive`: The number of threads in the thread pool that is used to invoke roster event listeners is greater than the core, this is the maximum time that excess idle threads will wait for new tasks before terminating.