# Openfire Changelog

## 3.3.0 -- April 12, 2007

### ! Upgrade Information

Due to the name change from Wildfire to Openfire you must follow the steps descibed in the upgrade guide.

### Openfire New Features

- Renamed Wildfire to Openfire.
- [JM-14] - Improved delivery strategy when connected from multiple resources.
- [JM-1006] - Added support for room event listeners.
- [JM-1007] - Occupants in rooms can now be seen from the admin console.
- [JM-420] - Created ad-hoc command that forwards packets to components.
- [JM-868] - Added favicon to admin console.
- [JM-1021] - Added web folder to the plugin classloader.
- [JM-1024] - Updated JVM to 1.6.0_u1.

### Openfire Bug Fixes

- [JM-1022] - Fixed memory leaking problem in HttpBinding.
- [JM-1009] - Messages sent to bare-JID addresses were sent to resources with negative priority.
- [JM-897] - Client sessions were not always being counted correctly. (3 votes)
- [JM-1031] - Links were incorrect when using child plugins. Thanks to Guus der Kinderen.
- [JM-1004] - ComponentManager could be null after modules have been started.
- [JM-1028] - Fixed NPE when no room name was specified when trying to register with room.
- [JM-1023] - Unicode (UTF-8) charset is now used instead of ISO-8859-1 in admin console pages.

### Openfire Enterprise

- [ENT-93] - Added support for group chats archiving.
- [ENT-94] - Updated iText library to latest version.
- [ENT-95] - Updated jRobin library to latest version.

### Openfire Connection Manager Module

- No changes

## 3.2.4 -- March 29, 2007

### Wildfire New Features

- [JM-1018] - Updated MINA library to latest version.

### Wildfire Bug Fixes

- [JM-991] - Fixed XML parsing problem with />. (1 vote)
- [JM-1003] - Fixed XML parsing problem with open quotes. (1 vote)
- [JM-1019] - Changed idle timeout to 6 minutes.

### Wildfire Enterprise

- [ENT-101] - Transfers and invites across workgroups were failing.

### Wildfire Connection Manager Module

- [JM-991] - Fixed XML parsing problem with />. (1 vote)
- [JM-1003] - Fixed XML parsing problem with open quotes. (1 vote)

## 3.2.3 -- March 15, 2007

### Openfire New Features

- [JM-998] - Added milliseconds to timestamp in the audit log.
- Stream compression is back again available.

### Openfire Bug Fixes

- [JM-993] - Removing idle connections could fail and freeze the server. (1 vote)
- [JM-997] - Fixed TLS problem when using Pandion.
- [JM-1001] - Fixed http-binding deadlock.
- [JM-992] - Direct buffers were used by default instead of heap buffers.
- [JM-994] - IQ packet sent to a full JID that was not available was being routed to other resource of the same user.
- [JM-987] - Server can now recover from UnknownHostException during setup.
- [JM-990] - IQ type is now verified when handling iq:version requests.
- [JM-996] - Invalid SASL mechanisms were being offered to CMs.
- [JM-1002] - Changed default idle timeout value to 2 minutes.

### Openfire Enterprise

- [ENT-90] - Metadata of user request is now included when initiating or transferring to another agent.

### Openfire Connection Manager Module

- [JM-995] - Connection Manager connection was being closed when client used invalid SASL mechanism.
- [JM-992] - Direct buffers were used by default instead of heap buffers.
- [JM-997] - Fixed TLS problem when using Pandion.
- [JM-1000] - Connection Managers were not using SRV records for the DNS lookup.

## 3.2.2 -- February 19, 2007

### Openfire New Features

- No changes

### Openfire Bug Fixes

- [JM-983] - Client became unresponsibe after sending message that ended with "/".
- [JM-984] - Client became unresponsibe after sending a stanza with a comment.
- [JM-985] - Fixed presence problem when shared groups can be seen by other groups.
- [JM-986] - Fixed out of order RID errors in HTTP-Binding.
- [JM-966] - Disabled multi-cast DNS by default.

