Tigase 5.0.0

Tested on operating systems


Basic installation

Advanced installation

Tigase setup for database

Automatic tests

Test Derby PostgreSQL MySQL
Common tests
Single tests

Client tests

Test Psi Swift Pidgin Gajim Adium Coccinella
Login TLS
Add contact
Remove contact
Send message
Test presence
Test service discovery
Test MUC


Changelog 5.0.0 - 4.3.1

Changelog list is quite long and modifications fall into a few categories:


  1. A new implementation for handling external components connections, supporting XEP-0114, XEP-0225, with protocol auto-detection, multiple connections on a single port, multiple connections for a single external domain, etc…..
  2. Full support for stringprep added. The use of the full stringprep processor is optional (off by default) and the JID processing can be changed via pluggable framework. 3 processors available now: full stringprep - very resources expensive, simple (regex based) - default, empty - no processing at all.
  3. Roster changes: fixed issue with buddy name set to 'null' in some cases, multiple roster elements are now allowed for set requests, stringprep optimisations, support for extended buddy information to be stored with roster data in DB.
  4. Fixed a problem with s2s connections for external components connected to the server - they are automatically detected by s2s component and all the traffic is routed properly
  5. Fixed problem with not sending stream closing tag in some cases when the connection to the client is closed
  6. Fixed rare issue occurring if there are multiple user connections with the same resource that the older connection with the resource was not closed.
  7. Number of bug fixes and optimisations in s2s implementation, still no TLS support yet though.
  8. Stream compression can be now activated at any time, it is up to the client to decide


  1. Server configuration code reworked, fixed an old issue with init.properties and tigase.xml configuration files, tigase.xml is no longer used by default (still possible though), configuration can be stored in the database and configuration management available via ad-hoc commands and scripting API.
  2. Configurable packet filtering for every component separately can be loaded as plugins (and API)
  3. MySQL schema and stored procedures updates for UTF-8 encoding, changed a last_login, last_logout fields default values from 0 to some correct and sensible value.
  4. To overcome problems with packets order on some system there is a configuration option to not use priority queues which may sometimes cause packet reordering.


  1. Scripting API reworked, this is not the server built-in core feature and the scripting feature is now available to all components automatically
  2. Component repository API - an easy to use framework for tigase component developers to store certain kind of data in database - the data can be also manipulated via ad-hoc commands and scripting
  3. Added secure logging mode for XMPP stanzas to prevent privacy issue - XML element CData is replaced with text: 'CDATA size: NNN'
  4. A new API for component tasks added - based on Java TimeoutTask but a single thread controls all the component tasks
  5. Lots of JavaDoc documentation has been added and online guides on the website
  6. All the core Tigase code to use new JID and BareJID classes instead of String
  7. Packet API changed to optimise ways stanza to/from addresses (JIDs) are used.
  8. New SM plugging processors API introduced and an abstract class which make it very easy to follow packet flow. This is to avoid confusing detection where from, where to the packet is going (from the user, to the user, to the server….)
  9. User registration code changed to allow for storing any kind registration data, the user can provide an extended form with additional fields and they all are stored in the DB

Other bug fixes

  1. Packet tracer experimental feature disabled by default
  2. Hourly server statistics dumping to file commented out - a new configurable code coming up in the next version
  3. Number of fixes in the tigase.io package, solved a few issues with TLS layer, memory leaks in case of large buffers sending via TLS fixed, solved issue with high CPU usage if the TCP/IP connection is broken but not closed.
  4. Stream compression slow roster loading issue fixed - large stanzas are now split into smaller block of 2048 bytes each before it is compressed.
  5. Fixed a bug with multiple starttls requests causing the server overload