Smack API Changelog

What's new in Smack API 4.1.4

Nov 8, 2015
  • Bug:
  • [SMACK-688] - Reset carbons state if session got not resumed or cleanly disconnected
  • [SMACK-689] - PEPPubSub creates malformed XML
  • [SMACK-693] - MultiUserChat's UserStatusListener is not getting triggered
  • [SMACK-695] - JSON and GCM parser does an erroneous extra next()
  • [SMACK-697] - PrivacyListManager should handle the case where not default and active list are currently set
  • Improvement:
  • [SMACK-686] - Provide a hint that connect() needs to be called prior login() in NotConnectedException
  • [SMACK-687] - Update to jxmpp 0.4.2
  • [SMACK-696] - Drop stream state after stream error

New in Smack API 4.1.3 (Aug 21, 2015)

  • Bug:
  • [SMACK-679] - Memory leak in Socks5BytestreamManager. Should use weak map for 'managers'
  • [SMACK-680] - XHTML bodies are un-escaped after parsing
  • [SMACK-681] - Roster presence callbacks may not be invoked right after login

New in Smack API 4.1.1 (May 11, 2015)

  • Bug:
  • [SMACK-649] - DIGEST-MD5 challenge/response parsing must handle linear white spaces after the comma
  • [SMACK-652] - SynchronizationPoint should use signalAll
  • [SMACK-653] - Integer overflow if both client and server don't specify a max resumption time
  • [SMACK-654] - isSmResumptionPossible() returns wrong values
  • [SMACK-656] - DeliveryReceipts auto add should use packet interceptors and should not be requested for messages with ACKs.
  • [SMACK-659] - Memory leak caused by RosterEntry declaring a strong reference to XMPPConnection
  • [SMACK-660] - ReconnectionManager's RANDOM_INCREASING_DELAY is erroneously using a fixed value.
  • [SMACK-661] - Add method to set ProxyInfo in ConnectionConfiguration.Builder
  • [SMACK-662] - RosterEntry.setName() does not change the name

New in Smack API 4.1.0 (Mar 30, 2015)

  • Sub-task:
  • [SMACK-398] - Implement SCRAM support
  • Bug:
  • [SMACK-65] - Packet parsing should look for depth
  • [SMACK-237] - Handle more vCard values (XEP-0054)
  • [SMACK-383] - Allow the garbage collection of all object instances of a closed and unreferenced connection
  • [SMACK-424] - Add a MultiUserChat.presenceChanged callback method to be informed if a presence within a MUC has changed (joined, leaved, status change)
  • [SMACK-542] - MUC: RoomInfo should hold more data if the result contains a FORM_TYPE field
  • [SMACK-549] - MUCUser#getStatus should be a List
  • [SMACK-564] - Some tests fail with Java 8
  • [SMACK-570] - Smack does not support resourceparts which contain the '@' character.
  • [SMACK-571] - Don't remove the MUC listeners after a disconnect() , keep state of Connection between disconnect() and connect()/login()
  • [SMACK-573] - MessageEventManager treats error replies as message events
  • [SMACK-583] - PacketListeners may not be invoked in delivery order
  • [SMACK-585] - XMPPTCPConnection does not set 'host' and 'port'
  • [SMACK-590] - Don't use IQReplyFilter for the bind set/result exchange
  • [SMACK-597] - PingManager.getLastReceivedPong() always returns -1
  • [SMACK-604] - MUCUser must support multiple status codes
  • [SMACK-620] - Smack should use a safe SAX parser, e.g. with entity reference expansion disabled
  • [SMACK-635] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
  • [SMACK-643] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service
  • Improvement:
  • [SMACK-340] - Should make the wait/timeouts on SASL authentication configurable.
  • [SMACK-402] - Update obsolete "Message Delivery Receipts" support from (JEP|XEP)-0022 to XEP-0184
  • [SMACK-453] - Add support for all primitive types in IntrospectionProvider.decode()
  • [SMACK-521] - Clear PacketWriters queue when the connection is shut down
  • [SMACK-532] - Evaluate if its possible to guarantee the order of listeners by using a LinkedHashMap
  • [SMACK-566] - Create public method that parses Strings/CharSequences to messages, IQs and presence instances
  • [SMACK-587] - Subprojects should uses versions when importing the OSGi smack-core components
  • [SMACK-595] - Add an API to send a stanza and wait asynchronously for a response
  • [SMACK-599] - Provide string messages to all exceptions thrown by Smack
  • [SMACK-600] - RoomInfo Class should add the information from the Identity element.
  • [SMACK-608] - Add support for XMPP error conditions text
  • [SMACK-622] - Add support for 'optional' in session stream features
  • [SMACK-626] - Add support for 'ofrom' Extended Stanza Addressing type
  • [SMACK-627] - Smack should allow null usernames under certain circumstances
  • [SMACK-645] - Roster should not leak internal state e.g. presences
  • New Feature:
  • [SMACK-234] - Add support for SASL EXTERNAL: PKI (Client SSL Cert) Support
  • [SMACK-333] - Implement XEP-0198: Stream Management
  • [SMACK-378] - Give access to the socket outside the XMPPconnection
  • [SMACK-581] - Add support for "Result Set Management" (XEP-59)
  • [SMACK-607] - Add support for XEP-0352: Client State Indication
  • [SMACK-612] - Add support for XEP-0141: Data Forms Layout
  • [SMACK-621] - Add support for XEP-0122: Data Forms Validation
  • [SMACK-623] - Add API to retrieve the subscriptions of a PubSub node as owner
  • Task:
  • [SMACK-365] - SmackConfiguration should only report errors if the file fails to load, not when it fails to load for a specific classloader.
  • [SMACK-371] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.
  • [SMACK-569] - Move Message Event code to legacy subproject
  • [SMACK-578] - Remove decorators for "Legacy Delayed Delivery" (XEP-91) in favor of Delayed Delivery (XEP-203)
  • [SMACK-579] - FileTransferManager and FileTransferNegoiator should use WeakHashMaps and extend Manager
  • [SMACK-582] - Change ReceiptReceivedListener.onReceiptReceived parameters
  • [SMACK-637] - Move Roster and Chat code to new smack-im subproject