### Openfire Enterprise

- No changes

### Openfire Connection Manager Module

- [JM-983] - Client became unresponsibe after sending message that ended with "/".
- [JM-984] - Client became unresponsibe after sending a stanza with a comment.

## 3.2.1 -- February 15, 2007

### Openfire New Features

- [JM-974] - Updated MUC implementation to send role="none" when leaving a room.
- [JM-978] - Updated MINA library to latest version.
- [JM-977] - Updated bouncycastle library to latest version.
- New draft page for importing signed certificates.

### Openfire Bug Fixes

- [JM-970] - Fixed deadlock when using old SSL method.
- [JM-980] - Fixed DOS attach by closing connection from client that tries to send a "never ending" packet.
- [JM-981] - Fixed parsing of packets with nested elements with the same name.
- [JM-981] - Fixed parsing of <\stream:stream>.
- [JM-968] - The https port was not working in the admin console.
- [JM-963] - A throwable exception was preventing users from logging in.
- [JM-959] - HTTP-Binding was failing over HTTPS.
- [JM-969] - HTTP-Binding sessions were not being closed properly.
- [JM-971] - Messages could be lost when using HTTP Binding.
- [JM-973] - HTTP-binding would be held open and not closed when new packets arrived.
- [JM-972] - Fixed presence problem when shared groups can be seen by a common non-shared group and both users belong to such group.
- [JM-979] - Fixed NPE when auditing message received from legacy network.
- [JM-962] - PLAIN SASL authentication failed to authenticate clients that were sending bare JIDs.
- [JM-975] - Client connections were closed before flushing end of stream stanza.
- [JM-967] - Plugins that require a newer server version were shown as available to be installed.
- [JM-965] - Available Plugins was listing reports that list "has not been downloaded" when all available plugins were installed.

### Openfire Enterprise

- [ENT-53] - Webchat is now more resistant to network failures.
- [ENT-68] - Webchat setup is now always required.
- [ENT-69] - Webchat was not connecting to agent when using IE6.
- [ENT-70] - Webchat could kill the JVM when not able to connect to Openfire.
- [ENT-71] - Webchat now properly disconnects dangling connections.
- [ENT-79] - SIP Phone now sends on-phone presence.

### Openfire Connection Manager Module

- [JM-970] - Fixed deadlock when using old SSL method.
- [JM-980] - Fixed DOS attach by closing connection from client that tries to send a "never ending" packet.
- [JM-981] - Fixed parsing of packets with nested elements with the same name.
- [JM-978] - Updated MINA library to latest version.
- [JM-977] - Updated bouncycastle library to latest version.

## 3.2.0 -- February 6, 2007

### Openfire New Features

- [JM-925] - Improved scalability of Openfire.
- [JM-356] - Added support for XEP-0124: HTTP Binding. (34 votes)
- [JM-936] - Added STUN server support.
- [JM-937] - Added Media Proxy for Jingle.
- [JM-941] - Allowed to set read timeout when connected to LDAP (requires Java 1.6).
- [JM-912] - Added listener for offline messages. (1 vote)
- [JM-944] - Bundled root certificate of XMPP Intermediate Certificate Authority.
- [JM-948] - Updated truststore with Java 6 built-in certificates.
- [JM-946] - Removed Jetty information from HTTP headers.
- [JM-892] - Simplified certificates creation and process of signing certificates. (10 votes)
- [JM-767] - Added Mac OS X DMG installer.
- [JM-893] - Added support for certificate event listeners.
- [JM-934] - Added new plugin that provides load statistics.
- [JM-914] - Added new ad-hoc command to get server info and basic statistics.
- [JM-657] - Optimized algorithm used for sending packets to remote servers when new connections are required.
- [JM-924] - PacketInterceptors are now triggered in the routing layer and not the networking layer.
- [JM-915] - Added support in ComponentManager for sending packets in blocking mode.
- [JM-901] - Updated support for 'creation of collection nodes' based on latest XEP-60.
- [JM-913] - Support for multiple subscriptions is now optional in PubSubModule.
- [JM-931] - Allowed components to create nodes and publish items.
- [JM-949] - Default configuration of new group chat rooms can now be configured.
- [JM-950] - Group chat rooms are now not anonymous by default.
- [JM-952] - Allowed to explicitly specify the FQDN of the server.
- [JM-935] - Added to the admin console information about ports being used by the server.
- [JM-900] - Upgraded to latest installer version.
- [JM-888] - Updated bouncycastle library to latest version.
- [JM-939] - Updated bundled JVM to 1.6.0 (Note: Java 5 or later is required).

