Tigase v7.1.1 includes changes made for v7.1.0, so below is included major changes and highlights for v7.1.0 of Tigase. The lists of specific fixes will not be included in this documentation.
Tigase has undergone a few major changes to our code and structure. To continue to use Tigase, a few changes may be needed to be made to your systems. Please see them below:
The HTTP component has been renamed, if you still have the old tigase.rest.RestMessageReciever in your init.properties file, please update the component name to:
tigase.http.HttpMessageReceiver
As Oracle has dropped support for version 7 of it’s Java runtime environment and developer kit, we have moved to version 8 of the JDK. Furthermore, some new features and fixes for Tigase Server now require the use of JDK v8 or later. Please upgrade your Java packages from this link.
Tigase has undergone a number or database schema changes, the current versions being main database schema v7.1 and pubsub schema v3.2.0. If you are upgrading to v7.1.0 from a previous version of tigase, it is recomended you visit this section in the documentation to prepare your new installation.
The plugin handling all presence processing has been split from one plugin (Presence.java) into separate plugins: - PresenceAbstract.java handles most common presence-related methods, and is also used by the following two plugins. - PresenceSubscription.java to handle subscription presence processing like for roster updates. - PresenceState.java to handle initial presences from new logins.
Tigase now features an HTTP API that not only allows web client chat, but administrators can change settings, manage users, and even write and run scripts all from the comfort of a browser window. Furthermore, commands can be passed through this interface using REST to create and run custom scripts and commands. We plan on expanding on the look and feel of this interface as time goes on, but in the meantime enjoy the real-time XMPP experience now with a user-friendly GUI.
Tigase now comes with its own build-in web XMPP client! It can be accessed from http://yourhost.com:8080/ui/. For more details, see the Admin UI guide.
XEP-0334 is now supported. See this section for details.
Added aliases for bean properties to allow for a 'high level' of configuration. Instead of using
component/bean-name/property=value
The following easier to use method will work
component/property=value
Client State Indication is now enabled by default on Tigase XMPP Servers. Details here.
Tigase now allows for wildcards in setting server certificate per Vhosts. See more in this section.
Administrators can now set that maximum number of users allowed on specific MUCs. See MUC Room Configuration.
Tigase now supports REST commands via HTTP, they can be sent from ad-hoc commands, a web interface, or other REST tools. See documentation for more.
Tigase can now support users with empty nicknames. See this for details.
Tigase now has support to enable and change Offline Message Limits as handled by AMP. Documentation here.
A new way to store offline messages has been implemented, it may not replace standard offline messages, but can be used in other ways. Documentation here.
Components can now be added to trusted list and will be shared with all clustered servers. #3244
Tigase Mailer extension is now included in distributions of Tigase server. This extension enables the monitor component to deliver E-mails to and from specified e-mail addresses when monitor are triggered. For more information see monitor mailer section.
Tigase now has a simple PubSub component called EventBus to report tasks and triggers. More details are available Here.
Blocking Command support has been added to Tigase, all functions of XEP-0191 should be implemented. See Admin Guide for details.
Maximum stream timeout and default stream timtout times can now be set in init.properties. Details of these two settings can be found here.
Default tigase.conf file has been updated with the following change in JVM options:
PRODUCTION_HEAP_SETTINGS=" -Xms5G -Xmx5G " # heap memory settings must be adjusted on per deployment-base! JAVA_OPTIONS="${GC} ${EX} ${ENC} ${DRV} ${JMX_REMOTE_IP} -server ${PRODUCTION_HEAP_SETTINGS} -XX:MaxDirectMemorySize=128m "
As the comment says, we recommend adjusting the heap memory settings for your specific installations. #3567
After significant testing and investigation, we have improved the Java GC settings to keep memory usage from becoming too high on systems. #3248
For more information about JVM defaults and changes to settings, see our Documentation.
GetUserInfo
command has been expanded to obtain user login and logout times in addition to standard information. See this section for full details.
--ws-allow-unmasked-frames=false
Allows for unmasked frames to be sent to Tigase server VIA Websocket and not force-close the connection when set to true. RFC 6455 specifies that all clients must mask frames that it sends to the server over Websocket connections. If unmasked frames are sent, regardless of any encryption, the server must close the connection. Some clients however, may not support masking frames, or you may wish to bypass this security measure for development purposes.
--vhost-disable-dns-check=true
Disables DNS checking for vhosts when changed or edited.
When new vhosts are created, Tigase will automatically check for SRV records and proper DNS settings for the new vhosts to ensure connectivity for outside users, however if these validations fail, you will be unable to save those changes. This setting allows you to bypass that checking.
A watchdog property is now available to monitor stale connections and sever them before they become a problem. More details here.
The Web Installer Setup Page, available through http://yourserver.com/8080/setup/ now requires an admin level JID or a user/password combo specified in init.properties. See the Web Installer section for default settings. See Component Properties section for details on the new property.
Admins may now configure Offline Message Receipts Storage to specify filters and controls as to what they want stored in offline messages. See more details here.
In order to protect Tigase servers from DOS attacks, a limit on number of account registrations per second has been implemented. See this link for configuration settings.
You can now have Tigase ignore packets delivered to unavailable resources to avoid having a packet bounce around and create unnecessary traffic. Learn how here.
Cluster commands now operate at CLUSTER priority, giving the packets higher status than HIGH which otherwise has caused issues during massive disconnects. New Configuration options come with this change. The first being able to change the number of connections for CLUSTER packets using the following init.property setting:
cl-comp/cluster-sys-connections-per-node[I]=2
Also a new class which implements the a new connection selection interface, but uses the old mechanism where any connection can send any command.
cl-comp/connection-selector=tigase.cluster.ClusterConnectionSelectorOld
Watchdog has now been added to test cluster connections by default. Watchdog sends an XMPP ping to all cluster connections every 30 seconds and checks to see if a ping response has been received in the last 3 minutes. If not, the cluster connection will be dropped automatically. Global watchdog settings will not impact cluster testing feature.
Tigase can now generate cluster maps through a new API. See the development guide for a description of the API.
With the release of Tigase XMPP server v7.1.0, our licensing procedures have changed. For more information about how to obtain, retain, and install your license, please see this section.
Message Archive can now be configured to store messages that may not have body element, this option is explained in this section.
Data from Unified Archive or Message Archive can be automatically or manually purged depending on age or expired status. Information on configuring this is available here.
Server Statistics for Tigase XMPP Server have been expanded, and now will print at the close of a server session, or may be obtained in the normal way. Note that some statistics have changed since previous versions, and may have different formatting. See the Statistics Description section of the Administration guide for all current server statistics.
It’s possible now to redirect connections on one port to be forced to connect to another port using the force-redirect-to
setting. Details here.
Tigase now has a Dual IP setup which can now use a separate internal and external IP and use a DNS resolver for the connection redirection. Setup instructions are Located here.
It is now possible to conduct error counting and collect it from statistics. This feature is explained in more detail here.
3 new statistics were added to basic-conf
to help monitor database connection stability, and how often the XMPP Server needs to reconnect to the database. The list of new statistics are listed here.
A new statistic has been added to cl-comp displaying the number of connected Cluster Nodes if there are more than one. Displayed as an INFO level statistic.
There has been a lot of changes and fixes to our documentation over the last few months. If you have links to any of our documentation, please update them as the filenames may have changed.
A more detailed last available presence can now be made from some configuration changes, along with a timestamp before the entire presence stanza is saved to the repository. More information is available here.
Tigase supports enabling automatic presence subscriptions and roster authorizations. For more information on these settings, check the Automatic Subscriptions section.
Tigase will now dump the stacktrace upon shutdown by default. For more information, check this description.
Previously, Tigase would retry deliverying command packets that failed to send after a brief delay of 60 seconds. This new method can provide relief in sutations where command packet queues can get full. The new logic works like this: The delay for retries, after the first delay of 60 seconds will increase by a factor of 1.5, so the 2nd retry will then be 90 seconds, and then 135 and so on, until the retry limit has been reached (default is 15). Included in this is a new setting for setting the retry count, available here.