New in Smack API 4.0.7 (Feb 21, 2015)

  • Fixed:
  • [SMACK-635] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
  • [SMACK-643] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service

New in Smack API 4.0.6 (Nov 25, 2014)

  • Bug:
  • [SMACK-616] - Smack should fallback to using host with default port if DNS SRV lookup fails
  • [SMACK-617] - Message Digest in EntityCapsManager should be synchronized

New in Smack API 4.0.5 (Oct 23, 2014)

  • SMACK-609 - PingManager.ping(String, long) does not respect timeout
  • SMACK-613 - Parsing exception causes infinite loop if the exception is not thrown

New in Smack API 4.0.4 (Sep 8, 2014)

  • Bug:
  • [SMACK-596] - Smack should load roster before sending the initial presence
  • [SMACK-598] - Smack should allow the empty string as content of message body element
  • [SMACK-601] - PubSub ItemProvider does only process the outermost namespace definition when creating PayloadItems
  • [SMACK-602] - PacketCollector must handle InterruptException
  • [SMACK-603] - XMPPError.Condition.equals() should be null-safe

New in Smack API 4.0.3 (Aug 28, 2014)

  • Bug:
  • [SMACK-589] - FormField.Option toXML() produces malformed XML
  • [SMACK-592] - OfflineMessagesManager.getMessages() does send request before collector is set up and could leak collector
  • [SMACK-594] - PrivateData Bookmarks.toXML() returns invalid XML
  • Improvement:
  • [SMACK-539] - Verify ConnectionConfiguration parameters
  • [SMACK-588] - Typo in org.jivesoftware.smackx.pubsub.ConfigureForm: s/isSubscibe/isSubscribe/
  • [SMACK-593] - Smack should prefer full flush over sync flush when using compression

New in Smack API 4.0.2 (Jul 29, 2014)

  • Improvement:
  • [SMACK-576] - smack-resolver-javax should become a OSGi ServiceComponent
  • [SMACK-586] - Extend API to configure a HostnameVerifier

New in Smack API 4.0.1 (Jul 21, 2014)

  • Sub-task:
  • [SMACK-346] - Bug in return code for rejection handling in FileTransferManager
  • Bug:
  • [SMACK-574] - Documentation still refers at some places to Connection
  • [SMACK-575] - PingManager schedules pings after pingInterval when it should be use nextPingIn instead
  • [SMACK-577] - Bookmarks and FormField toXml() methods do not properly escape XML
  • [SMACK-583] - PacketListeners may not be invoked in delivery order
  • Improvement:
  • [SMACK-576] - smack-resolver-javax should become a OSGi ServiceComponent
  • New Feature:
  • [SMACK-580] - Add support for retrieving a PubSub node's affiliations