### Openfire Bug Fixes

- [JM-957] - Execution of DB2 scripts is now working.
- [JM-947] - A nice error message is now displayed when trying to view user properties of a non-existent user.
- [JM-943] - Messages with no body and no subject were being store in rooms' history.
- [JM-940] - Fixed NPE in server certificates page.
- [JM-885] - Fixed parsing of mappings when using more than one LDAP field.
- [JM-886] - Loaded vCards were not being updated after reconfiguring LDAP settings.
- [JM-906] - Email test page was not working when integrated with LDAP.
- [JM-954] - No IQ error was being returned when an error occurs while processing an IQ roster packet.
- [JM-887] - PluginManager was being used by modules before it was created.
- [JM-889] - Fixed NPE in LdapVCardProvider when username was not found.
- [JM-890] - Fixed error when IQ error packet failed to be handled.
- [JM-895] - TLS was being offered even when keystore was empty.
- [JM-896] - Fixed error that was closing a database statement twice.
- [JM-902] - Component domain was not being released if an error occured while registing a new component.
- [JM-916] - External components were able to connect to the server before the server has finished to start up.
- [JM-903] - Sending "subscribed" presence to a new user was updating roster of both users.
- [JM-918] - Fixed error when shared group had no display name.
- [JM-928] - Clicking on login link from setup could fail with 404.
- [JM-933] - Enabling/disabling anonymous connections no longer requires a server restart.
- [JM-938] - "Per-user offline message storage limit" can now be updated.
- [JM-755] - Fixed compilation problem under JDK 1.6.

### Openfire Enterprise

- [ENT-50] - Added support for SIP integration.
- [ENT-35] - Archiving was only done one-way with gateways.
- [ENT-44] - Added support for transfering support session to another workgroup, queue, agent or user.
- [ENT-63] - Fixed security breach when viewing messages of ongoing support sessions.
- [ENT-56] - Warning message is now displayed when license is about to expire (30 days).
- [ENT-54] - Added support for iq:version to components to discover Openfire version.
- [ENT-55] - Changed license validation to validate maintenance date.
- [ENT-62] - Fixed display error in dashboard when accessing the page immediately after start up.
- [ENT-37] - Fixed error in MSSQL due to conflict with keyword.
- [ENT-59] - Added Portuguese translation.

### Openfire Connection Manager Module

- [JM-907] - Improved scalability of ConnectionManagers.
- [JM-926] - Added stringprep operations in Connection Manager to offload Openfire.

## 3.1.1 -- October 27, 2006

### Openfire New Features

- [JM-870] - Added support for testing administrator accounts during LDAP setup.
- [JM-875] - Added support for testing user mapping settings during LDAP setup.
- [JM-876] - Added support for testing group mapping settings during LDAP setup.
- [JM-877] - Added support for changing existing LDAP settings from admin console.
- [JM-722] - Added alternate base DN support for user data. (3 votes)
- [JM-595] - Admin console now shows last time a user logged out from the server. (5 votes)
- [JM-866] - Increased max size of LDAP filters to 250 characters.
- [JM-864] - Updated LDAP guide with new setup procedure.
- [JM-871] - Updated Java mail library to latest version.
- [JM-879] - Streamlined build process.

### Openfire Bug Fixes