New in Smack API 4.0.0 (Jun 9, 2014)

  • Sub-task:
  • [SMACK-399] - Add support for Roster Versioning (was XEP-0237, now in RFC 6121)
  • [SMACK-400] - Change xml-not-well-formed to not-well-formed
  • [SMACK-401] - Remove
  • [SMACK-445] - XMPPError class is based on deprecated XEP-0086
  • Bug:
  • [SMACK-357] - Error in SASL authentication when SASL authzid parameter is null
  • [SMACK-410] - Any valid SSL server certificate can be used to perform a man-in-the-middle attack
  • [SMACK-411] - ServiceDiscoveryManager identities should be non-static and kept in a Set to allow multiple identities as per XEP-30
  • [SMACK-414] - Smack does not announce the support for XEP-54 aka vcard-temp
  • [SMACK-427] - Typo in code - StreamInitiation.setSesssionID()
  • [SMACK-467] - Don't use the default locale for machine-readable output, use Locale.US instead
  • [SMACK-531] - Add missing namespace attribute to XHTML-IM body tags
  • [SMACK-533] - Smack should prevent IQ response spoofing
  • [SMACK-535] - jul.properties should only configure the 'org.igniterealtime' namespace
  • [SMACK-538] - ParseRoster does not check the sender of the roster and for pending roster queries
  • [SMACK-541] - XHTMLExtensionProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface
  • [SMACK-543] - packet.Time is not thread-safe
  • [SMACK-546] - PubSub's Item needs to escape its XML payload
  • [SMACK-548] - PingManager notifies pingFailedListeners multiple times
  • [SMACK-551] - ChatManager throws NPE, when Message has no 'from' attribute
  • [SMACK-554] - Memory leak in BookmarkManager
  • [SMACK-555] - VCardProvider should consider some elements as optional
  • [SMACK-558] - connect() must wait until the stream features have been parsed
  • [SMACK-559] - Roster entries without a group are not updated
  • [SMACK-560] - Race condition in PacketWriter
  • [SMACK-567] - XMPPConnection leaks listenerExecutor ExecutorService
  • Improvement:
  • [SMACK-343] - Make Smack jar an OSGi bundle.
  • [SMACK-356] - There is no way to reliably end a Chat and have a new one created.
  • [SMACK-454] - Follow XEP-0170 recommendation: Compression before Resource Binding
  • [SMACK-459] - Add option to configure the default identity in ServiceDiscoveryManager
  • [SMACK-465] - Replace custom wrapped Throwable in XMPPException with Exception.cause
  • [SMACK-468] - Don't throw an IOException in IBBStreams when the stream got closed by the remote
  • [SMACK-536] - JUL Loggers should become final
  • [SMACK-537] - Move XMPP Ping code to smackx, add keep-alive functionality to PingManager
  • [SMACK-545] - Change API to the style mentioned in Smack's Code Guidelines
  • [SMACK-547] - Consistent behavior for "from" attribute on outgoing stanzas
  • [SMACK-556] - Make ConnectionConfigration getters public
  • [SMACK-557] - Provide a MultiUserChat method to create *or* join a room
  • [SMACK-568] - Don't exclude groupchat messages without body element in MultiUserChat MessageListeners
  • New Feature:
  • [SMACK-53] - Add support for XEP-0092: Software Version
  • [SMACK-71] - Create new FromFilter that checks for exact matching
  • [SMACK-187] - Add HTTP Binding support (BOSH / XEP-0124)
  • [SMACK-265] - Move to a newer build process with artifacts published to maven central repo
  • [SMACK-426] - Improve XMPPException
  • [SMACK-544] - Add support for XEP-0079: Advanced Message Processing
  • [SMACK-552] - Add support for "HTTP over XMPP transport" aka. XEP-0332
  • Task:
  • [SMACK-371] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.
  • [SMACK-432] - Code cleanup of deprecated methods
  • [SMACK-446] - Remove non-SASL authentication code