- [JM-859] - Conflict policy is now applied after successful login when using iq:auth.
- [JM-878] - Some settings were not being saved when configuring LDAP from the admin console.
- [JM-880] - Logging into the admin console could not work after initial setup when using LDAP.
- [JM-883] - UTF-8 was not always being used when reading/writing XML content.

### Openfire Enterprise

- [ENT-30] - Enabling/disabling meta-data archiving was not working.
- [ENT-31] - MS-SQL 2005 script failed to execute.
- [ENT-32] - Conversations with users through gateway were not being marked as external.
- [ENT-33] - Fixed editing of routing rules when using quotes.
- [ENT-34] - Removed scheduling feature from Fastpath.

### Openfire Connection Manager Module

- [JM-867] - Socket connections were closed under high load.
- [JM-881] - Fixed NPE when closing connection manager session.

## 3.1.0 -- October 9, 2006

### Openfire New Features

- [JM-761] - Added new gateway plugin with AIM and ICQ support. (36 votes)
- [JM-769] - Added Yahoo protocol support to the gateway plugin. (18 votes)
- [JM-770] - Added MSN protocol support to the gateway plugin. (27 votes)
- [JM-193] - Improved LDAP support. (26 votes)
- [JM-820] - Added support for presence event listeners.
- [JM-797] - Added database statistics monitoring.
- [JM-807] - Added support for roster event listeners.
- [JM-804] - Added support for component event listeners.
- [JM-860] - Added Pack200 support for plugins.
- [JM-843] - Optimized session retrieval from SessionManager.
- [JM-816] - Created ad-hoc commands for managing groups.
- [JM-808] - Enhanced roster to be able to hold non-persistent roster items.
- [JM-194] - Editing of users is now not allowed when they are read-only. (1 vote)
- [JM-833] - Improved openfired script.
- [JM-771] - Added search method to GroupProvider. (1 vote)
- [JM-824] - Added #getComponents() to InternalComponentManager.
- [JM-827] - Upgraded to hsqldb 1.8.0.5.
- [JM-805] - Updated JVM to 1.5.0_08.

### Openfire Bug Fixes

- [JM-851] - Fixed presence issues with LDAP and shared groups. (3 votes)
- [JM-844] - Enabled LDAP connection pooling by default.
- [JM-832] - Connection pooling is no longer used for LDAP authentication.
- [JM-846] - Improved error handling if connection to JS plugin update service is not possible.
- [JM-854] - Improved handling of SQL command parts.
- [JM-839] - Internal server errors while processing MUC packet was not returning any response to client.
- [JM-842] - Message flooding was checking ALL sessions instead of only user sessions.
- [JM-818] - Change in DB upgrade code broke plugin upgrades.
- [JM-819] - Upgrades for non-Openfire schemas was checking against wrong version.
- [JM-822] - Users from LDAP now have correct creation date.
- [JM-691] - Documentation for "Create a shared roster group" was incorrect. (3 votes)
- [JM-826] - MUC disco name was being hardcoded.
- [JM-828] - Rooms were allowing owners, admins and outcasts to be duplicated.
- [JM-862] - Messages with no body and no subject were being logged in group chat rooms.
- [JM-817] - Fixed small security hole in email settings page.
- [JM-781] - Stream compression is now optional by default for client-2-server connections.
- [JM-792] - Improved syntax of LDAP searchFilter and groupSearchFilter.
- [JM-809] - In band registration was accepting new users with no password.
- [JM-810] - Presence subscription packets sent to the server were broadcasted to all connected users.
- [JM-701] - Fixed bug with roster modification when deleting shared group. (7 votes)
- [JM-801] - Removing users from shared group could generate roster items in the database.
- [JM-811] - Fixed case-sensitive error while authenticating users.
- [JM-784] - Success data included after a SASL successful operation was not being encoded.
- [JM-794] - SASL mechanisms were being offered to remote servers even before securing the socket.
- [JM-796] - Fixed "null cert chain" error when trying to secure s2s connection.
- [JM-789] - CN field in certificates was not being correctly parsed.
- [JM-785] - Retrieving a privacy list was including two list elements in the answer.
- [JM-780] - Plugin check is now based on original JAR date, not on unzip date.
- [JM-786] - JDBCAuthProvider and JDBCUserProvider were using wrong property names.
- [JM-812] - It was not possible to retrieve offline messages with invalid XML characters.
- [JM-793] - Counter of client sessions was wrong.
- [JM-783] - Admin console now displays actual bound IP address. (1 vote)
- [JM-790] - Removed database scripts from the openfire JAR.
- [JM-815] - Changed <entity/> element to <subscription/> element in response to subscription request.
- [JM-861] - Moved abrupt connection closure messages to debug.
- [JM-863] - XMLProperties was not able to store CDATA.

### Openfire Enterprise

- No changes

### Openfire Connection Manager Module

- [JM-795] - DNS SRV lookup was overriding port to use to connect Connection Manager to server.
- [JM-788] - manager.xml was not using the correct property for setting the client port. (1 vote)
- [JM-814] - Connections between Connection Managers and Openfire are not encrypted by default.

## 3.0.1 -- July 13, 2006

### Openfire New Features

- [JM-752] - A proxy server can now be used to download updates. (1 vote)
- [JM-754] - Added JDBC user provider and documentation.
- [JM-759] - Added support for vCards events. Thanks to Remko Tronçon.
- [JM-762] - Performance optimized by reducing privacy list SQL calls when no privacy lists used.

### Openfire Bug Fixes

- [JM-744] - Presence updates were not being sent to shared contacts whose subscriptions is FROM.
- [JM-745] - Users of the same group (not shared) that can see a shared group were receiving presences of each other.
- [JM-750] - Presence subscription was incorrect when adding group member to non-shared group that could see shared group.
- [JM-758] - Available presence was not being sent to all connected resources after subscription was approved.
- [JM-775] - Member of public group was not able to add to his roster contact that did not belong to public group.
- [JM-776] - Members of public shared groups were not getting their rosters updated when a new user was created in the system.
- [JM-777] - Presence was not working when creating new shared groups and at the same time defining list of members.
- [JM-695] - Fixed presence problem when using shared group loaded from LDAP. (5 votes)
- [JM-772] - An error is now logged when Openfire cannot connect to the LDAP server.
- [JM-741] - Fixed javascript error while updating plugin. (1 vote)
- [JM-742] - Fixed NPE in privacy lists when presence packet has no TO address.
- [JM-748] - Fixed NPE when trying to unload a bad plugin in plugin-admin page.
- [JM-749] - TLS feature was being offered to clients using old SSL method.
- [JM-760] - Fixed login problem when using uppercase letters in username and there is a resource conflict.
- [JM-763] - Removed warning from logs on installation.
- [JM-768] - A semicolon was missing in mysql and sqlserver upgrade scripts #9.
- [JM-778] - Fixed error when trying to unregister an account from a client.
- [JM-751] - Moved getPassword/setPassword methods from UserProvider to AuthProvider.

### Openfire Enterprise

- [ENT-19] - Message archiving was failing on Postgres.

### Openfire Connection Manager Module

- No changes

## 3.0.0 -- June 29, 2006

### Openfire New Features