New in Smack API 3.4.0 (May 16, 2014)

  • Bug Fixes:
  • [SMACK-442] - Manager's should also handle connectionClosedOnError()
  • [SMACK-443] - ReconnectionSuccessful listeners are invoked twice on reconnection if connect() failed before
  • [SMACK-452] - PacketParserUtils.parseStreamError() is not aware of optional text element and therefore failes to parse stream error's correctly. Prevents ReconnectionManager from reconnecting.
  • [SMACK-458] - Smack's Managers should not remove itself when the connection is closed or should re-add themselfs if the connection get reconnected
  • [SMACK-462] - Prevent duplicate manager instances by using the manager's constructor in the ConnectionCreationListener's connectionCreated
  • [SMACK-463] - packet listeners silently fail when preceding listener caused exception
  • [SMACK-524] - Use correct block-size definition for IBB transfers
  • [SMACK-525] - NPE in XMPPConnection.notifyConnectionError
  • [SMACK-529] - Add support for XEP-0280 "Message Carbons"
  • [SMACK-530] - DNSUtilTest requires an internet connection to work, it should be moved to integration tests.
  • New Feature:
  • [SMACK-286] - Need to change ProviderManager to support loading smack.providers from alternative locations
  • [SMACK-387] - Allow configuration of ChatManager to be able to allow message handling to be customized.
  • [SMACK-403] - Add support for XEP-0297 "Stanza Forwarding"
  • [SMACK-434] - Create a project to contain non production ready implementations of specifications
  • Improvement:
  • [SMACK-343] - Make Smack jar an OSGi bundle.
  • [SMACK-381] - Separate the configuration for smack extension related classes from the smack jar.
  • [SMACK-444] - Allow 'null' for TruststorePath and TruststorePassword in ServerTrustManager
  • [SMACK-456] - Add the causing exception to the XMPPExceptions thrown in XMPPConnection
  • [SMACK-457] - Remove unnecessary printStackTrace() in XMPPConnection
  • [SMACK-460] - ServiceDiscoveryManager should not use the constructor in connectionCreated()
  • [SMACK-461] - Remove incorrect deprecated marker for DiscoverInfo.Identity.setType()
  • [SMACK-464] - Make it clear that PacketListener's added with Connection.addPacketListener() are only for received packets
  • [SMACK-534] - Convert all System.out and printStackTrace calls to use Java util logging.
  • [SMACK-339] - Allow ConnectionListeners to be added before Connection is connected. Currently throws exception
  • [SMACK-373] - Don't remove listeners after a disconnect() , keep state of Connection between disconnect() and connect()/login()
  • [SMACK-434] - Create a project to contain non production ready implementations of specifications
  • [SMACK-526] - Deprecate all PEP related classes.

New in Smack API 3.1.0 (Apr 14, 2010)

  • New Features:
  • [SMACK-142] - Added support for Kerberos/NTLM. (6 votes)
  • [SMACK-210] - Added support for MD5 SASL. (1 vote)
  • [SMACK-256] - Added support for new sophisticated TLS mechanisms including SmartCard and Apple's KeychainStore.
  • [SMACK-242] - Added support for JEP-50: Ad-hoc commands.
  • [SMACK-251] - Added support for XEP-0163: Personal Eventing Protocol. (1 vote)
  • [SMACK-226] - XMLConnection can now be used with an http/socks proxy. (2 votes)
  • [SMACK-254] - Loading the Roster during login is now optional.
  • [SMACK-255] - Added ability to set mime type for avatar.
  • [SMACK-235] - Improved performance of Roster class.
  • [SMACK-241] - Updated Base64 implementation to match Openfire's.
  • [SMACK-240] - Updated Jingle implementation to newest version.
  • [SMACK-246] - Improve Jingle logging using commons-logging
  • [SMACK-244] - Updated JSTUN to 0.7.2.
  • [SMACK-259] - Updated XPP library to latest version.
  • Bug Fixes:
  • [SMACK-231] - IBB Outputstream was not being flushed before it was closed.
  • [SMACK-236] - Renamed stanza error "unexpected-condition" to "unexpected-request".
  • [SMACK-258] - Fixed disconnection issue when parsing SASL success that contained a payload.
  • [SMACK-175] - Fixed typo in RosterPacket.ItemStatus constant.
  • [SMACK-260] - Added handling of error presence packets