- [JM-666] - Added support for connection managers.
- [JM-281] - Added support for Kerberos/NTLM (status: experimental). (56 votes)
- [JM-673] - Added database support for plugins.
- [JM-677] - Added i18n support for plugins.
- [JM-718] - Added servlet filter framework for plugins.
- [JM-683] - Added support for virtual connections.
- [JM-684] - Added support for JEP-0164: vCard Filtering
- [JM-704] - Added support of other password types to JDBCAuthProvider.
- [JM-715] - Added support for notifications of new server or plugins updates.
- [JM-740] - Added support for adding/removing SASL mechanisms at runtime.
- [JM-719] - Allowed flat searches of LDAP instead of sub-tree.
- [JM-680] - Improved performance of server-to-server connections by using many threads to process incoming packets.
- [JM-720] - Improved performance of SessionManager#getSessionCount().
- [JM-687] - Added support for non-blocking connections (status: experimental). (1 vote)
- [JM-717] - Updated the look and feel in the admin console.
- [JM-305] - Server features list is now dynamic. (1 vote)
- [JM-652] - Caching of favicons has been improved.
- [JM-675] - File transfer service can now be enabled/disabled. (2 votes)
- [JM-676] - MUC service can now be enabled/disabled. (1 vote)
- [JM-679] - SASL success stanza now includes challenge data that needs to be processed by clients.
- [JM-678] - SASLAuthentication was refactored to accommodate HTTP Binding and Connection Managers. (1 vote)
- [JM-688] - Updated third-party libraries.
- [JM-713] - Updated bundled MySQL driver.
- [JM-688] - Upgraded to JDK 1.5.0_07.

### Openfire Bug Fixes

- [JM-702] - Presence updates were not being broadcasted to other connected resources. (4 votes)
- [JM-735] - Presence packets sent to bare JIDs were not being sent to all connected resources.
- [JM-731] - DNS lookups was failing with some DNS servers.
- [JM-707] - A <system-shutdown/> stream error condition is now sent when shutting down the server.
- [JM-653] - FileTransfer was not implementing Cacheable.
- [JM-654] - Fixed conflict in Proxy Transfer cache name.
- [JM-655] - File Transfer Proxy no longer returns null disco#items.
- [JM-710] - File Transfer Proxy socket was not being cleaned up properly.
- [JM-721] - File Transfer Proxy did not acknowledge configured interface.
- [JM-661] - Field digest_frequency of pubsubSubscription table in MySQL was too small.
- [JM-665] - Accessing published items of a pubsub node was expecting that requester was subscribed to the node.
- [JM-672] - Updated the way pubsub node owners manage node affiliations and subscriptions.
- [JM-708] - Answer format was incorrect when returning pubsub node affiliations or node subscriptions of a node owner.
- [JM-667] - Roster items with subscription NONE and ask PENDING were being sent to clients.
- [JM-668] - Fixed error when deleting a user with shared contacts that belong to public shared groups.
- [JM-669] - Added fix for "javax.net.ssl.SSLException: Unsupported record version Unknown" error.
- [JM-729] - Server was not processing IQ errors triggered by IQ requests made by the server.
- [JM-732] - mucConversationLog was storing room's JID instead of the sender's JID.
- [JM-681] - No more than 5 concurrent threads were used for creating new server-to-server connections.
- [JM-670] - Flash clients were waiting forever for a response if old SASL method failed or there was a conflict while binding a resource.
- [JM-671] - Fixed NPE when external component did not include a TO attribute in stream header.
- [JM-674] - Fixed NPE in IQDiscoItemsHandler when an ServerItemsProvider was disabled.
- [JM-698] - Fixed bug in XMLProperties.getChildren.
- [JM-728] - Fixed PK length error when upgrading jivePrivate in MySQL using URF-8.
- [JM-736] - Added commit statement to Oracle db scripts.
- [JM-737] - Fixed invalid character error when upgrading Oracle database.
- [JM-700] - Increased the column size of "username" from 32 to 64.
- [JM-706] - Non-SASL Authentication stream feature was not being offered when anonymous login was disabled.
- [JM-712] - VCard manager was not returning vcard-temp as a stream feature.
- [JM-726] - Privacy list now implements Cacheable interface.
- [JM-656] - Streamlined disco registration process.
- [JM-709] - An exception is now thrown when plugin servlet class was not found.
- [JM-663] - UserProvider no longer depends on VCardManager.

### Openfire Enterprise

Initial release.

### Openfire Connection Manager Module

Initial release.

## 2.6.2 -- April 20, 2006

### Bug Fixes

- [JM-648] - Server-to-server thread pool was getting exhausted when remote servers were unresponsive.
- [JM-650] - Fixed concurrency problem that was closing active connections by mistake.
- [JM-642] - Deleting a user was not removing all references from memory.
- [JM-646] - Fixed error when searching for groups of a non-local user when using LDAP.
- [JM-571] - File transfer proxy was not being removed from service discovery when disabled. (1 vote)
- [JM-638] - Unhandled exceptions while processing IQ packets were not always returning IQ errors.
- [JM-639] - Fixed ConcurrentModificationException while purging a pubsub node.
- [JM-640] - A "service-not-implemented" error was being returned after an ad-hoc command was handled by pubsub.
- [JM-641] - Modified pubsub tables so that all supported databases may correctly run the database scripts.
- [JM-644] - Allowed Base64 decoding that doesn't encode bytes as String.
- [JM-645] - Fixed recursivity error in SessionManager when searching for best route.
- [JM-647] - Sometimes users were remaining as room occupants when using shared groups.
- [JM-649] - Increased proxy file transfer buffer size.

## 2.6.1 -- April 11, 2006

### New Features

- [JM-222] - Entire user base is no longer loaded when using public shared groups. (1 vote)
- [JM-634] - Shared contacts whose subscription type is FROM are no longer kept in memory.
- [JM-633] - Added sorting to session list.
- [JM-637] - Added support for basic commands defined in JEP-133: Service Administration.

### Bug Fixes

- [JM-636] - After initial install new user accounts were corrupted until restart.
- [JM-630] - Fixed upgrade scripts of PostreSQL, SQLServer and Sybase.
- [JM-631] - New user passwords were not being saved to the database.

## 2.6.0 -- April 6, 2006

### New Features

- [JM-291] - Encrypted passwords are now stored in the db. (21 votes)
- [JM-613] - Added support for JEP-0060: Publish-Subscribe. (1 vote)
- [JM-298] - Auditing now supports rolling over by date. (12 votes)
- [JM-599] - Improved performance by avoiding queries to load users.
- [JM-607] - Improved performance by avoiding unnecessary LDAP queries.
- [JM-608] - Improved performance when detecting which groups are shared groups.
- [JM-621] - Improved performance by avoiding using locks in RoutingTable (server core).
- [JM-605] - Improved performance by caching groups.
- [JM-606] - Added JDBC Authentication provider.
- [JM-600] - Added support for managing system caches from the admin console.
- [JM-624] - Allowed external components to bind more than one domain.
- [JM-603] - Improved db upgrade process.
- [JM-609] - Refactored Ad-hoc commands so that services can also offer ad-hoc commands.
- [JM-597] - Improved LDAPGroupProvider Exception Handling.
- [JM-625] - Added support for XMPPServer listeners.
- [JM-620] - Added development mode for web.
- [JM-623] - Exposed port in connection object.
- [JM-614] - Updated third-party libraries.

### Bug Fixes

- [JM-615] - Fixed deadlock when loading users and rosters.
- [JM-621] - Fixed deadlock in RoutingTable.
- [JM-495] - Server session tab was loading very slow.
- [JM-596] - LDAP connections were not being closed correctly.
- [JM-601] - LDAP referrals were not being respected while verifying authentication.
- [JM-604] - SASL EXTERNAL for s2s was not checking if certificate validation was disabled.
- [JM-611] - PLAIN SASL authentication was not accepting empty auth packets.
- [JM-627] - Null SASL responses were not being padded.
- [JM-610] - Fixed NPE in privacy list when user session no longer exists.
- [JM-612] - Registering new internal components was not checking that component domain is not taken.
- [JM-618] - Remote server count was wrong.
- [JM-619] - Names of users were not being sorted when loading from database.
- [JM-622] - Admin console was failing to startup on unexpected log impl.
- [JM-626] - Several instances of the same disco#item could appear in the server's disco#items.
- [JM-628] - Pretty printing of openfire.xml file was not always working.