diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 000000000..cf36d4182
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,1855 @@
+# Smack Changelog
+
+# 4.4.5 -- 2022-03-02
+
+### Bug
+
+- [SMACK-923](https://igniterealtime.atlassian.net/browse/SMACK-923) Smack reactor should immediately handle scheduled actions that are due in zero milliseconds
+- [SMACK-921](https://igniterealtime.atlassian.net/browse/SMACK-921) XmlStringBuilder.attribute\(String name, Enum> value\) should use value.toString\(\) \(and not value.name\(\)\)
+- [SMACK-920](https://igniterealtime.atlassian.net/browse/SMACK-920) SASL GSSAPI mechanism should be marked to not require a password
+- [SMACK-918](https://igniterealtime.atlassian.net/browse/SMACK-918) Self presences in MUC are no longer handled correctly
+
+### Improvement
+
+- [SMACK-922](https://igniterealtime.atlassian.net/browse/SMACK-922) Support 'optional text' and arbitrary element in Jingle 'reason' element
+- [SMACK-919](https://igniterealtime.atlassian.net/browse/SMACK-919) PubSub ItemProvider should ignore character data in s
+
+## 4.4.4 -- 2021-11-01
+
+### Bug
+
+- [SMACK-916](https://igniterealtime.atlassian.net/browse/SMACK-916) -
+ XMPPErrorException.stanza is missing a getter method
+- [SMACK-915](https://igniterealtgime.atlassian.net/browse/SMACK-915) -
+ Smack does not process MUC destroy message if they contain
+ \'status\'
+- [SMACK-914](https://igniterealtime.atlassian.net/browse/SMACK-914) -
+ MultiUserChat may be become unjoinable due to a race condition
+- [SMACK-913](https://igniterealtime.atlassian.net/browse/SMACK-913) -
+ MultiUserChat.serviceSupportsStableIds\\(\\) may throws a
+ NullPointerException
+- [SMACK-912](https://igniterealtime.atlassian.net/browse/SMACK-912) -
+ Smack does not start the local SOCKS5 proxy automatically
+- [SMACK-910](https://igniterealtime.atlassian.net/browse/SMACK-910) -
+ FormNode and FormNodeProvide should handle non-existent DataForm
+- [SMACK-909](https://igniterealtime.atlassian.net/browse/SMACK-909) -
+ Must use the raw character data of a form field in entity caps hash
+ calculation
+
+## 4.4.3 -- 2021-07-06
+
+### Bug
+
+- [SMACK-905](https://igniterealtime.atlassian.net/browse/SMACK-905) -
+ The class org.jivesoftware.smackx.offline.packet.OfflineMessageInfo
+ has no ELEMENT, NAMESPACE or QNAME member
+- [SMACK-907](https://igniterealtime.atlassian.net/browse/SMACK-907) -
+ Possible NPE in MultipleRecipientManager
+
+## 4.4.2 -- 2021-03-25
+
+### Bug
+
+- [SMACK-903](https://igniterealtime.atlassian.net/browse/SMACK-903) -
+ StaxXmlPullParser.getNamespace() may throws IllegalArgumentException
+- [SMACK-904](https://igniterealtime.atlassian.net/browse/SMACK-904) -
+ XEP-0096 file transfer fails because of a hidden ClastCastException
+
+## 4.4.1 -- 2021-03-03
+
+### Bug
+
+- [SMACK-895](https://igniterealtime.atlassian.net/browse/SMACK-895) -
+ BoBIQ#getIQChildElementBuilder throws NPE when the BoB data does not
+ contain 'max-age'.
+- [SMACK-896](https://igniterealtime.atlassian.net/browse/SMACK-896) -
+ BoBDataExtension is missing getter for BoBData and ContentId
+- [SMACK-897](https://igniterealtime.atlassian.net/browse/SMACK-897) -
+ DirectoryRosterStore.readEntry() should also catch
+ IllegalArgumentException
+- [SMACK-898](https://igniterealtime.atlassian.net/browse/SMACK-898) -
+ AbstractProvider should also consider TypeVariable
+- [SMACK-899](https://igniterealtime.atlassian.net/browse/SMACK-899) -
+ NullPointerException in EntityCapsManager.addCapsExtension
+- [SMACK-900](https://igniterealtime.atlassian.net/browse/SMACK-900) -
+ NPE in DataForm.Builder.addItem()
+- [SMACK-902](https://igniterealtime.atlassian.net/browse/SMACK-902) -
+ DataFormProvider should retrieve the type of fields from
+ \ elements if possible
+
+### Improvement
+
+- [SMACK-901](https://igniterealtime.atlassian.net/browse/SMACK-901) -
+ BoBDataExtension.from() should also allow IQs
+
+## 4.4.0 -- 2020-12-06
+
+### Bug
+
+- [SMACK-561](https://igniterealtime.atlassian.net/browse/SMACK-561) -
+ Smack should not reply with multiple stream types after stream
+ initiation is offered
+- [SMACK-624](https://igniterealtime.atlassian.net/browse/SMACK-624) -
+ AdHocCommandManager\'s session sweeping thread does never stop
+- [SMACK-729](https://igniterealtime.atlassian.net/browse/SMACK-729) -
+ Not all providers from smack-legacy.jar are loaded
+- [SMACK-770](https://igniterealtime.atlassian.net/browse/SMACK-770) -
+ There is no Bits of Binary Extension Element provider registered
+- [SMACK-848](https://igniterealtime.atlassian.net/browse/SMACK-848) -
+ Make MultiUserChat.leave() wait for response
+- [SMACK-874](https://igniterealtime.atlassian.net/browse/SMACK-874) -
+ PacketParserUtilsTest#invalidXMLInMessageBody() fails on non-english
+ machines
+- [SMACK-881](https://igniterealtime.atlassian.net/browse/SMACK-881) -
+ Deadlock between reader and writer if Stream Mangement unacked
+ stanza queue is full
+- [SMACK-888](https://igniterealtime.atlassian.net/browse/SMACK-888) -
+ MUC roomDestroyed() callback is not invoked
+
+### New Feature
+
+- [SMACK-257](https://igniterealtime.atlassian.net/browse/SMACK-257) -
+ Add support for XEP-0118: User Tune
+- [SMACK-636](https://igniterealtime.atlassian.net/browse/SMACK-636) -
+ Add support for XEP-0319: Last User Interaction in Presence
+- [SMACK-743](https://igniterealtime.atlassian.net/browse/SMACK-743) -
+ Add support for XEP-0384: OMEMO Encryption
+- [SMACK-801](https://igniterealtime.atlassian.net/browse/SMACK-801) -
+ Update Smack to Java 8
+- [SMACK-824](https://igniterealtime.atlassian.net/browse/SMACK-824) -
+ Add support for XEP-0221: Data Forms Media Element
+- [SMACK-862](https://igniterealtime.atlassian.net/browse/SMACK-862) -
+ Add support for XEP-0418: DNS Queries over XMPP (DoX)
+- [SMACK-871](https://igniterealtime.atlassian.net/browse/SMACK-871) -
+ Add support for XEP-0350: Data Forms Geolocation Element
+- [SMACK-872](https://igniterealtime.atlassian.net/browse/SMACK-872) -
+ Add support for XEP-0315: Data Forms XML Element
+- [SMACK-878](https://igniterealtime.atlassian.net/browse/SMACK-878) -
+ Add support for XEP-0328: JID Prep
+- [SMACK-884](https://igniterealtime.atlassian.net/browse/SMACK-884) -
+ Add support for XEP-0422: Message Fastening
+- [SMACK-885](https://igniterealtime.atlassian.net/browse/SMACK-885) -
+ Add support for XEP-0420 Stanza Content Encryption
+- [SMACK-889](https://igniterealtime.atlassian.net/browse/SMACK-889) -
+ Add support for XEP-0428: Fallback Indication
+
+### Improvement
+
+- [SMACK-591](https://igniterealtime.atlassian.net/browse/SMACK-591) -
+ Replace XPP3 by SmackXmlPullParser (wrapping Stax\'s XmlStreamReader
+ and XPP3 on Android)
+- [SMACK-650](https://igniterealtime.atlassian.net/browse/SMACK-650) -
+ Enable Java8\'s javadoc doclint
+- [SMACK-651](https://igniterealtime.atlassian.net/browse/SMACK-651) -
+ Perform sound cross-compilation: Use newer javac\'s \--release
+ feature
+- [SMACK-718](https://igniterealtime.atlassian.net/browse/SMACK-718) -
+ Prevent extremely long reply timeouts from being set
+- [SMACK-821](https://igniterealtime.atlassian.net/browse/SMACK-821) -
+ Make Forwarded a generic type
+- [SMACK-822](https://igniterealtime.atlassian.net/browse/SMACK-822) -
+ Add API for XEP-0313 § 6.2 Advanced configuration via Ad-Hoc
+ commands
+- [SMACK-825](https://igniterealtime.atlassian.net/browse/SMACK-825) -
+ Discourage Stanza.getExtension(String, String) in favor of
+ Stanza.getExtension(Class\)
+- [SMACK-826](https://igniterealtime.atlassian.net/browse/SMACK-826) -
+ Add support for XEP-0373:\" OpenPGP for XMPP\" and XEP-0374:
+ \"OpenPGP for XMPP Instant Messaging\"
+- [SMACK-828](https://igniterealtime.atlassian.net/browse/SMACK-828) -
+ Add support for XEP-0107: User Mood
+- [SMACK-836](https://igniterealtime.atlassian.net/browse/SMACK-836) -
+ Save a ServiceDiscoveryManager instance in a private field of
+ MultiUserChatManger
+- [SMACK-839](https://igniterealtime.atlassian.net/browse/SMACK-839) -
+ Provider.parse() should not throw a generic Exception, but instead
+ IOException and XmlPullParserException
+- [SMACK-852](https://igniterealtime.atlassian.net/browse/SMACK-852) -
+ Message thread and subject should be designed and implemented as
+ ExtensionElements
+- [SMACK-854](https://igniterealtime.atlassian.net/browse/SMACK-854) -
+ Rename smack-java7 to smack-java8
+- [SMACK-866](https://igniterealtime.atlassian.net/browse/SMACK-866) -
+ Remove all tabs from the source code and add checkstyle rule that
+ enforces no-tabs
+- [SMACK-867](https://igniterealtime.atlassian.net/browse/SMACK-867) -
+ Extend HttpFileUploadManager by methods with InputStream parameter
+- [SMACK-882](https://igniterealtime.atlassian.net/browse/SMACK-882) -
+ Add support for MUC status code 333
+- [SMACK-883](https://igniterealtime.atlassian.net/browse/SMACK-883) -
+ Add generic MUC callback for \"participant left\" caused by
+ unavailable presences
+- [SMACK-890](https://igniterealtime.atlassian.net/browse/SMACK-890) -
+ Update Message Archive Management (XEP-0313) support to
+ urn:xmpp:mam:2
+- [SMACK-892](https://igniterealtime.atlassian.net/browse/SMACK-892) -
+ Smack performs unnecessary escaping in XML text
+
+### Task
+
+- [SMACK-750](https://igniterealtime.atlassian.net/browse/SMACK-750) -
+ Raise Smack\'s minimum required Android SDK level to 19 (Android
+ 4.4, Kit Kat, 2013-10)
+- [SMACK-840](https://igniterealtime.atlassian.net/browse/SMACK-840) -
+ Remove smack-compression-jzlib, as it is obsolete (Smack uses Java 7
+ de- and inflate API now)
+
+## 4.3.4 -- 2019-05-27
+
+### Bug
+
+- [SMACK-861](https://igniterealtime.atlassian.net/browse/SMACK-861) -
+ Potential NPE in Roster.getPresencesInternal(BareJid)
+- [SMACK-863](https://igniterealtime.atlassian.net/browse/SMACK-863) -
+ ServiceDiscoveryManger does not use the main identity, causing
+ setIdentity() to have no effect
+- [SMACK-864](https://igniterealtime.atlassian.net/browse/SMACK-864) -
+ Potential Denial of Service (DOS) by remote entities caused by
+ unlimited threads for asynchronous operations
+- [SMACK-865](https://igniterealtime.atlassian.net/browse/SMACK-865) -
+ Some Manager.getInsanceFor() methods are missing the
+ \'synchronized\' keyword
+- [SMACK-868](https://igniterealtime.atlassian.net/browse/SMACK-868) -
+ XHTMLText.appendOpenBodyTag() produces invalid XML
+- [SMACK-870](https://igniterealtime.atlassian.net/browse/SMACK-870) -
+ TLS X.509 certificate verification should be performed with the ACE
+ representation of the XMPP service domain when possible
+
+### Improvement
+
+- [SMACK-869](https://igniterealtime.atlassian.net/browse/SMACK-869) -
+ Exceptions in async tasks should not go uncaught to the call stack
+ to avoid program termination
+
+## 4.3.3 -- 2019-03-14
+
+### Bug
+
+- [SMACK-856](https://igniterealtime.atlassian.net/browse/SMACK-856) -
+ Smack fails under JDK 11 because com.sun.jndi.dns.DnsContextFactory
+ is not inaccessible
+
+### Improvement
+
+- [SMACK-858](https://igniterealtime.atlassian.net/browse/SMACK-858) -
+ Dependency version specifier of jxmpp and MiniDNS include
+ alpha/beta/\... versions of the follow up version when Maven is used
+- [SMACK-859](https://igniterealtime.atlassian.net/browse/SMACK-859) -
+ MultiUserChat enter() should reset the timeout of the collector
+ waiting for the final self presence to prevent timeouts for large
+ MUCs
+
+## 4.3.2 -- 2019-02-22
+
+### Bug
+
+- [SMACK-842](https://igniterealtime.atlassian.net/browse/SMACK-842) -
+ The RFC 3920 xml-not-well-formed error condition should be handled
+ in stream error not a stanza error
+- [SMACK-843](https://igniterealtime.atlassian.net/browse/SMACK-843) -
+ ManManager.pagePrevious() pages into the wrong direction
+- [SMACK-844](https://igniterealtime.atlassian.net/browse/SMACK-844) -
+ Check if bounded unacknowledged stanzas queue is full before adding
+ to it to avoid IllegalStateException
+- [SMACK-845](https://igniterealtime.atlassian.net/browse/SMACK-845) -
+ Ensure that IQ response \'to\' address and ID are set correctly
+- [SMACK-846](https://igniterealtime.atlassian.net/browse/SMACK-846) -
+ XMPPTCPConnection does not wait for stream features after
+ authentication if compression is disabled
+- [SMACK-848](https://igniterealtime.atlassian.net/browse/SMACK-848) -
+ Make MultiUserChat.leave() wait for response
+- [SMACK-850](https://igniterealtime.atlassian.net/browse/SMACK-850) -
+ DeliveryReceiptManager should not send receipts with messages of
+ type \'groupchat\'
+- [SMACK-855](https://igniterealtime.atlassian.net/browse/SMACK-855) -
+ XMPPTCPConnection sometimes has two writer threads running
+
+### Improvement
+
+- [SMACK-847](https://igniterealtime.atlassian.net/browse/SMACK-847) -
+ Make TCP socket connection attempt interruptable
+- [SMACK-849](https://igniterealtime.atlassian.net/browse/SMACK-849) -
+ Smack Local SOCKS5 Proxy thread should be marked as daemon thread
+
+## 4.3.1 -- 2018-10-14
+
+### Bug
+
+- [SMACK-833](https://igniterealtime.atlassian.net/browse/SMACK-833) -
+ XMLUtil.prettyFormatXml() throws on some Android devices
+
+### Improvement
+
+- [SMACK-829](https://igniterealtime.atlassian.net/browse/SMACK-829) -
+ Disconnect BOSH client on shutdown
+- [SMACK-838](https://igniterealtime.atlassian.net/browse/SMACK-838) -
+ FormField.getFirstValue() throws IndexOutOfBoundsException if there
+ are no values
+
+## 4.3.0 -- 2018-08-02
+
+### Bug
+
+- [SMACK-759](https://igniterealtime.atlassian.net/browse/SMACK-759) -
+ PubSubManager.getLeafNode() throws
+ PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but
+ its not a PubSub Node
+- [SMACK-814](https://igniterealtime.atlassian.net/browse/SMACK-814) -
+ NPE when using Node.getAffiliationsAsOwner()
+- [SMACK-815](https://igniterealtime.atlassian.net/browse/SMACK-815) -
+ XEP-0184: DeliveryReceipt requires ID, although the XEP defines it
+ as optional attribute
+- [SMACK-818](https://igniterealtime.atlassian.net/browse/SMACK-818) -
+ EntityCapsManager sends presences with multiple CapsExtension
+ causing disco#info lookup to fail
+- [SMACK-819](https://igniterealtime.atlassian.net/browse/SMACK-819) -
+ ConcurrentModification Exception in MultiUserChatManager.java
+- [SMACK-820](https://igniterealtime.atlassian.net/browse/SMACK-820) -
+ DNSUtil.setDaneProvider() does not set the DANE provider
+
+### Task
+
+- [SMACK-769](https://igniterealtime.atlassian.net/browse/SMACK-769) -
+ Rename XMPPError to StanzaError
+- [SMACK-776](https://igniterealtime.atlassian.net/browse/SMACK-776) -
+ Remove deprecated reconnection callbacks in ConnectionListener
+
+### Improvement
+
+- [SMACK-761](https://igniterealtime.atlassian.net/browse/SMACK-761) -
+ Adopt ChatStateManager to new Chat API (chat2)
+- [SMACK-812](https://igniterealtime.atlassian.net/browse/SMACK-812) -
+ Enable ModifierOrder checkstyle check
+- [SMACK-816](https://igniterealtime.atlassian.net/browse/SMACK-816) -
+ SimplePayload should infer the XML element name and namespace
+
+## 4.2.4 -- 2018-04-15
+
+### Bug
+
+- [SMACK-804](https://igniterealtime.atlassian.net/browse/SMACK-804) -
+ ServiceAdministrationManager does not use correct form actions
+- [SMACK-805](https://igniterealtime.atlassian.net/browse/SMACK-805) -
+ ServiceDiscoveryManager.findService() only considers the first
+ service by feature
+- [SMACK-813](https://igniterealtime.atlassian.net/browse/SMACK-813) -
+ Smack uses hostname instead of XMPP service name for SNI
+
+### New Feature
+
+- [SMACK-794](https://igniterealtime.atlassian.net/browse/SMACK-794) -
+ Add support for XEP-0394: Message Markup
+- [SMACK-795](https://igniterealtime.atlassian.net/browse/SMACK-795) -
+ Add support for XEP-0382: Spoiler messages
+- [SMACK-799](https://igniterealtime.atlassian.net/browse/SMACK-799) -
+ Add support for XEP-0372: References
+- [SMACK-800](https://igniterealtime.atlassian.net/browse/SMACK-800) -
+ Add support for XEP-0392: Consistent Color Generation
+
+### Improvement
+
+- [SMACK-802](https://igniterealtime.atlassian.net/browse/SMACK-802) -
+ Rename and deprecate: addPacketSendingListener(),
+ removePacketSendingListener(), addPacketInterceptor() and
+ removePacketInterceptor()
+- [SMACK-809](https://igniterealtime.atlassian.net/browse/SMACK-809) -
+ Make Roster\'s non-roster presence map second-level map bounded
+
+## 4.2.3 -- 2018-02-07
+
+### Bug
+
+- [SMACK-788](https://igniterealtime.atlassian.net/browse/SMACK-788) -
+ NullPointerException if hostAddresses is null
+- [SMACK-789](https://igniterealtime.atlassian.net/browse/SMACK-789) -
+ AffiliationsExtension toXml() produces invalid XML
+- [SMACK-790](https://igniterealtime.atlassian.net/browse/SMACK-790) -
+ Some HTTP File Upload elements are not correctly parsed and
+ serialized
+- [SMACK-791](https://igniterealtime.atlassian.net/browse/SMACK-791) -
+ NumberFormatException in IpAddressUtil.isIPv4LiteralAddress
+- [SMACK-796](https://igniterealtime.atlassian.net/browse/SMACK-796) -
+ SOCKS5 authentication erroneously uses \'user\' when it should use
+ \'passwd\', causes authentication to fail
+
+## 4.2.2 -- 2017-11-25
+
+### Bug
+
+- [SMACK-775](https://igniterealtime.atlassian.net/browse/SMACK-775) -
+ Create callback interface for ReconnectionManager
+- [SMACK-778](https://igniterealtime.atlassian.net/browse/SMACK-778) -
+ ReconnectionManager.reconnect() can throw NotConnectedException
+- [SMACK-779](https://igniterealtime.atlassian.net/browse/SMACK-779) -
+ smack-android erroneously depends on smack-omemo and
+ smack-omemo-signal
+- [SMACK-780](https://igniterealtime.atlassian.net/browse/SMACK-780) -
+ PushNotificationManager\'s isSupported logic does query the server,
+ whereas it should query the bare JID
+- [SMACK-781](https://igniterealtime.atlassian.net/browse/SMACK-781) -
+ MiniDnsResolver does not correctly handle the case when NOERROR is
+ returned together with an empty answer section.
+- [SMACK-782](https://igniterealtime.atlassian.net/browse/SMACK-782) -
+ MultiUserChat does not remove the subject listener causing a memory
+ leak
+- [SMACK-783](https://igniterealtime.atlassian.net/browse/SMACK-783) -
+ InvitationRejectionListener fires multiple times
+- [SMACK-784](https://igniterealtime.atlassian.net/browse/SMACK-784) -
+ StringUtils.numbersAndLetters has the numbers twice, resulting in a
+ lower entropy
+- [SMACK-785](https://igniterealtime.atlassian.net/browse/SMACK-785) -
+ OfflineMessageManager.getMessages() does count the pending messages
+ incorrectly, causing an unnecessary delay
+- [SMACK-786](https://igniterealtime.atlassian.net/browse/SMACK-786) -
+ Race condition when resuming a stream
+- [SMACK-787](https://igniterealtime.atlassian.net/browse/SMACK-787) -
+ Presence.getPriority() may return Integer.MIN_VALUE.
+
+## 4.2.1 -- 2017-08-14
+
+### Bug
+
+- [SMACK-749](https://igniterealtime.atlassian.net/browse/SMACK-749) -
+ SCRAM-SHA-1 and SCRAM-SHA-1-PLUS SASL mechanisms have the same
+ priority, causing SASL authentication failures
+- [SMACK-755](https://igniterealtime.atlassian.net/browse/SMACK-755) -
+ DIGEST-MD5 sometimes causes malformed request server response
+- [SMACK-756](https://igniterealtime.atlassian.net/browse/SMACK-756) -
+ IoTIsFriendResponse has invalid name and produces invalid XML
+- [SMACK-759](https://igniterealtime.atlassian.net/browse/SMACK-759) -
+ PubSubManager.getLeafNode() throws
+ PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but
+ its not a PubSub Node
+- [SMACK-764](https://igniterealtime.atlassian.net/browse/SMACK-764) -
+ NPE in hashCode() in Occupant when jid is null
+- [SMACK-766](https://igniterealtime.atlassian.net/browse/SMACK-766) -
+ Smack possibly includes \'ask\' attribute in roster items when
+ sending requests
+- [SMACK-768](https://igniterealtime.atlassian.net/browse/SMACK-768) -
+ Smack throws NoResponse timeout when waiting for IQ although there
+ was a response
+- [SMACK-771](https://igniterealtime.atlassian.net/browse/SMACK-771) -
+ XMPPTCPConnection should use KeyManagerFactory.getDefaultAlgorithm()
+ instead of KeyManagerFactory.getInstance(\"sunX509\");
+- [SMACK-772](https://igniterealtime.atlassian.net/browse/SMACK-772) -
+ HostAddress must deal with \'fqdn\' being null.
+- [SMACK-773](https://igniterealtime.atlassian.net/browse/SMACK-773) -
+ Allow roster pushes from our full JID for backwards compatibility
+- [SMACK-774](https://igniterealtime.atlassian.net/browse/SMACK-774) -
+ HTTP File Upload\'s SlotRequest metadata should be attributes not
+ child elements
+
+### New Feature
+
+- [SMACK-746](https://igniterealtime.atlassian.net/browse/SMACK-746) -
+ Add support for XEP-0380: Explicit Message Encryption
+- [SMACK-758](https://igniterealtime.atlassian.net/browse/SMACK-758) -
+ Add support for XEP-0334: Message Processing Hints
+- [SMACK-760](https://igniterealtime.atlassian.net/browse/SMACK-760) -
+ Smack does not allow custom extension elements in SM\'s \
+
+### Improvement
+
+- [SMACK-752](https://igniterealtime.atlassian.net/browse/SMACK-752) -
+ XEP-0357 Push Notification enable IQ uses wrong form type: Should be
+ \'submit\' instead of \'form\'
+- [SMACK-754](https://igniterealtime.atlassian.net/browse/SMACK-754) -
+ Allow MUC room subject changes from the MUCs bare JID
+- [SMACK-777](https://igniterealtime.atlassian.net/browse/SMACK-777) -
+ MamManager should use the user\'s bare JID to check if MAM is
+ supported
+
+## 4.2.0 -- 2017-03-10
+
+## Sub-task
+
+- [SMACK-639](https://igniterealtime.atlassian.net/browse/SMACK-639) -
+ Add support for pre-approved subscription requests (RFC 6121 § 3.4)
+
+### Bug
+
+- [SMACK-306](https://igniterealtime.atlassian.net/browse/SMACK-306) -
+ loadRosterOnLogin has non-trivial side effect on getRoster
+- [SMACK-416](https://igniterealtime.atlassian.net/browse/SMACK-416) -
+ Refactor PEP to make it use the existing pubsub API.
+- [SMACK-674](https://igniterealtime.atlassian.net/browse/SMACK-674) -
+ PubSub Affiliation extension element is missing \'jid\' attribute,
+ and is using wrong element name \'subscription\'
+- [SMACK-682](https://igniterealtime.atlassian.net/browse/SMACK-682) -
+ Add support for \"XEP-0360: Nonzas (are not Stanzas)\"
+- [SMACK-683](https://igniterealtime.atlassian.net/browse/SMACK-683) -
+ Using a Proxy with XMPPTCPConnection failes with \"SocketException:
+ Unconnected sockets not implemented\"
+- [SMACK-691](https://igniterealtime.atlassian.net/browse/SMACK-691) -
+ Add support for MUCItem\'s Actor \'nick\'
+- [SMACK-705](https://igniterealtime.atlassian.net/browse/SMACK-705) -
+ PubSub\'s Affiliation.getElementName() returns wrong name
+- [SMACK-722](https://igniterealtime.atlassian.net/browse/SMACK-722) -
+ SASL X-OAUTH2 implementation incorrectly performs Base64 encoding
+ twice
+- [SMACK-723](https://igniterealtime.atlassian.net/browse/SMACK-723) -
+ Support \"Caps Optimizations\" (XEP-0115 § 8.4)
+- [SMACK-724](https://igniterealtime.atlassian.net/browse/SMACK-724) -
+ Do not re-use the Socket after connect() failed.
+- [SMACK-725](https://igniterealtime.atlassian.net/browse/SMACK-725) -
+ ReconnectionManager should handle AlreadyConnectedException and
+ AlreadyLoggedInException not as failure
+- [SMACK-741](https://igniterealtime.atlassian.net/browse/SMACK-741) -
+ Ad-hoc command \'note\' element \'type\' attribute should be treated
+ as optional
+- [SMACK-745](https://igniterealtime.atlassian.net/browse/SMACK-745) -
+ Memory leak in MultiUserChat
+
+### New Feature
+
+- [SMACK-366](https://igniterealtime.atlassian.net/browse/SMACK-366) -
+ Add support for DNSSEC.
+- [SMACK-610](https://igniterealtime.atlassian.net/browse/SMACK-610) -
+ Add support for XEP-0080: User Location
+- [SMACK-619](https://igniterealtime.atlassian.net/browse/SMACK-619) -
+ Add roomDestroyed to MUC UserStatusListener
+- [SMACK-625](https://igniterealtime.atlassian.net/browse/SMACK-625) -
+ Add support for XEP-313: Message Archive Management
+- [SMACK-675](https://igniterealtime.atlassian.net/browse/SMACK-675) -
+ Add support for PubSub affiliation actions as owner
+- [SMACK-677](https://igniterealtime.atlassian.net/browse/SMACK-677) -
+ Add support for SASL \'authzid\' (Authorization Identity)
+- [SMACK-690](https://igniterealtime.atlassian.net/browse/SMACK-690) -
+ Add support for DNS-Based Authentication of Named Entities (DANE,
+ RFC 6698)
+- [SMACK-731](https://igniterealtime.atlassian.net/browse/SMACK-731) -
+ Add support for XEP-0191: Blocking Command
+- [SMACK-732](https://igniterealtime.atlassian.net/browse/SMACK-732) -
+ Smack should be able to handle \"single equals sign\" SASL responses
+- [SMACK-740](https://igniterealtime.atlassian.net/browse/SMACK-740) -
+ Add support for Multi-User Chat Light
+- [SMACK-742](https://igniterealtime.atlassian.net/browse/SMACK-742) -
+ Add support for XEP-0133: Service Administration
+- [SMACK-747](https://igniterealtime.atlassian.net/browse/SMACK-747) -
+ Add support for XEP-0363: HTTP File Upload
+
+### Task
+
+- [SMACK-638](https://igniterealtime.atlassian.net/browse/SMACK-638) -
+ Call connection creation listeners from within
+ AbstractXMPPConnection\'s constructor
+- [SMACK-644](https://igniterealtime.atlassian.net/browse/SMACK-644) -
+ Throw exception if account creation or password change is performed
+ over insecure connections
+- [SMACK-655](https://igniterealtime.atlassian.net/browse/SMACK-655) -
+ Enable StreamManagement by default
+
+### Improvement
+
+- [SMACK-372](https://igniterealtime.atlassian.net/browse/SMACK-372) -
+ Make package protected methods in PEPItem public
+- [SMACK-572](https://igniterealtime.atlassian.net/browse/SMACK-572) -
+ Rejoin MUC rooms after reconnect
+- [SMACK-628](https://igniterealtime.atlassian.net/browse/SMACK-628) -
+ Rework Roster handling with anonymous connections
+- [SMACK-629](https://igniterealtime.atlassian.net/browse/SMACK-629) -
+ Rework how Smack handles anonymous connections
+- [SMACK-631](https://igniterealtime.atlassian.net/browse/SMACK-631) -
+ Improve ParsingExceptionCallback, allow it to be a functional
+ interface
+- [SMACK-632](https://igniterealtime.atlassian.net/browse/SMACK-632) -
+ Make Smack interruptible
+- [SMACK-633](https://igniterealtime.atlassian.net/browse/SMACK-633) -
+ Allow clean and graceful disconnects (stream closing)
+- [SMACK-634](https://igniterealtime.atlassian.net/browse/SMACK-634) -
+ Use jxmpp-jid, add Jid class to replace String\'s being used as JIDs
+- [SMACK-646](https://igniterealtime.atlassian.net/browse/SMACK-646) -
+ Add support for MUC roomnick rewrite
+- [SMACK-647](https://igniterealtime.atlassian.net/browse/SMACK-647) -
+ Don\'t automatically call login() on connect() if the connection was
+ authenticated before
+- [SMACK-648](https://igniterealtime.atlassian.net/browse/SMACK-648) -
+ Improve MultiUserChat API
+- [SMACK-657](https://igniterealtime.atlassian.net/browse/SMACK-657) -
+ Rename RosterEntry.getStatus and RosterPacket.ItemStatus to
+ ItemAskStatus
+- [SMACK-663](https://igniterealtime.atlassian.net/browse/SMACK-663) -
+ Roster should be fully loaded when
+ Roster.getInstanceFor(XMPPConnection) is called with a authenticated
+ connection
+- [SMACK-665](https://igniterealtime.atlassian.net/browse/SMACK-665) -
+ Rename \'serviceName\' to \'xmppServiceDomain\'
+- [SMACK-666](https://igniterealtime.atlassian.net/browse/SMACK-666) -
+ Typo in \'RosterEntries.rosterEntires()\', change to
+ \'RosterEntries.rosterEntries()\'
+- [SMACK-703](https://igniterealtime.atlassian.net/browse/SMACK-703) -
+ Limit the stored presences of entities not in Roster
+- [SMACK-704](https://igniterealtime.atlassian.net/browse/SMACK-704) -
+ Pass down Message stanza in ChatStateListener
+- [SMACK-711](https://igniterealtime.atlassian.net/browse/SMACK-711) -
+ Improve the logging of TCP connection attempts.
+- [SMACK-720](https://igniterealtime.atlassian.net/browse/SMACK-720) -
+ Improve support for Tor and Hidden Services.
+- [SMACK-721](https://igniterealtime.atlassian.net/browse/SMACK-721) -
+ Report illegal Stream Management states to avoid OOM Exception
+- [SMACK-727](https://igniterealtime.atlassian.net/browse/SMACK-727) -
+ Add partial support for the IoT XEPs (XEP-0323, -0324, -0325, -0347)
+- [SMACK-733](https://igniterealtime.atlassian.net/browse/SMACK-733) -
+ Handle outgoing \'unavailable\' Presences in Roster
+- [SMACK-736](https://igniterealtime.atlassian.net/browse/SMACK-736) -
+ Add support for Chat Markers (XEP-0333)
+- [SMACK-737](https://igniterealtime.atlassian.net/browse/SMACK-737) -
+ Add support for Bits of Binary (XEP-0231)
+- [SMACK-738](https://igniterealtime.atlassian.net/browse/SMACK-738) -
+ Add support for Push Notifications (XEP-0357)
+
+## 4.1.9 -- 2016-11-19
+
+### Bug
+
+- [SMACK-739](https://igniterealtime.atlassian.net/browse/SMACK-739) -
+ Smack starts SASL step without TLS in case STARTTLS is stripped even
+ if SecurityMode.Required is used
+- [SMACK-735](https://igniterealtime.atlassian.net/browse/SMACK-735) -
+ Smack sometimes sends invalid SCRAM-SHA1 nonce
+
+## 4.1.8 -- 2016-07-30
+
+### Bug
+
+- [SMACK-722](https://igniterealtime.atlassian.net/browse/SMACK-722) -
+ SASL X-OAUTH2 implementation incorrectly performs Base64 encoding
+ twice
+- [SMACK-724](https://igniterealtime.atlassian.net/browse/SMACK-724) -
+ Do not re-use the Socket after connect() failed.
+- [SMACK-725](https://igniterealtime.atlassian.net/browse/SMACK-725) -
+ ReconnectionManager should handle AlreadyConnectedException and
+ AlreadyLoggedInException not as failure
+- [SMACK-726](https://igniterealtime.atlassian.net/browse/SMACK-726) -
+ \'purge\' and \'remove\' IQ of XEP-0013 must be of type \'set\'
+
+## 4.1.7 -- 2016-04-14
+
+### Bug
+
+- [SMACK-712](https://igniterealtime.atlassian.net/browse/SMACK-712) -
+ XMPPTCPConnection\'s setEnabledSSL(Protocols\|Ciphers) has no effect
+- [SMACK-716](https://igniterealtime.atlassian.net/browse/SMACK-716) -
+ EntityTimeManager.getTime() does not set the recipients JID
+- [SMACK-719](https://igniterealtime.atlassian.net/browse/SMACK-719) -
+ XMPPError should use Locale.US in toUpperCase()
+
+### Improvement
+
+- [SMACK-715](https://igniterealtime.atlassian.net/browse/SMACK-715) -
+ Add Roster.setRosterLoadedAtLoginDefault(boolean)
+
+## 4.1.6 -- 2016-01-23
+
+### Bug
+
+- [SMACK-705](https://igniterealtime.atlassian.net/browse/SMACK-705) -
+ PubSub\'s Affiliation.getElementName() returns wrong name
+- [SMACK-706](https://igniterealtime.atlassian.net/browse/SMACK-706) -
+ Smack may sends \ and \ twice if Stream Management
+ is used and a previous SM state exists
+- [SMACK-707](https://igniterealtime.atlassian.net/browse/SMACK-707) -
+ Infinite loop of NullPointerExceptions in Socks5Proxy
+- [SMACK-708](https://igniterealtime.atlassian.net/browse/SMACK-708) -
+ DeliveryReceipt(Manager) should ensure that receipts (and requests)
+ have an ID set
+- [SMACK-709](https://igniterealtime.atlassian.net/browse/SMACK-709) -
+ Don\'t request delivery receipts for messages without a body
+- [SMACK-710](https://igniterealtime.atlassian.net/browse/SMACK-710) -
+ SASL DIGEST-MD5 backslash must be quoted
+
+## 4.1.5 -- 2015-11-22
+
+### Bug
+
+- [SMACK-698](https://igniterealtime.atlassian.net/browse/SMACK-698) -
+ Time creates invalid XML
+- [SMACK-700](https://igniterealtime.atlassian.net/browse/SMACK-700) -
+ Duplicate stanzas in unacknowledgedStanzas queue when stream is
+ resumed
+- [SMACK-702](https://igniterealtime.atlassian.net/browse/SMACK-702) -
+ RejectedExecutionException in AbstractXMPPConnection.processPacket()
+ causes connection Termination
+
+## 4.1.4 -- 2015-09-14
+
+### Bug
+
+- [SMACK-688](https://igniterealtime.atlassian.net/browse/SMACK-688) -
+ Reset carbons state if session got not resumed or cleanly
+ disconnected
+- [SMACK-689](https://igniterealtime.atlassian.net/browse/SMACK-689) -
+ PEPPubSub creates malformed XML
+- [SMACK-693](https://igniterealtime.atlassian.net/browse/SMACK-693) -
+ MultiUserChat\'s UserStatusListener is not getting triggered
+- [SMACK-695](https://igniterealtime.atlassian.net/browse/SMACK-695) -
+ JSON and GCM parser does an erroneous extra next()
+- [SMACK-697](https://igniterealtime.atlassian.net/browse/SMACK-697) -
+ PrivacyListManager should handle the case where not default and
+ active list are currently set
+
+### Improvement
+
+- [SMACK-686](https://igniterealtime.atlassian.net/browse/SMACK-686) -
+ Provide a hint that connect() needs to be called prior login() in
+ NotConnectedException
+- [SMACK-687](https://igniterealtime.atlassian.net/browse/SMACK-687) -
+ Update to jxmpp 0.4.2
+- [SMACK-696](https://igniterealtime.atlassian.net/browse/SMACK-696) -
+ Drop stream state after stream error
+
+## 4.1.3 -- 2015-07-15
+
+### Bug
+
+- [SMACK-679](https://igniterealtime.atlassian.net/browse/SMACK-679) -
+ Memory leak in Socks5BytestreamManager. Should use weak map for
+ \'managers\'
+- [SMACK-680](https://igniterealtime.atlassian.net/browse/SMACK-680) -
+ XHTML bodies are un-escaped after parsing
+- [SMACK-681](https://igniterealtime.atlassian.net/browse/SMACK-681) -
+ Roster presence callbacks may not be invoked right after login
+
+## 4.1.2 -- 2015-06-27
+
+### Bug
+
+- [SMACK-664](https://igniterealtime.atlassian.net/browse/SMACK-664) -
+ Invalid IQ error response to OfferRequestPacket and
+ OfferRevokePacket
+- [SMACK-668](https://igniterealtime.atlassian.net/browse/SMACK-668) -
+ ReconnectionManager\'s value of \'attempts\' is not reset after
+ successful reconnection
+- [SMACK-669](https://igniterealtime.atlassian.net/browse/SMACK-669) -
+ Only add Entity Capabilities extension to available presences
+- [SMACK-670](https://igniterealtime.atlassian.net/browse/SMACK-670) -
+ SASLMechanism.authenticate should treat an empty byte array like
+ \'null\' byte array
+- [SMACK-672](https://igniterealtime.atlassian.net/browse/SMACK-672) -
+ Memory leak caused by RosterGroup declaring a strong reference to
+ XMPPConnection
+- [SMACK-673](https://igniterealtime.atlassian.net/browse/SMACK-673) -
+ VCard API does not support all elements
+- [SMACK-676](https://igniterealtime.atlassian.net/browse/SMACK-676) -
+ ConcurrentModificationException in ServerPingWithAlarmManager
+- [SMACK-678](https://igniterealtime.atlassian.net/browse/SMACK-678) -
+ Login hangs if starttls advertised, but security is set to
+ \'disabled\' and compression is also advertised
+
+### Improvement
+
+- [SMACK-667](https://igniterealtime.atlassian.net/browse/SMACK-667) -
+ Request Stream Mangement Acknowledgement after re-sending unack\'ed
+ stanzas after stream resumption
+- [SMACK-671](https://igniterealtime.atlassian.net/browse/SMACK-671) -
+ Don\'t disable Scoks5BytestreamManager on connection termination
+
+## 4.1.1 -- 2015-05-09
+
+### Bug
+
+- [SMACK-649](https://igniterealtime.atlassian.net/browse/SMACK-649) -
+ DIGEST-MD5 challenge/response parsing must handle linear white
+ spaces after the comma
+- [SMACK-652](https://igniterealtime.atlassian.net/browse/SMACK-652) -
+ SynchronizationPoint should use signalAll
+- [SMACK-653](https://igniterealtime.atlassian.net/browse/SMACK-653) -
+ Integer overflow if both client and server don\'t specify a max
+ resumption time
+- [SMACK-654](https://igniterealtime.atlassian.net/browse/SMACK-654) -
+ isSmResumptionPossible() returns wrong values
+- [SMACK-656](https://igniterealtime.atlassian.net/browse/SMACK-656) -
+ DeliveryReceipts auto add should use packet interceptors and should
+ not be requested for messages with ACKs.
+- [SMACK-659](https://igniterealtime.atlassian.net/browse/SMACK-659) -
+ Memory leak caused by RosterEntry declaring a strong reference to
+ XMPPConnection
+- [SMACK-660](https://igniterealtime.atlassian.net/browse/SMACK-660) -
+ ReconnectionManager\'s RANDOM_INCREASING_DELAY is erroneously using
+ a fixed value.
+- [SMACK-661](https://igniterealtime.atlassian.net/browse/SMACK-661) -
+ Add method to set ProxyInfo in ConnectionConfiguration.Builder
+- [SMACK-662](https://igniterealtime.atlassian.net/browse/SMACK-662) -
+ RosterEntry.setName() does not change the name
+
+## 4.1.0 -- 2015-03-29
+
+## Sub-task
+
+- [SMACK-398](https://igniterealtime.atlassian.net/browse/SMACK-398) -
+ Implement SCRAM support
+
+### Bug
+
+- [SMACK-65](https://igniterealtime.atlassian.net/browse/SMACK-65) -
+ Packet parsing should look for depth
+- [SMACK-237](https://igniterealtime.atlassian.net/browse/SMACK-237) -
+ Handle more vCard values (XEP-0054)
+- [SMACK-383](https://igniterealtime.atlassian.net/browse/SMACK-383) -
+ Allow the garbage collection of all object instances of a closed and
+ unreferenced connection
+- [SMACK-424](https://igniterealtime.atlassian.net/browse/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](https://igniterealtime.atlassian.net/browse/SMACK-542) -
+ MUC: RoomInfo should hold more data if the result contains a
+ FORM_TYPE field
+- [SMACK-549](https://igniterealtime.atlassian.net/browse/SMACK-549) -
+ MUCUser#getStatus should be a List
+- [SMACK-564](https://igniterealtime.atlassian.net/browse/SMACK-564) -
+ Some tests fail with Java 8
+- [SMACK-570](https://igniterealtime.atlassian.net/browse/SMACK-570) -
+ Smack does not support resourceparts which contain the \'@\'
+ character.
+- [SMACK-571](https://igniterealtime.atlassian.net/browse/SMACK-571) -
+ Don\'t remove the MUC listeners after a disconnect() , keep state of
+ Connection between disconnect() and connect()/login()
+- [SMACK-573](https://igniterealtime.atlassian.net/browse/SMACK-573) -
+ MessageEventManager treats error replies as message events
+- [SMACK-583](https://igniterealtime.atlassian.net/browse/SMACK-583) -
+ PacketListeners may not be invoked in delivery order
+- [SMACK-585](https://igniterealtime.atlassian.net/browse/SMACK-585) -
+ XMPPTCPConnection does not set \'host\' and \'port\'
+- [SMACK-590](https://igniterealtime.atlassian.net/browse/SMACK-590) -
+ Don\'t use IQReplyFilter for the bind set/result exchange
+- [SMACK-597](https://igniterealtime.atlassian.net/browse/SMACK-597) -
+ PingManager.getLastReceivedPong() always returns -1
+- [SMACK-604](https://igniterealtime.atlassian.net/browse/SMACK-604) -
+ MUCUser must support multiple status codes
+- [SMACK-620](https://igniterealtime.atlassian.net/browse/SMACK-620) -
+ Smack should use a safe SAX parser, e.g. with entity reference
+ expansion disabled
+- [SMACK-635](https://igniterealtime.atlassian.net/browse/SMACK-635) -
+ Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
+- [SMACK-643](https://igniterealtime.atlassian.net/browse/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](https://igniterealtime.atlassian.net/browse/SMACK-340) -
+ Should make the wait/timeouts on SASL authentication configurable.
+- [SMACK-402](https://igniterealtime.atlassian.net/browse/SMACK-402) -
+ Update obsolete \"Message Delivery Receipts\" support from
+ (JEP\|XEP)-0022 to XEP-0184
+- [SMACK-453](https://igniterealtime.atlassian.net/browse/SMACK-453) -
+ Add support for all primitive types in
+ IntrospectionProvider.decode()
+- [SMACK-521](https://igniterealtime.atlassian.net/browse/SMACK-521) -
+ Clear PacketWriters queue when the connection is shut down
+- [SMACK-532](https://igniterealtime.atlassian.net/browse/SMACK-532) -
+ Evaluate if its possible to guarantee the order of listeners by
+ using a LinkedHashMap
+- [SMACK-566](https://igniterealtime.atlassian.net/browse/SMACK-566) -
+ Create public method that parses Strings/CharSequences to messages,
+ IQs and presence instances
+- [SMACK-587](https://igniterealtime.atlassian.net/browse/SMACK-587) -
+ Subprojects should uses versions when importing the OSGi smack-core
+ components
+- [SMACK-595](https://igniterealtime.atlassian.net/browse/SMACK-595) -
+ Add an API to send a stanza and wait asynchronously for a response
+- [SMACK-599](https://igniterealtime.atlassian.net/browse/SMACK-599) -
+ Provide string messages to all exceptions thrown by Smack
+- [SMACK-600](https://igniterealtime.atlassian.net/browse/SMACK-600) -
+ RoomInfo Class should add the information from the Identity element.
+- [SMACK-608](https://igniterealtime.atlassian.net/browse/SMACK-608) -
+ Add support for XMPP error conditions text
+- [SMACK-622](https://igniterealtime.atlassian.net/browse/SMACK-622) -
+ Add support for \'optional\' in session stream features
+- [SMACK-626](https://igniterealtime.atlassian.net/browse/SMACK-626) -
+ Add support for \'ofrom\' Extended Stanza Addressing type
+- [SMACK-627](https://igniterealtime.atlassian.net/browse/SMACK-627) -
+ Smack should allow null usernames under certain circumstances
+- [SMACK-645](https://igniterealtime.atlassian.net/browse/SMACK-645) -
+ Roster should not leak internal state e.g. presences
+
+### New Feature
+
+- [SMACK-234](https://igniterealtime.atlassian.net/browse/SMACK-234) -
+ Add support for SASL EXTERNAL: PKI (Client SSL Cert) Support
+- [SMACK-333](https://igniterealtime.atlassian.net/browse/SMACK-333) -
+ Implement XEP-0198: Stream Management
+- [SMACK-378](https://igniterealtime.atlassian.net/browse/SMACK-378) -
+ Give access to the socket outside the XMPPconnection
+- [SMACK-581](https://igniterealtime.atlassian.net/browse/SMACK-581) -
+ Add support for \"Result Set Management\" (XEP-59)
+- [SMACK-607](https://igniterealtime.atlassian.net/browse/SMACK-607) -
+ Add support for XEP-0352: Client State Indication
+- [SMACK-612](https://igniterealtime.atlassian.net/browse/SMACK-612) -
+ Add support for XEP-0141: Data Forms Layout
+- [SMACK-621](https://igniterealtime.atlassian.net/browse/SMACK-621) -
+ Add support for XEP-0122: Data Forms Validation
+- [SMACK-623](https://igniterealtime.atlassian.net/browse/SMACK-623) -
+ Add API to retrieve the subscriptions of a PubSub node as owner
+
+### Task
+
+- [SMACK-365](https://igniterealtime.atlassian.net/browse/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](https://igniterealtime.atlassian.net/browse/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](https://igniterealtime.atlassian.net/browse/SMACK-569) -
+ Move Message Event code to legacy subproject
+- [SMACK-578](https://igniterealtime.atlassian.net/browse/SMACK-578) -
+ Remove decorators for \"Legacy Delayed Delivery\" (XEP-91) in favor
+ of Delayed Delivery (XEP-203)
+- [SMACK-579](https://igniterealtime.atlassian.net/browse/SMACK-579) -
+ FileTransferManager and FileTransferNegoiator should use
+ WeakHashMaps and extend Manager
+- [SMACK-582](https://igniterealtime.atlassian.net/browse/SMACK-582) -
+ Change ReceiptReceivedListener.onReceiptReceived parameters
+- [SMACK-637](https://igniterealtime.atlassian.net/browse/SMACK-637) -
+ Move Roster and Chat code to new smack-im subproject
+
+## 4.0.7 -- 2015-02-20
+
+### Bug
+
+- [SMACK-635](https://igniterealtime.atlassian.net/browse/SMACK-635) -
+ Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
+- [SMACK-643](https://igniterealtime.atlassian.net/browse/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
+
+## 4.0.6 -- 2014-11-23
+
+### Bug
+
+- [SMACK-616](https://igniterealtime.atlassian.net/browse/SMACK-616) -
+ Smack should fallback to using host with default port if DNS SRV
+ lookup fails
+- [SMACK-617](https://igniterealtime.atlassian.net/browse/SMACK-617) -
+ Message Digest in EntityCapsManager should be synchronized
+
+## 4.0.5 -- 2014-10-22
+
+### Bug
+
+- [SMACK-609](https://igniterealtime.atlassian.net/browse/SMACK-609) -
+ PingManager.ping(String, long) does not respect timeout
+- [SMACK-613](https://igniterealtime.atlassian.net/browse/SMACK-613) -
+ Parsing exception causes infinite loop if the exception is not
+ thrown
+
+## 4.0.4 -- 2014-09-05
+
+### Bug
+
+- [SMACK-596](https://igniterealtime.atlassian.net/browse/SMACK-596) -
+ Smack should load roster before sending the initial presence
+- [SMACK-598](https://igniterealtime.atlassian.net/browse/SMACK-598) -
+ Smack should allow the empty string as content of message body
+ element
+- [SMACK-601](https://igniterealtime.atlassian.net/browse/SMACK-601) -
+ PubSub ItemProvider does only process the outermost namespace
+ definition when creating PayloadItems
+- [SMACK-602](https://igniterealtime.atlassian.net/browse/SMACK-602) -
+ PacketCollector must handle InterruptException
+- [SMACK-603](https://igniterealtime.atlassian.net/browse/SMACK-603) -
+ XMPPError.Condition.equals() should be null-safe
+
+## 4.0.3 -- 2014-08-16
+
+### Bug
+
+- [SMACK-589](https://igniterealtime.atlassian.net/browse/SMACK-589) -
+ FormField.Option toXML() produces malformed XML
+- [SMACK-592](https://igniterealtime.atlassian.net/browse/SMACK-592) -
+ OfflineMessagesManager.getMessages() does send request before
+ collector is set up and could leak collector
+- [SMACK-594](https://igniterealtime.atlassian.net/browse/SMACK-594) -
+ PrivateData Bookmarks.toXML() returns invalid XML
+
+### Improvement
+
+- [SMACK-539](https://igniterealtime.atlassian.net/browse/SMACK-539) -
+ Verify ConnectionConfiguration parameters
+- [SMACK-588](https://igniterealtime.atlassian.net/browse/SMACK-588) -
+ Typo in org.jivesoftware.smackx.pubsub.ConfigureForm:
+ s/isSubscibe/isSubscribe/
+- [SMACK-593](https://igniterealtime.atlassian.net/browse/SMACK-593) -
+ Smack should prefer full flush over sync flush when using
+ compression
+
+## 4.0.2 -- 2014-07-27
+
+### Improvement
+
+- [SMACK-576](https://igniterealtime.atlassian.net/browse/SMACK-576) -
+ smack-resolver-javax should become a OSGi ServiceComponent
+- [SMACK-586](https://igniterealtime.atlassian.net/browse/SMACK-586) -
+ Extend API to configure a HostnameVerifier
+
+## 4.0.1 -- 2014-07-20
+
+## Sub-task
+
+- [SMACK-346](https://igniterealtime.atlassian.net/browse/SMACK-346) -
+ Bug in return code for rejection handling in FileTransferManager
+
+### Bug
+
+- [SMACK-574](https://igniterealtime.atlassian.net/browse/SMACK-574) -
+ Documentation still refers at some places to Connection
+- [SMACK-575](https://igniterealtime.atlassian.net/browse/SMACK-575) -
+ PingManager schedules pings after pingInterval when it should be use
+ nextPingIn instead
+- [SMACK-577](https://igniterealtime.atlassian.net/browse/SMACK-577) -
+ Bookmarks and FormField toXml() methods do not properly escape XML
+- [SMACK-583](https://igniterealtime.atlassian.net/browse/SMACK-583) -
+ PacketListeners may not be invoked in delivery order
+
+### Improvement
+
+- [SMACK-576](https://igniterealtime.atlassian.net/browse/SMACK-576) -
+ smack-resolver-javax should become a OSGi ServiceComponent
+
+### New Feature
+
+- [SMACK-580](https://igniterealtime.atlassian.net/browse/SMACK-580) -
+ Add support for retrieving a PubSub node\'s affiliations
+
+## 4.0.0 -- 2014-06-08
+
+## Sub-task
+
+- [SMACK-399](https://igniterealtime.atlassian.net/browse/SMACK-399) -
+ Add support for Roster Versioning (was XEP-0237, now in RFC 6121)
+- [SMACK-400](https://igniterealtime.atlassian.net/browse/SMACK-400) -
+ Change xml-not-well-formed to not-well-formed
+- [SMACK-401](https://igniterealtime.atlassian.net/browse/SMACK-401) -
+ Remove \
+- [SMACK-445](https://igniterealtime.atlassian.net/browse/SMACK-445) -
+ XMPPError class is based on deprecated XEP-0086
+
+### Bug
+
+- [SMACK-357](https://igniterealtime.atlassian.net/browse/SMACK-357) -
+ Error in SASL authentication when SASL authzid parameter is null
+- [SMACK-410](https://igniterealtime.atlassian.net/browse/SMACK-410) -
+ Any valid SSL server certificate can be used to perform a
+ man-in-the-middle attack
+- [SMACK-411](https://igniterealtime.atlassian.net/browse/SMACK-411) -
+ ServiceDiscoveryManager identities should be non-static and kept in
+ a Set to allow multiple identities as per XEP-30
+- [SMACK-414](https://igniterealtime.atlassian.net/browse/SMACK-414) -
+ Smack does not announce the support for XEP-54 aka vcard-temp
+- [SMACK-427](https://igniterealtime.atlassian.net/browse/SMACK-427) -
+ Typo in code - StreamInitiation.setSesssionID()
+- [SMACK-467](https://igniterealtime.atlassian.net/browse/SMACK-467) -
+ Don\'t use the default locale for machine-readable output, use
+ Locale.US instead
+- [SMACK-531](https://igniterealtime.atlassian.net/browse/SMACK-531) -
+ Add missing namespace attribute to XHTML-IM body tags
+- [SMACK-533](https://igniterealtime.atlassian.net/browse/SMACK-533) -
+ Smack should prevent IQ response spoofing
+- [SMACK-535](https://igniterealtime.atlassian.net/browse/SMACK-535) -
+ jul.properties should only configure the \'org.igniterealtime\'
+ namespace
+- [SMACK-538](https://igniterealtime.atlassian.net/browse/SMACK-538) -
+ ParseRoster does not check the sender of the roster and for pending
+ roster queries
+- [SMACK-541](https://igniterealtime.atlassian.net/browse/SMACK-541) -
+ XHTMLExtensionProvider relies on incorrect behavior of MXParser,
+ violating the contract of the XMLPullParser interface
+- [SMACK-543](https://igniterealtime.atlassian.net/browse/SMACK-543) -
+ packet.Time is not thread-safe
+- [SMACK-546](https://igniterealtime.atlassian.net/browse/SMACK-546) -
+ PubSub\'s Item needs to escape its XML payload
+- [SMACK-548](https://igniterealtime.atlassian.net/browse/SMACK-548) -
+ PingManager notifies pingFailedListeners multiple times
+- [SMACK-551](https://igniterealtime.atlassian.net/browse/SMACK-551) -
+ ChatManager throws NPE, when Message has no \'from\' attribute
+- [SMACK-554](https://igniterealtime.atlassian.net/browse/SMACK-554) -
+ Memory leak in BookmarkManager
+- [SMACK-555](https://igniterealtime.atlassian.net/browse/SMACK-555) -
+ VCardProvider should consider some elements as optional
+- [SMACK-558](https://igniterealtime.atlassian.net/browse/SMACK-558) -
+ connect() must wait until the stream features have been parsed
+- [SMACK-559](https://igniterealtime.atlassian.net/browse/SMACK-559) -
+ Roster entries without a group are not updated
+- [SMACK-560](https://igniterealtime.atlassian.net/browse/SMACK-560) -
+ Race condition in PacketWriter
+- [SMACK-567](https://igniterealtime.atlassian.net/browse/SMACK-567) -
+ XMPPConnection leaks listenerExecutor ExecutorService
+
+### Improvement
+
+- [SMACK-343](https://igniterealtime.atlassian.net/browse/SMACK-343) -
+ Make Smack jar an OSGi bundle.
+- [SMACK-356](https://igniterealtime.atlassian.net/browse/SMACK-356) -
+ There is no way to reliably end a Chat and have a new one created.
+- [SMACK-454](https://igniterealtime.atlassian.net/browse/SMACK-454) -
+ Follow XEP-0170 recommendation: Compression before Resource Binding
+- [SMACK-459](https://igniterealtime.atlassian.net/browse/SMACK-459) -
+ Add option to configure the default identity in
+ ServiceDiscoveryManager
+- [SMACK-465](https://igniterealtime.atlassian.net/browse/SMACK-465) -
+ Replace custom wrapped Throwable in XMPPException with
+ Exception.cause
+- [SMACK-468](https://igniterealtime.atlassian.net/browse/SMACK-468) -
+ Don\'t throw an IOException in IBBStreams when the stream got closed
+ by the remote
+- [SMACK-536](https://igniterealtime.atlassian.net/browse/SMACK-536) -
+ JUL Loggers should become final
+- [SMACK-537](https://igniterealtime.atlassian.net/browse/SMACK-537) -
+ Move XMPP Ping code to smackx, add keep-alive functionality to
+ PingManager
+- [SMACK-545](https://igniterealtime.atlassian.net/browse/SMACK-545) -
+ Change API to the style mentioned in Smack\'s Code Guidelines
+- [SMACK-547](https://igniterealtime.atlassian.net/browse/SMACK-547) -
+ Consistent behavior for \"from\" attribute on outgoing stanzas
+- [SMACK-556](https://igniterealtime.atlassian.net/browse/SMACK-556) -
+ Make ConnectionConfigration getters public
+- [SMACK-557](https://igniterealtime.atlassian.net/browse/SMACK-557) -
+ Provide a MultiUserChat method to create \*or\* join a room
+- [SMACK-568](https://igniterealtime.atlassian.net/browse/SMACK-568) -
+ Don\'t exclude groupchat messages without body element in
+ MultiUserChat MessageListeners
+
+### New Feature
+
+- [SMACK-53](https://igniterealtime.atlassian.net/browse/SMACK-53) -
+ Add support for XEP-0092: Software Version
+- [SMACK-71](https://igniterealtime.atlassian.net/browse/SMACK-71) -
+ Create new FromFilter that checks for exact matching
+- [SMACK-187](https://igniterealtime.atlassian.net/browse/SMACK-187) -
+ Add HTTP Binding support (BOSH / XEP-0124)
+- [SMACK-265](https://igniterealtime.atlassian.net/browse/SMACK-265) -
+ Move to a newer build process with artifacts published to maven
+ central repo
+- [SMACK-426](https://igniterealtime.atlassian.net/browse/SMACK-426) -
+ Improve XMPPException
+- [SMACK-544](https://igniterealtime.atlassian.net/browse/SMACK-544) -
+ Add support for XEP-0079: Advanced Message Processing
+- [SMACK-552](https://igniterealtime.atlassian.net/browse/SMACK-552) -
+ Add support for \"HTTP over XMPP transport\" aka. XEP-0332
+
+### Task
+
+- [SMACK-371](https://igniterealtime.atlassian.net/browse/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](https://igniterealtime.atlassian.net/browse/SMACK-432) -
+ Code cleanup of deprecated methods
+- [SMACK-446](https://igniterealtime.atlassian.net/browse/SMACK-446) -
+ Remove non-SASL authentication code
+
+## 3.4.1 -- 2014-02-09
+
+### Bug
+
+- [SMACK-540](https://igniterealtime.atlassian.net/browse/SMACK-540) -
+ Memory leak in MultiUserChat
+
+## 3.4.0 -- 2014-02-02
+
+### Bug Fixes
+
+- [SMACK-442](https://igniterealtime.atlassian.net/browse/SMACK-442) -
+ Manager\'s should also handle connectionClosedOnError()
+- [SMACK-443](https://igniterealtime.atlassian.net/browse/SMACK-443) -
+ ReconnectionSuccessful listeners are invoked twice on reconnection
+ if connect() failed before
+- [SMACK-452](https://igniterealtime.atlassian.net/browse/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](https://igniterealtime.atlassian.net/browse/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](https://igniterealtime.atlassian.net/browse/SMACK-462) -
+ Prevent duplicate manager instances by using the manager\'s
+ constructor in the ConnectionCreationListener\'s connectionCreated
+- [SMACK-463](https://igniterealtime.atlassian.net/browse/SMACK-463) -
+ packet listeners silently fail when preceding listener caused
+ exception
+- [SMACK-524](https://igniterealtime.atlassian.net/browse/SMACK-524) -
+ Use correct block-size definition for IBB transfers
+- [SMACK-525](https://igniterealtime.atlassian.net/browse/SMACK-525) -
+ NPE in XMPPConnection.notifyConnectionError
+- [SMACK-529](https://igniterealtime.atlassian.net/browse/SMACK-529) -
+ Add support for XEP-0280 \"Message Carbons\"
+- [SMACK-530](https://igniterealtime.atlassian.net/browse/SMACK-530) -
+ DNSUtilTest requires an internet connection to work, it should be
+ moved to integration tests.
+
+### New Feature
+
+- [SMACK-286](https://igniterealtime.atlassian.net/browse/SMACK-286) -
+ Need to change ProviderManager to support loading smack.providers
+ from alternative locations
+- [SMACK-387](https://igniterealtime.atlassian.net/browse/SMACK-387) -
+ Allow configuration of ChatManager to be able to allow message
+ handling to be customized.
+- [SMACK-403](https://igniterealtime.atlassian.net/browse/SMACK-403) -
+ Add support for XEP-0297 \"Stanza Forwarding\"
+- [SMACK-434](https://igniterealtime.atlassian.net/browse/SMACK-434) -
+ Create a project to contain non production ready implementations of
+ specifications
+
+### Improvement
+
+- [SMACK-343](https://igniterealtime.atlassian.net/browse/SMACK-343) -
+ Make Smack jar an OSGi bundle.
+- [SMACK-381](https://igniterealtime.atlassian.net/browse/SMACK-381) -
+ Separate the configuration for smack extension related classes from
+ the smack jar.
+- [SMACK-444](https://igniterealtime.atlassian.net/browse/SMACK-444) -
+ Allow \'null\' for TruststorePath and TruststorePassword in
+ ServerTrustManager
+- [SMACK-456](https://igniterealtime.atlassian.net/browse/SMACK-456) -
+ Add the causing exception to the XMPPExceptions thrown in
+ XMPPConnection
+- [SMACK-457](https://igniterealtime.atlassian.net/browse/SMACK-457) -
+ Remove unnecessary printStackTrace() in XMPPConnection
+- [SMACK-460](https://igniterealtime.atlassian.net/browse/SMACK-460) -
+ ServiceDiscoveryManager should not use the constructor in
+ connectionCreated()
+- [SMACK-461](https://igniterealtime.atlassian.net/browse/SMACK-461) -
+ Remove incorrect deprecated marker for
+ DiscoverInfo.Identity.setType()
+- [SMACK-464](https://igniterealtime.atlassian.net/browse/SMACK-464) -
+ Make it clear that PacketListener\'s added with
+ XMPPConnection.addPacketListener() are only for received packets
+- [SMACK-534](https://igniterealtime.atlassian.net/browse/SMACK-534) -
+ Convert all System.out and printStackTrace calls to use Java util
+ logging.
+- [SMACK-339](https://igniterealtime.atlassian.net/browse/SMACK-339) -
+ Allow ConnectionListeners to be added before XMPPConnection is
+ connected. Currently throws exception
+- [SMACK-373](https://igniterealtime.atlassian.net/browse/SMACK-373) -
+ Don\'t remove listeners after a disconnect() , keep state of
+ XMPPConnection between disconnect() and connect()/login()
+- [SMACK-434](https://igniterealtime.atlassian.net/browse/SMACK-434) -
+ Create a project to contain non production ready implementations of
+ specifications
+- [SMACK-526](https://igniterealtime.atlassian.net/browse/SMACK-526) -
+ Deprecate all PEP related classes.
+
+## 3.3.1 -- 2013-10-06
+
+### Bug Fixes
+
+- [SMACK-428](https://igniterealtime.atlassian.net/browse/SMACK-428) -
+ RosterEntry overrides equals, but not hashcode.
+- [SMACK-438](https://igniterealtime.atlassian.net/browse/SMACK-438) -
+ Possible NPE in
+ MultiUserChat.InvitationsMonitor.getInvitationsMonitor()
+- [SMACK-441](https://igniterealtime.atlassian.net/browse/SMACK-441) -
+ Memory leak in KeepAliveManager
+- [SMACK-447](https://igniterealtime.atlassian.net/browse/SMACK-447) -
+ Compression is not enabled for Java7ZlibInputOutputStream
+- [SMACK-448](https://igniterealtime.atlassian.net/browse/SMACK-448) -
+ Java7ZlibInputOutputStream does not work. Deflater.DEFAULT_STRATEGY
+ is used as compression level when it should use
+ Deflater.DEFAULT_COMPRESSION
+- [SMACK-450](https://igniterealtime.atlassian.net/browse/SMACK-450) -
+ VCard.load() throws null pointer exception if there is no VCard for
+ the user
+- [SMACK-455](https://igniterealtime.atlassian.net/browse/SMACK-455) -
+ Multiple items doesn\`t not parse correctly in a pubsub message
+
+### New Feature
+
+- [SMACK-425](https://igniterealtime.atlassian.net/browse/SMACK-425) -
+ Collect (parser) Exceptions and unparseable stanzas. Provide a
+ callback method so that the user is notified about them if he wants
+ to
+
+### Improvement
+
+- [SMACK-369](https://igniterealtime.atlassian.net/browse/SMACK-369) -
+ Exceptions during login should get thrown back up to the caller.
+- [SMACK-439](https://igniterealtime.atlassian.net/browse/SMACK-439) -
+ Improve documentation for MultiUserChat.InvitationsListener
+- [SMACK-451](https://igniterealtime.atlassian.net/browse/SMACK-451) -
+ PingManager entry in META-INF/smack.providers is within Ad-Hoc
+ Command section
+- [SMACK-431](https://igniterealtime.atlassian.net/browse/SMACK-431) -
+ Enable Entity Caps as default for new connections and write
+ extensions documentation html page
+- [SMACK-405](https://igniterealtime.atlassian.net/browse/SMACK-405) -
+ Cleanup of redundant code in XMPPConnection.shutdown()
+
+## 3.3.0 -- 2013-05-04
+
+### Bug Fixes
+
+- [SMACK-225](https://igniterealtime.atlassian.net/browse/SMACK-225) -
+ Improper handeling of DNS SRV records
+- [SMACK-238](https://igniterealtime.atlassian.net/browse/SMACK-238) -
+ The vCard avatar type always return jpg
+- [SMACK-270](https://igniterealtime.atlassian.net/browse/SMACK-270) -
+ Fix for a memory leak in MUC with MUC.finalize()
+- [SMACK-278](https://igniterealtime.atlassian.net/browse/SMACK-278) -
+ Deadlock during Smack disconnect
+- [SMACK-342](https://igniterealtime.atlassian.net/browse/SMACK-342) -
+ VCards causes ConcurrentModificationException
+- [SMACK-344](https://igniterealtime.atlassian.net/browse/SMACK-344) -
+ Bug in SASL authentication mechanism when SRV records are being
+ used.
+- [SMACK-351](https://igniterealtime.atlassian.net/browse/SMACK-351) -
+ Rework File Transfer
+- [SMACK-352](https://igniterealtime.atlassian.net/browse/SMACK-352) -
+ Update the licensing headers in various files.
+- [SMACK-355](https://igniterealtime.atlassian.net/browse/SMACK-355) -
+ IO Error if smack cant use port for local proxy
+- [SMACK-371](https://igniterealtime.atlassian.net/browse/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-375](https://igniterealtime.atlassian.net/browse/SMACK-375) -
+ Node strings in the discovery info packets are not escaped as in the
+ other packets
+- [SMACK-382](https://igniterealtime.atlassian.net/browse/SMACK-382) -
+ Prevent memory leak in AdHocCommandManager
+- [SMACK-384](https://igniterealtime.atlassian.net/browse/SMACK-384) -
+ Endless waiting for connection to be established
+- [SMACK-390](https://igniterealtime.atlassian.net/browse/SMACK-390) -
+ Smack login will fail if a bad delay packet is received
+- [SMACK-392](https://igniterealtime.atlassian.net/browse/SMACK-392) -
+ In ant build, compile-test target doesn\'t work.
+- [SMACK-394](https://igniterealtime.atlassian.net/browse/SMACK-394) -
+ Erroneous cast in IBBInputStream\'s read() method
+- [SMACK-395](https://igniterealtime.atlassian.net/browse/SMACK-395) -
+ Socks5BytestreamManager\'s establishConnection() should still try to
+ use the local streamhost proxy if the server doesn\'t provide one
+- [SMACK-404](https://igniterealtime.atlassian.net/browse/SMACK-404) -
+ Smack uses the wrong method to decode Base64 Strings
+- [SMACK-413](https://igniterealtime.atlassian.net/browse/SMACK-413) -
+ VCardProvider incorrectly parses binary value of avatars
+- [SMACK-415](https://igniterealtime.atlassian.net/browse/SMACK-415) -
+ ItemProvider relies on incorrect behavior of MXParser, violating the
+ contract of the XMLPullParser interface
+- [SMACK-417](https://igniterealtime.atlassian.net/browse/SMACK-417) -
+ If both PacketReader and PacketWriter fail at the same time,
+ connectionClosedonError() is called two times
+
+### New Features
+
+- [SMACK-331](https://igniterealtime.atlassian.net/browse/SMACK-331) -
+ Add support for XEP-0184: Message Delivery Receipts
+- [SMACK-345](https://igniterealtime.atlassian.net/browse/SMACK-345) -
+ Inproved detection of last activity
+- [SMACK-361](https://igniterealtime.atlassian.net/browse/SMACK-361) -
+ Add support for XEP-0115 Entity Capabilities
+- [SMACK-376](https://igniterealtime.atlassian.net/browse/SMACK-376) -
+ Setting a custom trust manager to control certificates from outside
+- [SMACK-388](https://igniterealtime.atlassian.net/browse/SMACK-388) -
+ XEP-199 XMPP Ping support
+
+### Improvements
+
+- [SMACK-341](https://igniterealtime.atlassian.net/browse/SMACK-341) -
+ Update the PacketCollector and ConnectionDetachedPacketCollector to
+ use the java concurrent classes.
+- [SMACK-358](https://igniterealtime.atlassian.net/browse/SMACK-358) -
+ Support additional properties for account creation in test cases.
+- [SMACK-363](https://igniterealtime.atlassian.net/browse/SMACK-363) -
+ Code Cleanup
+- [SMACK-377](https://igniterealtime.atlassian.net/browse/SMACK-377) -
+ avoid unnecessary DNS requests in XMPPconnection
+- [SMACK-379](https://igniterealtime.atlassian.net/browse/SMACK-379) -
+ Sessions were removed from the specification but Smack still uses
+ them. Should be updated to reflect the spec changes.
+- [SMACK-385](https://igniterealtime.atlassian.net/browse/SMACK-385) -
+ Reusing KeyStore in order to reduce memory usage
+- [SMACK-389](https://igniterealtime.atlassian.net/browse/SMACK-389) -
+ Add java.util.zip.Deflater(In\|Out)putStream as Java7 API native
+ alternative to JZlib
+- [SMACK-391](https://igniterealtime.atlassian.net/browse/SMACK-391) -
+ Improve date parsing in StringUtils and make
+ DelayInformationProvider use StringUtils for date parsing.
+- [SMACK-412](https://igniterealtime.atlassian.net/browse/SMACK-412) -
+ Replace the whitespace ping with a XEP-0199 ping
+- [SMACK-419](https://igniterealtime.atlassian.net/browse/SMACK-419) -
+ PacketWriter: Only flush the BufferedWriter if the packet queue is
+ empty
+- [SMACK-423](https://igniterealtime.atlassian.net/browse/SMACK-423) -
+ Investigate whether unhandled packets should still parse the child
+ xml into a string as content
+- [SMACK-430](https://igniterealtime.atlassian.net/browse/SMACK-430) -
+ Throw an exception if
+ FileTransferManager.createOutgoingFileTransfer() was used with a
+ bare JID
+
+## 3.2.2 -- 2011-12-23
+
+### Bug Fixes
+
+- [SMACK-263](https://igniterealtime.atlassian.net/browse/SMACK-263) -
+ Set file info in all send\* methods
+- [SMACK-322](https://igniterealtime.atlassian.net/browse/SMACK-322) -
+ NPE in XMPPConnection
+- [SMACK-324](https://igniterealtime.atlassian.net/browse/SMACK-324) -
+ Investigate SASL issue with jabberd2 servers
+- [SMACK-338](https://igniterealtime.atlassian.net/browse/SMACK-338) -
+ IBB filetransfer doesn\'t work as expected
+- [SMACK-346](https://igniterealtime.atlassian.net/browse/SMACK-346) -
+ Bug in return code for rejection handling in FileTransferManager
+- [SMACK-348](https://igniterealtime.atlassian.net/browse/SMACK-348) -
+ Documentation error - broken link
+- [SMACK-349](https://igniterealtime.atlassian.net/browse/SMACK-349) -
+ Smack\'s IBB sends too much data in a packet
+- [SMACK-350](https://igniterealtime.atlassian.net/browse/SMACK-350) -
+ Bytestream is not working in Spark 2.6.3 from XP to W7
+- [SMACK-353](https://igniterealtime.atlassian.net/browse/SMACK-353) -
+ Thread leak in the FaultTolerantNegotiator
+- [SMACK-362](https://igniterealtime.atlassian.net/browse/SMACK-362) -
+ smack throw NoSuchElementException if the muc#roominfo_subject has
+ no values
+
+### Improvements
+
+- [SMACK-343](https://igniterealtime.atlassian.net/browse/SMACK-343) -
+ Make Smack jar an OSGi bundle.
+- [SMACK-354](https://igniterealtime.atlassian.net/browse/SMACK-354) -
+ Provide milliseconds in timestamp colum debugwindow
+
+## 3.2.1 -- 2011-07-04
+
+### Bug Fixes
+
+- [SMACK-129](https://igniterealtime.atlassian.net/browse/SMACK-129) -
+ MultiUserChat will Store Messages in its PacketCollector
+ irregardless of whether or not they are being read
+- [SMACK-230](https://igniterealtime.atlassian.net/browse/SMACK-230) -
+ Disconnect Can Cause Null Pointer Exception
+- [SMACK-273](https://igniterealtime.atlassian.net/browse/SMACK-273) -
+ Bug in RoomListenerMultiplexor.java
+- [SMACK-329](https://igniterealtime.atlassian.net/browse/SMACK-329) -
+ XHTMLText uses improper format for br tag
+- [SMACK-338](https://igniterealtime.atlassian.net/browse/SMACK-338) -
+ IBB filetransfer doesn\'t work as expected
+- [SMACK-324](https://igniterealtime.atlassian.net/browse/SMACK-324) -
+ Investigate SASL issue with jabberd2 servers
+
+## 3.2.0 -- 2011-05-03
+
+### New Features
+
+- [SMACK-272](https://igniterealtime.atlassian.net/browse/SMACK-272) -
+ Add support for pubsub (XEP-0060)
+- [SMACK-296](https://igniterealtime.atlassian.net/browse/SMACK-296) -
+ Add support for XEP-0224: Attention
+- [SMACK-319](https://igniterealtime.atlassian.net/browse/SMACK-319) -
+ Add common interfaces for SOCKS5 Bytestreams and In-Band Bytestreams
+
+### Improvements
+
+- [SMACK-137](https://igniterealtime.atlassian.net/browse/SMACK-137) -
+ File Transfer Settings
+- [SMACK-156](https://igniterealtime.atlassian.net/browse/SMACK-156) -
+ Add the ability to register for roster events before logging in
+- [SMACK-261](https://igniterealtime.atlassian.net/browse/SMACK-261) -
+ Minor Jingle cleanup to better support Jingle in Spark
+- [SMACK-277](https://igniterealtime.atlassian.net/browse/SMACK-277) -
+ Update XMLUnit to the latest version
+- [SMACK-282](https://igniterealtime.atlassian.net/browse/SMACK-282) -
+ Support SASL-related error conditions.
+- [SMACK-283](https://igniterealtime.atlassian.net/browse/SMACK-283) -
+ Investigate why Jingle is connecting to stun.xten.net
+- [SMACK-285](https://igniterealtime.atlassian.net/browse/SMACK-285) -
+ Add support for Nicks
+- [SMACK-289](https://igniterealtime.atlassian.net/browse/SMACK-289) -
+ There is no way of retrieving items from a pubsub node when the user
+ has multiple subscriptions.
+- [SMACK-294](https://igniterealtime.atlassian.net/browse/SMACK-294) -
+ Handle empty roster groups and no goups in the same way
+- [SMACK-295](https://igniterealtime.atlassian.net/browse/SMACK-295) -
+ Fire reconnectionSuccessful event when session is established
+- [SMACK-297](https://igniterealtime.atlassian.net/browse/SMACK-297) -
+ add configuration for local Socks5 proxy
+- [SMACK-298](https://igniterealtime.atlassian.net/browse/SMACK-298) -
+ Respond to all incoming Socks5 bytestream requests
+- [SMACK-299](https://igniterealtime.atlassian.net/browse/SMACK-299) -
+ Improve accepting of Socks5 bytestream requests
+- [SMACK-300](https://igniterealtime.atlassian.net/browse/SMACK-300) -
+ improve local Socks5 proxy implemetation
+- [SMACK-301](https://igniterealtime.atlassian.net/browse/SMACK-301) -
+ support for bytestream packets to query Socks5 proxy for network
+ address
+- [SMACK-302](https://igniterealtime.atlassian.net/browse/SMACK-302) -
+ Improve establishing of Socks5 bytestreams
+- [SMACK-303](https://igniterealtime.atlassian.net/browse/SMACK-303) -
+ integrate of the extracted Socks5 bytestream API in file transfer
+ API
+- [SMACK-304](https://igniterealtime.atlassian.net/browse/SMACK-304) -
+ Extend the IQ API to create empty IQ results and IQ error response
+ packets
+- [SMACK-307](https://igniterealtime.atlassian.net/browse/SMACK-307) -
+ Improve Message Parser Robustness and Message Body I18N
+- [SMACK-309](https://igniterealtime.atlassian.net/browse/SMACK-309) -
+ Fully implement XEP-0047 In-Band Bytestreams
+- [SMACK-310](https://igniterealtime.atlassian.net/browse/SMACK-310) -
+ Add Support for Localized Message Subjects
+
+### Bug Fixes
+
+- [SMACK-163](https://igniterealtime.atlassian.net/browse/SMACK-163) -
+ Fix NPE in RoomInfo when subject has not value
+- [SMACK-207](https://igniterealtime.atlassian.net/browse/SMACK-207) -
+ Parsing of messages may disconnect Smack/Spark
+- [SMACK-225](https://igniterealtime.atlassian.net/browse/SMACK-225) -
+ Improper handeling of DNS SRV records
+- [SMACK-232](https://igniterealtime.atlassian.net/browse/SMACK-232) -
+ Better handling of Roster error
+- [SMACK-243](https://igniterealtime.atlassian.net/browse/SMACK-243) -
+ Packet with wrong date format makes Smack to disconnect
+- [SMACK-264](https://igniterealtime.atlassian.net/browse/SMACK-264) -
+ fix for NPE in SASLMechanism.java
+- [SMACK-269](https://igniterealtime.atlassian.net/browse/SMACK-269) -
+ Smack 3.1.0 creates a new chat for every incoming message
+- [SMACK-271](https://igniterealtime.atlassian.net/browse/SMACK-271) -
+ Deadlock in XMPPConnection while login and parsing stream features
+- [SMACK-275](https://igniterealtime.atlassian.net/browse/SMACK-275) -
+ Patch: Fix for broken SASL DIGEST-MD5 implementation
+- [SMACK-280](https://igniterealtime.atlassian.net/browse/SMACK-280) -
+ The authentification should use the XMPPConnection#sendPacket method
+ and work transparent with packets and packet listeners.
+- [SMACK-288](https://igniterealtime.atlassian.net/browse/SMACK-288) -
+ The parsing of the result for a LeafNode.getItems() call is
+ incorrect. It creates a DefaultPacketExtension instead of an Item
+ for every other item in the result.
+- [SMACK-290](https://igniterealtime.atlassian.net/browse/SMACK-290) -
+ Deadlock while getting Roster before it\'s initialized
+- [SMACK-291](https://igniterealtime.atlassian.net/browse/SMACK-291) -
+ RosterGroup modifications should depend on roster push
+- [SMACK-293](https://igniterealtime.atlassian.net/browse/SMACK-293) -
+ Support optional roster subscription attribute
+- [SMACK-305](https://igniterealtime.atlassian.net/browse/SMACK-305) -
+ RosterEntry#getGroups causing a roster reload
+- [SMACK-308](https://igniterealtime.atlassian.net/browse/SMACK-308) -
+ Multiple errors in pubsub GetItemsRequest
+- [SMACK-312](https://igniterealtime.atlassian.net/browse/SMACK-312) -
+ Only fire RosterListener#entriesUpdated for RosterEntries that
+ changed
+- [SMACK-327](https://igniterealtime.atlassian.net/browse/SMACK-327) -
+ getFeatures() method on DiscoverInfo is improperly set to be package
+ protected instead of public
+- [SMACK-328](https://igniterealtime.atlassian.net/browse/SMACK-328) -
+ Number format exception while parsing dates.
+- [SMACK-332](https://igniterealtime.atlassian.net/browse/SMACK-332) -
+ Smack 3.2.0b2 shows wrong version in Smack Dubugger Window
+- [SMACK-334](https://igniterealtime.atlassian.net/browse/SMACK-334) -
+ Error in form for FileTransferNegotiator
+
+## 3.1.0 -- 2008-11-20
+
+### New Features
+
+- [SMACK-142](https://igniterealtime.atlassian.net/browse/SMACK-142) -
+ Added support for Kerberos/NTLM. **(6 votes)**
+- [SMACK-210](https://igniterealtime.atlassian.net/browse/SMACK-210) -
+ Added support for MD5 SASL. **(1 vote)**
+- [SMACK-256](https://igniterealtime.atlassian.net/browse/SMACK-256) -
+ Added support for new sophisticated TLS mechanisms including
+ SmartCard and Apple\'s KeychainStore.
+- [SMACK-242](https://igniterealtime.atlassian.net/browse/SMACK-242) -
+ Added support for JEP-50: Ad-hoc commands.
+- [SMACK-251](https://igniterealtime.atlassian.net/browse/SMACK-251) -
+ Added support for XEP-0163: Personal Eventing Protocol. **(1 vote)**
+- [SMACK-226](https://igniterealtime.atlassian.net/browse/SMACK-226) -
+ XMLConnection can now be used with an http/socks proxy. **(2
+ votes)**
+- [SMACK-254](https://igniterealtime.atlassian.net/browse/SMACK-254) -
+ Loading the Roster during login is now optional.
+- [SMACK-255](https://igniterealtime.atlassian.net/browse/SMACK-255) -
+ Added ability to set mime type for avatar.
+- [SMACK-235](https://igniterealtime.atlassian.net/browse/SMACK-235) -
+ Improved performance of Roster class.
+- [SMACK-241](https://igniterealtime.atlassian.net/browse/SMACK-241) -
+ Updated Base64 implementation to match Openfire\'s.
+- [SMACK-240](https://igniterealtime.atlassian.net/browse/SMACK-240) -
+ Updated Jingle implementation to newest version.
+- [SMACK-246](https://igniterealtime.atlassian.net/browse/SMACK-246) -
+ Improve Jingle logging using commons-logging
+- [SMACK-244](https://igniterealtime.atlassian.net/browse/SMACK-244) -
+ Updated JSTUN to 0.7.2.
+- [SMACK-259](https://igniterealtime.atlassian.net/browse/SMACK-259) -
+ Updated XPP library to latest version.
+
+### Bug Fixes
+
+- [SMACK-231](https://igniterealtime.atlassian.net/browse/SMACK-231) -
+ IBB Outputstream was not being flushed before it was closed.
+- [SMACK-236](https://igniterealtime.atlassian.net/browse/SMACK-236) -
+ Renamed stanza error \"unexpected-condition\" to
+ \"unexpected-request\".
+- [SMACK-258](https://igniterealtime.atlassian.net/browse/SMACK-258) -
+ Fixed disconnection issue when parsing SASL success that contained a
+ payload.
+- [SMACK-175](https://igniterealtime.atlassian.net/browse/SMACK-175) -
+ Fixed typo in RosterPacket.ItemStatus constant.
+- [SMACK-260](https://igniterealtime.atlassian.net/browse/SMACK-260) -
+ Added handling of error presence packets
+
+## 3.0.3 -- 2007-05-31
+
+### New Features
+
+- [SMACK-99](https://igniterealtime.atlassian.net/browse/SMACK-99) -
+ Added support for multiple message bodies and message body
+ languages.
+- [SMACK-218](https://igniterealtime.atlassian.net/browse/SMACK-218) -
+ Implemented GSSAPI for single-sign on.
+
+### Bug Fixes
+
+- [SMACK-219](https://igniterealtime.atlassian.net/browse/SMACK-219) -
+ The getPresence method was not working correctly with offline
+ presence.
+- [SMACK-224](https://igniterealtime.atlassian.net/browse/SMACK-224) -
+ SASL authenticion was using the XMPP domain instead of the FQDN.
+
+## 3.0.2 -- 2007-05-03
+
+### Bug Fixes
+
+- [SMACK-212](https://igniterealtime.atlassian.net/browse/SMACK-212) -
+ Jingle can\'t establish session if only one side has a relay service
+- [SMACK-213](https://igniterealtime.atlassian.net/browse/SMACK-213) -
+ RTP Bridge Resolver get wrong localhost address in certain
+ situations
+- [SMACK-214](https://igniterealtime.atlassian.net/browse/SMACK-214) -
+ Presences with a negative priority of -1 are not sending the
+ priority to the server
+
+## 3.0.1 -- 2007-04-12
+
+### Bug Fixes
+
+- [SMACK-211](https://igniterealtime.atlassian.net/browse/SMACK-211) -
+ Jingle ICE with relay sometimes closed sessions.
+- Upgraded bundled version of JSTUN.
+
+## 3.0.0 -- 2007-03-31
+
+### Important Changes
+
+- Java 5 is now required.
+- Several API changes are not backwards compatible. In particular,
+ connection handling has been significantly updated, the GroupChat
+ class has been dropped in favor of the standardized MultiUserChat,
+ and the Chat class has an updated API.
+
+### New Features
+
+- [SMACK-74](https://igniterealtime.atlassian.net/browse/SMACK-74) -
+ Added support for unavailable presences with status text. **(4
+ votes)**
+- [SMACK-191](https://igniterealtime.atlassian.net/browse/SMACK-191) -
+ RosterListener API improvements.
+- [SMACK-194](https://igniterealtime.atlassian.net/browse/SMACK-194) -
+ Roster.getPresence(String) now considers mode after priority to
+ determine the presence value to return.
+- [SMACK-195](https://igniterealtime.atlassian.net/browse/SMACK-195) -
+ Added the ability to disconnect with a custom presence value (for
+ offline status).
+- [SMACK-200](https://igniterealtime.atlassian.net/browse/SMACK-200) -
+ Added convenience methods to Presence class.
+- [SMACK-31](https://igniterealtime.atlassian.net/browse/SMACK-31) -
+ Added support for privacy lists. **(4 votes)**
+- [SMACK-94](https://igniterealtime.atlassian.net/browse/SMACK-94) -
+ Added support for last activity of online users. **(1 vote)**
+- [SMACK-121](https://igniterealtime.atlassian.net/browse/SMACK-121) -
+ Added support for stream errors.
+- [SMACK-136](https://igniterealtime.atlassian.net/browse/SMACK-136) -
+ Added support for XEP-0048: bookmark storage.
+- [SMACK-144](https://igniterealtime.atlassian.net/browse/SMACK-144) -
+ Added bookmark manager for central bookmark management.
+- [SMACK-150](https://igniterealtime.atlassian.net/browse/SMACK-150) -
+ Added support for handling node features in disco.
+- [SMACK-167](https://igniterealtime.atlassian.net/browse/SMACK-167) -
+ Added support for XEP-0106: JID Escaping
+- [SMACK-171](https://igniterealtime.atlassian.net/browse/SMACK-171) -
+ The presence of available contacts is now changed to offline when
+ the connection is closed.
+- [SMACK-172](https://igniterealtime.atlassian.net/browse/SMACK-172) -
+ Added support for re-connection when the connection is abruptly
+ closed.
+- [SMACK-182](https://igniterealtime.atlassian.net/browse/SMACK-182) -
+ ProviderManager is now pluggable (for Eclipse ECF).
+- [SMACK-185](https://igniterealtime.atlassian.net/browse/SMACK-185) -
+ Added the workgroup API to Smack.
+- [SMACK-206](https://igniterealtime.atlassian.net/browse/SMACK-206) -
+ Added the option to specify the username to use for the automated
+ test cases.
+- [SMACK-208](https://igniterealtime.atlassian.net/browse/SMACK-208) -
+ Added a max queue size for outgoing packets to prevent memory issues
+ during extreme load.
+- [SMACK-209](https://igniterealtime.atlassian.net/browse/SMACK-209) -
+ Initial Jingle support implemented.
+
+### Bug Fixes
+
+- [SMACK-6](https://igniterealtime.atlassian.net/browse/SMACK-6) -
+ Don\'t force use of collectors in Chat class.
+- [SMACK-10](https://igniterealtime.atlassian.net/browse/SMACK-10) -
+ Flush pending packets before closing the connection. **(4 votes)**
+- [SMACK-51](https://igniterealtime.atlassian.net/browse/SMACK-51) -
+ Use unique Thread names among connections.
+- [SMACK-54](https://igniterealtime.atlassian.net/browse/SMACK-54) -
+ Add #equals and #hashCode to Occupant.
+- [SMACK-86](https://igniterealtime.atlassian.net/browse/SMACK-86) -
+ Made presence checks case in-sensitive.
+- [SMACK-93](https://igniterealtime.atlassian.net/browse/SMACK-93) -
+ XHTML provider wasn\'t handling some tags correctly.
+- [SMACK-138](https://igniterealtime.atlassian.net/browse/SMACK-138) -
+ Added caching to file transfer negotiation operations.
+- [SMACK-143](https://igniterealtime.atlassian.net/browse/SMACK-143) -
+ Updated XMPPError to be compliant with RFC3920.
+- [SMACK-145](https://igniterealtime.atlassian.net/browse/SMACK-145) -
+ XHTML parsing could fail in some cases.
+- [SMACK-146](https://igniterealtime.atlassian.net/browse/SMACK-146) -
+ DNS lookups were failing with some DNS servers.
+- [SMACK-147](https://igniterealtime.atlassian.net/browse/SMACK-147) -
+ Removed invisibility presence mode.
+- [SMACK-148](https://igniterealtime.atlassian.net/browse/SMACK-148) -
+ Socks 5 listening thread was not cleaning up correctly. **(2
+ votes)**
+- [SMACK-149](https://igniterealtime.atlassian.net/browse/SMACK-149) -
+ Fixed possible memory leaking in PacketReader.
+- [SMACK-151](https://igniterealtime.atlassian.net/browse/SMACK-151) -
+ Now use getBytes(\"UTF-8\") instead of getBytes().
+- [SMACK-152](https://igniterealtime.atlassian.net/browse/SMACK-152) -
+ The FN field is duplicated when loading vCards from the server.
+- [SMACK-153](https://igniterealtime.atlassian.net/browse/SMACK-153) -
+ Optimized performance by replacing StringBuffer with StringBuilder.
+- [SMACK-154](https://igniterealtime.atlassian.net/browse/SMACK-154) -
+ Fixed roster test cases that were sometimes failing.
+- [SMACK-155](https://igniterealtime.atlassian.net/browse/SMACK-155) -
+ Optimized MUC performance by reducing number of packet collectors
+ and listeners.
+- [SMACK-158](https://igniterealtime.atlassian.net/browse/SMACK-158) -
+ FileTransfer isDone() method was returning true even when the
+ transfer was refused.
+- [SMACK-159](https://igniterealtime.atlassian.net/browse/SMACK-159) -
+ Filenames were not escaped for file transfers.
+- [SMACK-160](https://igniterealtime.atlassian.net/browse/SMACK-160) -
+ Now use stream:feature to discover registration support.
+- [SMACK-161](https://igniterealtime.atlassian.net/browse/SMACK-161) -
+ Improved connection speed.
+- [SMACK-162](https://igniterealtime.atlassian.net/browse/SMACK-162) -
+ Fixed NPE in SmackConfiguration.
+- [SMACK-163](https://igniterealtime.atlassian.net/browse/SMACK-163) -
+ Fixed NPE in RoomInfo when subject was null.
+- [SMACK-164](https://igniterealtime.atlassian.net/browse/SMACK-164) -
+ Contact name was not being escaped.
+- [SMACK-165](https://igniterealtime.atlassian.net/browse/SMACK-165) -
+ Listeners were not being removed from PacketReader.
+- [SMACK-166](https://igniterealtime.atlassian.net/browse/SMACK-166) -
+ Packet reader thread was freezing when parsing an error text with no
+ description.
+- [SMACK-168](https://igniterealtime.atlassian.net/browse/SMACK-168) -
+ Fixed possible delay in PacketReader when negotiating TLS.
+- [SMACK-173](https://igniterealtime.atlassian.net/browse/SMACK-173) -
+ Renamed ConnectionEstablishedListener to ConnectionCreationListener.
+- [SMACK-176](https://igniterealtime.atlassian.net/browse/SMACK-176) -
+ Fixed incorrect property initialization.
+- [SMACK-177](https://igniterealtime.atlassian.net/browse/SMACK-177) -
+ Removed synchronization from Roster.
+- [SMACK-178](https://igniterealtime.atlassian.net/browse/SMACK-178) -
+ Added NodeInformation#getNodeIdentities() to return identities of
+ hosted nodes
+- [SMACK-181](https://igniterealtime.atlassian.net/browse/SMACK-181) -
+ Improved parsing of certificates to get signed domains.
+- [SMACK-183](https://igniterealtime.atlassian.net/browse/SMACK-183) -
+ Documentation fixes.
+- [SMACK-184](https://igniterealtime.atlassian.net/browse/SMACK-184) -
+ Simplified XMPPConnection constructors.
+- [SMACK-203](https://igniterealtime.atlassian.net/browse/SMACK-203) -
+ NULL thread IDs would cause an error inside of the Chat Manager.
+- [SMACK-205](https://igniterealtime.atlassian.net/browse/SMACK-205) -
+ Fixed PacketReader concurrency problems.
+- [SMACK-188](https://igniterealtime.atlassian.net/browse/SMACK-188) -
+ Resources are now closed after reading the keystore.
+- [SMACK-189](https://igniterealtime.atlassian.net/browse/SMACK-189) -
+ The listener was remaining blocked forever in some cases.
+- [SMACK-190](https://igniterealtime.atlassian.net/browse/SMACK-190) -
+ Exceptions while notifying packet reader listeners was stopping the
+ notification thread.
+- [SMACK-192](https://igniterealtime.atlassian.net/browse/SMACK-192) -
+ Roster.getPresence(String) now forces use of the bare JID.
+- [SMACK-193](https://igniterealtime.atlassian.net/browse/SMACK-193) -
+ New presence packets now default to a null presence mode.
+- [SMACK-196](https://igniterealtime.atlassian.net/browse/SMACK-196) -
+ Now set closed to true at the start of the connection shutdown
+ method and not the end.
+- [SMACK-197](https://igniterealtime.atlassian.net/browse/SMACK-197) -
+ The source build was failing.
+- [SMACK-198](https://igniterealtime.atlassian.net/browse/SMACK-198) -
+ File transfer streams were not being closed properly in some cases.
+- [SMACK-199](https://igniterealtime.atlassian.net/browse/SMACK-199) -
+ MultiUserChat invitation listeners are no longer removed on
+ disconnects.
+- [SMACK-201](https://igniterealtime.atlassian.net/browse/SMACK-201) -
+ Roster no longer exposes that it implements ConnectionListener.
+
+## 2.2.1 -- 2006-06-12
+
+- [SMACK-141](https://igniterealtime.atlassian.net/browse/SMACK-141) -
+ Fixed SSL exception while creating new XMPPConnections. **(1 vote)**
+- [SMACK-127](https://igniterealtime.atlassian.net/browse/SMACK-127) -
+ Fixed incorrect file transfer progress.
+- [SMACK-130](https://igniterealtime.atlassian.net/browse/SMACK-130) -
+ Fixed VCard escaping problem that was crashing connections.
+- [SMACK-134](https://igniterealtime.atlassian.net/browse/SMACK-134) -
+ VCards were not being saved when avatar was the only element.
+- [SMACK-131](https://igniterealtime.atlassian.net/browse/SMACK-131) -
+ Illegal XML characters are now properly escaped in the presence
+ status.
+- [SMACK-133](https://igniterealtime.atlassian.net/browse/SMACK-133) -
+ Illegal XML characters are now properly escaped in groups names.
+- [SMACK-132](https://igniterealtime.atlassian.net/browse/SMACK-132) -
+ Fixed IBB problem triggered when buffersize was increased.
+- [SMACK-135](https://igniterealtime.atlassian.net/browse/SMACK-135) -
+ Moved to new Base64 implementation to fix line break issue in old
+ implementation.
+
+## 2.2.0 -- 2006-03-09
+
+- [SMACK-122](https://igniterealtime.atlassian.net/browse/SMACK-122) -
+ Added support for JEP-96: File Transfer. **(1 vote)**
+- [SMACK-72](https://igniterealtime.atlassian.net/browse/SMACK-72) -
+ Added support for JEP-47: In-Band Bytestreams. **(2 votes)**
+- [SMACK-122](https://igniterealtime.atlassian.net/browse/SMACK-122) -
+ Added support for JEP-65: SOCKS5 Bytestreams. **(1 vote)**
+- [SMACK-112](https://igniterealtime.atlassian.net/browse/SMACK-112) -
+ Added support for JEP-38 Stream Compression.
+- [SMACK-117](https://igniterealtime.atlassian.net/browse/SMACK-117) -
+ Added support for JEP-33: Extended Stanza Addressing.
+- [SMACK-27](https://igniterealtime.atlassian.net/browse/SMACK-27) -
+ Certification validation is now pluggable.
+- [SMACK-118](https://igniterealtime.atlassian.net/browse/SMACK-118) -
+ Added methods to dynamically remove providers.
+- [SMACK-125](https://igniterealtime.atlassian.net/browse/SMACK-125) -
+ Added support for deaf occupant in MUC rooms.
+- [SMACK-109](https://igniterealtime.atlassian.net/browse/SMACK-109) -
+ Optimized client performance. **(1 vote)**
+- [SMACK-113](https://igniterealtime.atlassian.net/browse/SMACK-113) -
+ Added support for choosing if TLS should be used or not.
+- [SMACK-114](https://igniterealtime.atlassian.net/browse/SMACK-114) -
+ Added support for choosing if SASL should be used or not.
+- [SMACK-123](https://igniterealtime.atlassian.net/browse/SMACK-123) -
+ A thread is no longer used for packet writer listeners.
+- [SMACK-110](https://igniterealtime.atlassian.net/browse/SMACK-110) -
+ Resource binding and session establishment are now requested only if
+ the server offered them.
+- [SMACK-111](https://igniterealtime.atlassian.net/browse/SMACK-111) -
+ Fixed concurrency issue with date formatter.
+- [SMACK-116](https://igniterealtime.atlassian.net/browse/SMACK-116) -
+ Fixed vCard issues.
+- [SMACK-119](https://igniterealtime.atlassian.net/browse/SMACK-119) -
+ Fixed AccessControlException when using vCard from an applet.
+- [SMACK-120](https://igniterealtime.atlassian.net/browse/SMACK-120) -
+ Listener thread was not being shutdown properly.
+- [SMACK-124](https://igniterealtime.atlassian.net/browse/SMACK-124) -
+ Parsing resource binding packets was requiring smackx.jar file to be
+ in the classpath.
+- [SMACK-97](https://igniterealtime.atlassian.net/browse/SMACK-97) -
+ Fixed functional test failures in PresencePriorityTest and
+ RosterTest.
diff --git a/resources/releasedocs/changelog.html b/resources/releasedocs/changelog.html
deleted file mode 100644
index 92b5b2ae9..000000000
--- a/resources/releasedocs/changelog.html
+++ /dev/null
@@ -1,1675 +0,0 @@
-
-
-
-
- Smack Changelog
-
-
-
-
-
-
-
-
-
-
-
-
4.4.4 -- 2021-11-01
-
-
Bug
-
-
-- [SMACK-916] - XMPPErrorException.stanza is missing a getter method
-
-- [SMACK-915] - Smack does not process MUC destroy message if they contain 'status'
-
-- [SMACK-914] - MultiUserChat may be become unjoinable due to a race condition
-
-- [SMACK-913] - MultiUserChat.serviceSupportsStableIds\(\) may throws a NullPointerException
-
-- [SMACK-912] - Smack does not start the local SOCKS5 proxy automatically
-
-- [SMACK-910] - FormNode and FormNodeProvide should handle non-existent DataForm
-
-- [SMACK-909] - Must use the raw character data of a form field in entity caps hash calculation
-
-
-
-
4.4.3 -- 2021-07-06
-
-
Bug
-
-
-- [SMACK-905] - The class org.jivesoftware.smackx.offline.packet.OfflineMessageInfo has no ELEMENT, NAMESPACE or QNAME member
-
-- [SMACK-907] - Possible NPE in MultipleRecipientManager
-
-
-
-
4.4.2 -- 2021-03-25
-
-
Bug
-
-
-- [SMACK-903] - StaxXmlPullParser.getNamespace() may throws IllegalArgumentException
-
-- [SMACK-904] - XEP-0096 file transfer fails because of a hidden ClastCastException
-
-
-
-
4.4.1 -- 2021-03-03
-
-
Bug
-
-
-- [SMACK-895] - BoBIQ#getIQChildElementBuilder throws NPE when the BoB data does not contain ‘max-age’.
-
-- [SMACK-896] - BoBDataExtension is missing getter for BoBData and ContentId
-
-- [SMACK-897] - DirectoryRosterStore.readEntry() should also catch IllegalArgumentException
-
-- [SMACK-898] - AbstractProvider should also consider TypeVariable
-
-- [SMACK-899] - NullPointerException in EntityCapsManager.addCapsExtension
-
-- [SMACK-900] - NPE in DataForm.Builder.addItem()
-
-- [SMACK-902] - DataFormProvider should retrieve the type of fields from <reported/> elements if possible
-
-
-
-
Improvement
-
-
-- [SMACK-901] - BoBDataExtension.from() should also allow IQs
-
-
-
-
4.4.0 -- 2020-12-06
-
-
Bug
-
-
-- [SMACK-561] - Smack should not reply with multiple stream types after stream initiation is offered
-
-- [SMACK-624] - AdHocCommandManager's session sweeping thread does never stop
-
-- [SMACK-729] - Not all providers from smack-legacy.jar are loaded
-
-- [SMACK-770] - There is no Bits of Binary Extension Element provider registered
-
-- [SMACK-848] - Make MultiUserChat.leave() wait for response
-
-- [SMACK-874] - PacketParserUtilsTest#invalidXMLInMessageBody() fails on non-english machines
-
-- [SMACK-881] - Deadlock between reader and writer if Stream Mangement unacked stanza queue is full
-
-- [SMACK-888] - MUC roomDestroyed() callback is not invoked
-
-
-
-
New Feature
-
-
-- [SMACK-257] - Add support for XEP-0118: User Tune
-
-- [SMACK-636] - Add support for XEP-0319: Last User Interaction in Presence
-
-- [SMACK-743] - Add support for XEP-0384: OMEMO Encryption
-
-- [SMACK-801] - Update Smack to Java 8
-
-- [SMACK-824] - Add support for XEP-0221: Data Forms Media Element
-
-- [SMACK-862] - Add support for XEP-0418: DNS Queries over XMPP (DoX)
-
-- [SMACK-871] - Add support for XEP-0350: Data Forms Geolocation Element
-
-- [SMACK-872] - Add support for XEP-0315: Data Forms XML Element
-
-- [SMACK-878] - Add support for XEP-0328: JID Prep
-
-- [SMACK-884] - Add support for XEP-0422: Message Fastening
-
-- [SMACK-885] - Add support for XEP-0420 Stanza Content Encryption
-
-- [SMACK-889] - Add support for XEP-0428: Fallback Indication
-
-
-
-
Improvement
-
-
-- [SMACK-591] - Replace XPP3 by SmackXmlPullParser (wrapping Stax's XmlStreamReader and XPP3 on Android)
-
-- [SMACK-650] - Enable Java8's javadoc doclint
-
-- [SMACK-651] - Perform sound cross-compilation: Use newer javac's --release feature
-
-- [SMACK-718] - Prevent extremely long reply timeouts from being set
-
-- [SMACK-821] - Make Forwarded a generic type
-
-- [SMACK-822] - Add API for XEP-0313 § 6.2 Advanced configuration via Ad-Hoc commands
-
-- [SMACK-825] - Discourage Stanza.getExtension(String, String) in favor of Stanza.getExtension(Class<E extends ExtensionElement>)
-
-- [SMACK-826] - Add support for XEP-0373:" OpenPGP for XMPP" and XEP-0374: "OpenPGP for XMPP Instant Messaging"
-
-- [SMACK-828] - Add support for XEP-0107: User Mood
-
-- [SMACK-836] - Save a ServiceDiscoveryManager instance in a private field of MultiUserChatManger
-
-- [SMACK-839] - Provider.parse() should not throw a generic Exception, but instead IOException and XmlPullParserException
-
-- [SMACK-852] - Message thread and subject should be designed and implemented as ExtensionElements
-
-- [SMACK-854] - Rename smack-java7 to smack-java8
-
-- [SMACK-866] - Remove all tabs from the source code and add checkstyle rule that enforces no-tabs
-
-- [SMACK-867] - Extend HttpFileUploadManager by methods with InputStream parameter
-
-- [SMACK-882] - Add support for MUC status code 333
-
-- [SMACK-883] - Add generic MUC callback for "participant left" caused by unavailable presences
-
-- [SMACK-890] - Update Message Archive Management (XEP-0313) support to urn:xmpp:mam:2
-
-- [SMACK-892] - Smack performs unnecessary escaping in XML text
-
-
-
-
Task
-
-
-- [SMACK-750] - Raise Smack's minimum required Android SDK level to 19 (Android 4.4, Kit Kat, 2013-10)
-
-- [SMACK-840] - Remove smack-compression-jzlib, as it is obsolete (Smack uses Java 7 de- and inflate API now)
-
-
-
-
4.3.4 -- 2019-05-27
-
-
Bug
-
-
-- [SMACK-861] - Potential NPE in Roster.getPresencesInternal(BareJid)
-
-- [SMACK-863] - ServiceDiscoveryManger does not use the main identity, causing setIdentity() to have no effect
-
-- [SMACK-864] - Potential Denial of Service (DOS) by remote entities caused by unlimited threads for asynchronous operations
-
-- [SMACK-865] - Some Manager.getInsanceFor() methods are missing the 'synchronized' keyword
-
-- [SMACK-868] - XHTMLText.appendOpenBodyTag() produces invalid XML
-
-- [SMACK-870] - TLS X.509 certificate verification should be performed with the ACE representation of the XMPP service domain when possible
-
-
-
-
Improvement
-
-
-- [SMACK-869] - Exceptions in async tasks should not go uncaught to the call stack to avoid program termination
-
-
-
-
4.3.3 -- 2019-03-14
-
-
Bug
-
-
-- [SMACK-856] - Smack fails under JDK 11 because com.sun.jndi.dns.DnsContextFactory is not inaccessible
-
-
-
-
Improvement
-
-
-- [SMACK-858] - Dependency version specifier of jxmpp and MiniDNS include alpha/beta/... versions of the follow up version when Maven is used
-
-- [SMACK-859] - MultiUserChat enter() should reset the timeout of the collector waiting for the final self presence to prevent timeouts for large MUCs
-
-
-
-
4.3.2 -- 2019-02-22
-
-
Bug
-
-
-- [SMACK-842] - The RFC 3920 xml-not-well-formed error condition should be handled in stream error not a stanza error
-
-- [SMACK-843] - ManManager.pagePrevious() pages into the wrong direction
-
-- [SMACK-844] - Check if bounded unacknowledged stanzas queue is full before adding to it to avoid IllegalStateException
-
-- [SMACK-845] - Ensure that IQ response 'to' address and ID are set correctly
-
-- [SMACK-846] - XMPPTCPConnection does not wait for stream features after authentication if compression is disabled
-
-- [SMACK-848] - Make MultiUserChat.leave() wait for response
-
-- [SMACK-850] - DeliveryReceiptManager should not send receipts with messages of type 'groupchat'
-
-- [SMACK-855] - XMPPTCPConnection sometimes has two writer threads running
-
-
-
-
Improvement
-
-
-- [SMACK-847] - Make TCP socket connection attempt interruptable
-
-- [SMACK-849] - Smack Local SOCKS5 Proxy thread should be marked as daemon thread
-
-
-
-
4.3.1 -- 2018-10-14
-
-
Bug
-
-
-- [SMACK-833] - XMLUtil.prettyFormatXml() throws on some Android devices
-
-
-
-
Improvement
-
-
-- [SMACK-829] - Disconnect BOSH client on shutdown
-
-- [SMACK-838] - FormField.getFirstValue() throws IndexOutOfBoundsException if there are no values
-
-
-
-
4.3.0 -- 2018-08-02
-
-
Bug
-
-
-- [SMACK-759] - PubSubManager.getLeafNode() throws PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but its not a PubSub Node
-
-- [SMACK-814] - NPE when using Node.getAffiliationsAsOwner()
-
-- [SMACK-815] - XEP-0184: DeliveryReceipt requires ID, although the XEP defines it as optional attribute
-
-- [SMACK-818] - EntityCapsManager sends presences with multiple CapsExtension causing disco#info lookup to fail
-
-- [SMACK-819] - ConcurrentModification Exception in MultiUserChatManager.java
-
-- [SMACK-820] - DNSUtil.setDaneProvider() does not set the DANE provider
-
-
-
-
Task
-
-
-- [SMACK-769] - Rename XMPPError to StanzaError
-
-- [SMACK-776] - Remove deprecated reconnection callbacks in ConnectionListener
-
-
-
-
Improvement
-
-
-- [SMACK-761] - Adopt ChatStateManager to new Chat API (chat2)
-
-- [SMACK-812] - Enable ModifierOrder checkstyle check
-
-- [SMACK-816] - SimplePayload should infer the XML element name and namespace
-
-
-
-
4.2.4 -- 2018-04-15
-
-
Bug
-
-
-- [SMACK-804] - ServiceAdministrationManager does not use correct form actions
-
-- [SMACK-805] - ServiceDiscoveryManager.findService() only considers the first service by feature
-
-- [SMACK-813] - Smack uses hostname instead of XMPP service name for SNI
-
-
-
-
New Feature
-
-
-- [SMACK-794] - Add support for XEP-0394: Message Markup
-
-- [SMACK-795] - Add support for XEP-0382: Spoiler messages
-
-- [SMACK-799] - Add support for XEP-0372: References
-
-- [SMACK-800] - Add support for XEP-0392: Consistent Color Generation
-
-
-
-
Improvement
-
-
-- [SMACK-802] - Rename and deprecate: addPacketSendingListener(), removePacketSendingListener(), addPacketInterceptor() and removePacketInterceptor()
-
-- [SMACK-809] - Make Roster's non-roster presence map second-level map bounded
-
-
-
-
4.2.3 -- 2018-02-07
-
-
Bug
-
-
-- [SMACK-788] - NullPointerException if hostAddresses is null
-
-- [SMACK-789] - AffiliationsExtension toXml() produces invalid XML
-
-- [SMACK-790] - Some HTTP File Upload elements are not correctly parsed and serialized
-
-- [SMACK-791] - NumberFormatException in IpAddressUtil.isIPv4LiteralAddress
-
-- [SMACK-796] - SOCKS5 authentication erroneously uses 'user' when it should use 'passwd', causes authentication to fail
-
-
-
-
4.2.2 -- 2017-11-25
-
-
Bug
-
-
-- [SMACK-775] - Create callback interface for ReconnectionManager
-
-- [SMACK-778] - ReconnectionManager.reconnect() can throw NotConnectedException
-
-- [SMACK-779] - smack-android erroneously depends on smack-omemo and smack-omemo-signal
-
-- [SMACK-780] - PushNotificationManager's isSupported logic does query the server, whereas it should query the bare JID
-
-- [SMACK-781] - MiniDnsResolver does not correctly handle the case when NOERROR is returned together with an empty answer section.
-
-- [SMACK-782] - MultiUserChat does not remove the subject listener causing a memory leak
-
-- [SMACK-783] - InvitationRejectionListener fires multiple times
-
-- [SMACK-784] - StringUtils.numbersAndLetters has the numbers twice, resulting in a lower entropy
-
-- [SMACK-785] - OfflineMessageManager.getMessages() does count the pending messages incorrectly, causing an unnecessary delay
-
-- [SMACK-786] - Race condition when resuming a stream
-
-- [SMACK-787] - Presence.getPriority() may return Integer.MIN_VALUE.
-
-
-
-
4.2.1 -- 2017-08-14
-
-
Bug
-
-
-- [SMACK-749] - SCRAM-SHA-1 and SCRAM-SHA-1-PLUS SASL mechanisms have the same priority, causing SASL authentication failures
-
-- [SMACK-755] - DIGEST-MD5 sometimes causes malformed request server response
-
-- [SMACK-756] - IoTIsFriendResponse has invalid name and produces invalid XML
-
-- [SMACK-759] - PubSubManager.getLeafNode() throws PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but its not a PubSub Node
-
-- [SMACK-764] - NPE in hashCode() in Occupant when jid is null
-
-- [SMACK-766] - Smack possibly includes 'ask' attribute in roster items when sending requests
-
-- [SMACK-768] - Smack throws NoResponse timeout when waiting for IQ although there was a response
-
-- [SMACK-771] - XMPPTCPConnection should use KeyManagerFactory.getDefaultAlgorithm() instead of KeyManagerFactory.getInstance("sunX509");
-
-- [SMACK-772] - HostAddress must deal with 'fqdn' being null.
-
-- [SMACK-773] - Allow roster pushes from our full JID for backwards compatibility
-
-- [SMACK-774] - HTTP File Upload's SlotRequest metadata should be attributes not child elements
-
-
-
-
New Feature
-
-
-- [SMACK-746] - Add support for XEP-0380: Explicit Message Encryption
-
-- [SMACK-758] - Add support for XEP-0334: Message Processing Hints
-
-- [SMACK-760] - Smack does not allow custom extension elements in SM's <failed/>
-
-
-
-
Improvement
-
-
-- [SMACK-752] - XEP-0357 Push Notification enable IQ uses wrong form type: Should be 'submit' instead of 'form'
-
-- [SMACK-754] - Allow MUC room subject changes from the MUCs bare JID
-
-- [SMACK-777] - MamManager should use the user's bare JID to check if MAM is supported
-
-
-
-
4.2.0 -- 2017-03-10
-
-
Sub-task
-
-
-- [SMACK-639] - Add support for pre-approved subscription requests (RFC 6121 § 3.4)
-
-
-
-
Bug
-
-
-- [SMACK-306] - loadRosterOnLogin has non-trivial side effect on getRoster
-
-- [SMACK-416] - Refactor PEP to make it use the existing pubsub API.
-
-- [SMACK-674] - PubSub Affiliation extension element is missing 'jid' attribute, and is using wrong element name 'subscription'
-
-- [SMACK-682] - Add support for "XEP-0360: Nonzas (are not Stanzas)"
-
-- [SMACK-683] - Using a Proxy with XMPPTCPConnection failes with "SocketException: Unconnected sockets not implemented"
-
-- [SMACK-691] - Add support for MUCItem's Actor 'nick'
-
-- [SMACK-705] - PubSub's Affiliation.getElementName() returns wrong name
-
-- [SMACK-722] - SASL X-OAUTH2 implementation incorrectly performs Base64 encoding twice
-
-- [SMACK-723] - Support "Caps Optimizations" (XEP-0115 § 8.4)
-
-- [SMACK-724] - Do not re-use the Socket after connect() failed.
-
-- [SMACK-725] - ReconnectionManager should handle AlreadyConnectedException and AlreadyLoggedInException not as failure
-
-- [SMACK-741] - Ad-hoc command 'note' element 'type' attribute should be treated as optional
-
-- [SMACK-745] - Memory leak in MultiUserChat
-
-
-
-
New Feature
-
-
-- [SMACK-366] - Add support for DNSSEC.
-
-- [SMACK-610] - Add support for XEP-0080: User Location
-
-- [SMACK-619] - Add roomDestroyed to MUC UserStatusListener
-
-- [SMACK-625] - Add support for XEP-313: Message Archive Management
-
-- [SMACK-675] - Add support for PubSub affiliation actions as owner
-
-- [SMACK-677] - Add support for SASL 'authzid' (Authorization Identity)
-
-- [SMACK-690] - Add support for DNS-Based Authentication of Named Entities (DANE, RFC 6698)
-
-- [SMACK-731] - Add support for XEP-0191: Blocking Command
-
-- [SMACK-732] - Smack should be able to handle "single equals sign" SASL responses
-
-- [SMACK-740] - Add support for Multi-User Chat Light
-
-- [SMACK-742] - Add support for XEP-0133: Service Administration
-
-- [SMACK-747] - Add support for XEP-0363: HTTP File Upload
-
-
-
-
Task
-
-
-- [SMACK-638] - Call connection creation listeners from within AbstractXMPPConnection's constructor
-
-- [SMACK-644] - Throw exception if account creation or password change is performed over insecure connections
-
-- [SMACK-655] - Enable StreamManagement by default
-
-
-
-
Improvement
-
-
-- [SMACK-372] - Make package protected methods in PEPItem public
-
-- [SMACK-572] - Rejoin MUC rooms after reconnect
-
-- [SMACK-628] - Rework Roster handling with anonymous connections
-
-- [SMACK-629] - Rework how Smack handles anonymous connections
-
-- [SMACK-631] - Improve ParsingExceptionCallback, allow it to be a functional interface
-
-- [SMACK-632] - Make Smack interruptible
-
-- [SMACK-633] - Allow clean and graceful disconnects (stream closing)
-
-- [SMACK-634] - Use jxmpp-jid, add Jid class to replace String's being used as JIDs
-
-- [SMACK-646] - Add support for MUC roomnick rewrite
-
-- [SMACK-647] - Don't automatically call login() on connect() if the connection was authenticated before
-
-- [SMACK-648] - Improve MultiUserChat API
-
-- [SMACK-657] - Rename RosterEntry.getStatus and RosterPacket.ItemStatus to ItemAskStatus
-
-- [SMACK-663] - Roster should be fully loaded when Roster.getInstanceFor(XMPPConnection) is called with a authenticated connection
-
-- [SMACK-665] - Rename 'serviceName' to 'xmppServiceDomain'
-
-- [SMACK-666] - Typo in 'RosterEntries.rosterEntires()', change to 'RosterEntries.rosterEntries()'
-
-- [SMACK-703] - Limit the stored presences of entities not in Roster
-
-- [SMACK-704] - Pass down Message stanza in ChatStateListener
-
-- [SMACK-711] - Improve the logging of TCP connection attempts.
-
-- [SMACK-720] - Improve support for Tor and Hidden Services.
-
-- [SMACK-721] - Report illegal Stream Management states to avoid OOM Exception
-
-- [SMACK-727] - Add partial support for the IoT XEPs (XEP-0323, -0324, -0325, -0347)
-
-- [SMACK-733] - Handle outgoing 'unavailable' Presences in Roster
-
-- [SMACK-736] - Add support for Chat Markers (XEP-0333)
-
-- [SMACK-737] - Add support for Bits of Binary (XEP-0231)
-
-- [SMACK-738] - Add support for Push Notifications (XEP-0357)
-
-
-
-
4.1.9 -- 2016-11-19
-
-
Bug
-
-
-- [SMACK-739] - Smack starts SASL step without TLS in case STARTTLS is stripped even if SecurityMode.Required is used
-
-- [SMACK-735] - Smack sometimes sends invalid SCRAM-SHA1 nonce
-
-
-
-
4.1.8 -- 2016-07-30
-
-
Bug
-
-
-- [SMACK-722] - SASL X-OAUTH2 implementation incorrectly performs Base64 encoding twice
-
-- [SMACK-724] - Do not re-use the Socket after connect() failed.
-
-- [SMACK-725] - ReconnectionManager should handle AlreadyConnectedException and AlreadyLoggedInException not as failure
-
-- [SMACK-726] - 'purge' and 'remove' IQ of XEP-0013 must be of type 'set'
-
-
-
-
4.1.7 -- 2016-04-14
-
-
Bug
-
-
-- [SMACK-712] - XMPPTCPConnection's setEnabledSSL(Protocols|Ciphers) has no effect
-
-- [SMACK-716] - EntityTimeManager.getTime() does not set the recipients JID
-
-- [SMACK-719] - XMPPError should use Locale.US in toUpperCase()
-
-
-
-
Improvement
-
-
-- [SMACK-715] - Add Roster.setRosterLoadedAtLoginDefault(boolean)
-
-
-
-
4.1.6 -- 2016-01-23
-
-
Bug
-
-
-- [SMACK-705] - PubSub's Affiliation.getElementName() returns wrong name
-
-- [SMACK-706] - Smack may sends <bind/> and <session/> twice if Stream Management is used and a previous SM state exists
-
-- [SMACK-707] - Infinite loop of NullPointerExceptions in Socks5Proxy
-
-- [SMACK-708] - DeliveryReceipt(Manager) should ensure that receipts (and requests) have an ID set
-
-- [SMACK-709] - Don't request delivery receipts for messages without a body
-
-- [SMACK-710] - SASL DIGEST-MD5 backslash must be quoted
-
-
-
-
4.1.5 -- 2015-11-22
-
-
Bug
-
-
-- [SMACK-698] - Time creates invalid XML
-
-- [SMACK-700] - Duplicate stanzas in unacknowledgedStanzas queue when stream is resumed
-
-- [SMACK-702] - RejectedExecutionException in AbstractXMPPConnection.processPacket() causes connection Termination
-
-
-
-
4.1.4 -- 2015-09-14
-
-
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
-
-
-
-
4.1.3 -- 2015-07-15
-
-
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
-
-
-
-
4.1.2 -- 2015-06-27
-
-
Bug
-
-
-- [SMACK-664] - Invalid IQ error response to OfferRequestPacket and OfferRevokePacket
-
-- [SMACK-668] - ReconnectionManager's value of 'attempts' is not reset after successful reconnection
-
-- [SMACK-669] - Only add Entity Capabilities extension to available presences
-
-- [SMACK-670] - SASLMechanism.authenticate should treat an empty byte array like 'null' byte array
-
-- [SMACK-672] - Memory leak caused by RosterGroup declaring a strong reference to XMPPConnection
-
-- [SMACK-673] - VCard API does not support all elements
-
-- [SMACK-676] - ConcurrentModificationException in ServerPingWithAlarmManager
-
-- [SMACK-678] - Login hangs if starttls advertised, but security is set to 'disabled' and compression is also advertised
-
-
-
-
Improvement
-
-
-- [SMACK-667] - Request Stream Mangement Acknowledgement after re-sending unack'ed stanzas after stream resumption
-
-- [SMACK-671] - Don't disable Scoks5BytestreamManager on connection termination
-
-
-
-
4.1.1 -- 2015-05-09
-
-
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
-
-
-
-
4.1.0 -- 2015-03-29
-
-
Sub-task
-
-
-
-
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
-
-
-
-
4.0.7 -- 2015-02-20
-
-
Bug
-
-
-- [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
-
-
-
-
4.0.6 -- 2014-11-23
-
-
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
-
-
-
-
4.0.5 -- 2014-10-22
-
-
Bug
-
-
-- [SMACK-609] - PingManager.ping(String, long) does not respect timeout
-
-- [SMACK-613] - Parsing exception causes infinite loop if the exception is not thrown
-
-
-
-
4.0.4 -- 2014-09-05
-
-
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
-
-
-
-
4.0.3 -- 2014-08-16
-
-
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
-
-
-
-
4.0.2 -- 2014-07-27
-
-
Improvement
-
-
-- [SMACK-576] - smack-resolver-javax should become a OSGi ServiceComponent
-
-- [SMACK-586] - Extend API to configure a HostnameVerifier
-
-
-
-
4.0.1 -- 2014-07-20
-
-
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
-
-
-
-
4.0.0 -- 2014-06-08
-
-
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 <invalid-id/>
-
-- [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
-
-
-
-
3.4.1 -- Feb 9, 2014
-
-
Bug
-
-- [SMACK-540] - Memory leak in MultiUserChat
-
-
-
-
3.4.0 -- Feb 2, 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 XMPPConnection.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 XMPPConnection is connected. Currently throws exception
- - [SMACK-373] - Don't remove listeners after a disconnect() , keep state of XMPPConnection 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.
-
-
-
3.3.1 -- Oct 6, 2013
-
-
Bug Fixes
-
- - [SMACK-428] - RosterEntry overrides equals, but not hashcode.
- - [SMACK-438] - Possible NPE in MultiUserChat.InvitationsMonitor.getInvitationsMonitor()
- - [SMACK-441] - Memory leak in KeepAliveManager
- - [SMACK-447] - Compression is not enabled for Java7ZlibInputOutputStream
- - [SMACK-448] - Java7ZlibInputOutputStream does not work. Deflater.DEFAULT_STRATEGY is used as compression level when it should use Deflater.DEFAULT_COMPRESSION
- - [SMACK-450] - VCard.load() throws null pointer exception if there is no VCard for the user
- - [SMACK-455] - Multiple items doesn`t not parse correctly in a pubsub message
-
-
-
New Feature
-
- - [SMACK-425] - Collect (parser) Exceptions and unparseable stanzas. Provide a callback method so that the user is notified about them if he wants to
-
-
-
Improvement
-
- - [SMACK-369] - Exceptions during login should get thrown back up to the caller.
- - [SMACK-439] - Improve documentation for MultiUserChat.InvitationsListener
- - [SMACK-451] - PingManager entry in META-INF/smack.providers is within Ad-Hoc Command section
- - [SMACK-431] - Enable Entity Caps as default for new connections and write extensions documentation html page
- - [SMACK-405] - Cleanup of redundant code in XMPPConnection.shutdown()
-
-
-
3.3.0 -- May 4, 2013
-
-
Bug Fixes
-
- - [SMACK-225] - Improper handeling of DNS SRV records
- - [SMACK-238] - The vCard avatar type always return jpg
- - [SMACK-270] - Fix for a memory leak in MUC with MUC.finalize()
- - [SMACK-278] - Deadlock during Smack disconnect
- - [SMACK-342] - VCards causes ConcurrentModificationException
- - [SMACK-344] - Bug in SASL authentication mechanism when SRV records are being used.
- - [SMACK-351] - Rework File Transfer
- - [SMACK-352] - Update the licensing headers in various files.
- - [SMACK-355] - IO Error if smack cant use port for local proxy
- - [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-375] - Node strings in the discovery info packets are not escaped as in the other packets
- - [SMACK-382] - Prevent memory leak in AdHocCommandManager
- - [SMACK-384] - Endless waiting for connection to be established
- - [SMACK-390] - Smack login will fail if a bad delay packet is received
- - [SMACK-392] - In ant build, compile-test target doesn't work.
- - [SMACK-394] - Erroneous cast in IBBInputStream's read() method
- - [SMACK-395] - Socks5BytestreamManager's establishConnection() should still try to use the local streamhost proxy if the server doesn't provide one
- - [SMACK-404] - Smack uses the wrong method to decode Base64 Strings
- - [SMACK-413] - VCardProvider incorrectly parses binary value of avatars
- - [SMACK-415] - ItemProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface
- - [SMACK-417] - If both PacketReader and PacketWriter fail at the same time, connectionClosedonError() is called two times
-
-
-
New Features
-
- - [SMACK-331] - Add support for XEP-0184: Message Delivery Receipts
- - [SMACK-345] - Inproved detection of last activity
- - [SMACK-361] - Add support for XEP-0115 Entity Capabilities
- - [SMACK-376] - Setting a custom trust manager to control certificates from outside
- - [SMACK-388] - XEP-199 XMPP Ping support
-
-
-
Improvements
-
- - [SMACK-341] - Update the PacketCollector and ConnectionDetachedPacketCollector to use the java concurrent classes.
- - [SMACK-358] - Support additional properties for account creation in test cases.
- - [SMACK-363] - Code Cleanup
- - [SMACK-377] - avoid unnecessary DNS requests in XMPPconnection
- - [SMACK-379] - Sessions were removed from the specification but Smack still uses them. Should be updated to reflect the spec changes.
- - [SMACK-385] - Reusing KeyStore in order to reduce memory usage
- - [SMACK-389] - Add java.util.zip.Deflater(In|Out)putStream as Java7 API native alternative to JZlib
- - [SMACK-391] - Improve date parsing in StringUtils and make DelayInformationProvider use StringUtils for date parsing.
- - [SMACK-412] - Replace the whitespace ping with a XEP-0199 ping
- - [SMACK-419] - PacketWriter: Only flush the BufferedWriter if the packet queue is empty
- - [SMACK-423] - Investigate whether unhandled packets should still parse the child xml into a string as content
- - [SMACK-430] - Throw an exception if FileTransferManager.createOutgoingFileTransfer() was used with a bare JID
-
-
-
3.2.2 -- Dec. 23, 2011
-
-
Bug Fixes
-
- - [SMACK-263] - Set file info in all send* methods
- - [SMACK-322] - NPE in XMPPConnection
- - [SMACK-324] - Investigate SASL issue with jabberd2 servers
- - [SMACK-338] - IBB filetransfer doesn't work as expected
- - [SMACK-346] - Bug in return code for rejection handling in FileTransferManager
- - [SMACK-348] - Documentation error - broken link
- - [SMACK-349] - Smack's IBB sends too much data in a packet
- - [SMACK-350] - Bytestream is not working in Spark 2.6.3 from XP to W7
- - [SMACK-353] - Thread leak in the FaultTolerantNegotiator
- - [SMACK-362] - smack throw NoSuchElementException if the muc#roominfo_subject has no values
-
-
-
Improvements
-
- - [SMACK-343] - Make Smack jar an OSGi bundle.
- - [SMACK-354] - Provide milliseconds in timestamp colum debugwindow
-
-
-
3.2.1 -- July 4, 2011
-
Bug Fixes
-
- - [SMACK-129] - MultiUserChat will Store Messages in its PacketCollector irregardless of whether or not they are being read
- - [SMACK-230] - Disconnect Can Cause Null Pointer Exception
- - [SMACK-273] - Bug in RoomListenerMultiplexor.java
- - [SMACK-329] - XHTMLText uses improper format for br tag
- - [SMACK-338] - IBB filetransfer doesn't work as expected
- - [SMACK-324] - Investigate SASL issue with jabberd2 servers
-
-
-
3.2.0 -- May 3, 2011
-
New Features
-
- - [SMACK-272] - Add support for pubsub (XEP-0060)
- - [SMACK-296] - Add support for XEP-0224: Attention
- - [SMACK-319] - Add common interfaces for SOCKS5 Bytestreams and In-Band Bytestreams
-
-
-
Improvements
-
- - [SMACK-137] - File Transfer Settings
- - [SMACK-156] - Add the ability to register for roster events before logging in
- - [SMACK-261] - Minor Jingle cleanup to better support Jingle in Spark
- - [SMACK-277] - Update XMLUnit to the latest version
- - [SMACK-282] - Support SASL-related error conditions.
- - [SMACK-283] - Investigate why Jingle is connecting to stun.xten.net
- - [SMACK-285] - Add support for Nicks
- - [SMACK-289] - There is no way of retrieving items from a pubsub node when the user has multiple subscriptions.
- - [SMACK-294] - Handle empty roster groups and no goups in the same way
- - [SMACK-295] - Fire reconnectionSuccessful event when session is established
- - [SMACK-297] - add configuration for local Socks5 proxy
- - [SMACK-298] - Respond to all incoming Socks5 bytestream requests
- - [SMACK-299] - Improve accepting of Socks5 bytestream requests
- - [SMACK-300] - improve local Socks5 proxy implemetation
- - [SMACK-301] - support for bytestream packets to query Socks5 proxy for network address
- - [SMACK-302] - Improve establishing of Socks5 bytestreams
- - [SMACK-303] - integrate of the extracted Socks5 bytestream API in file transfer API
- - [SMACK-304] - Extend the IQ API to create empty IQ results and IQ error response packets
- - [SMACK-307] - Improve Message Parser Robustness and Message Body I18N
- - [SMACK-309] - Fully implement XEP-0047 In-Band Bytestreams
- - [SMACK-310] - Add Support for Localized Message Subjects
-
-
-
Bug Fixes
-
- - [SMACK-163] - Fix NPE in RoomInfo when subject has not value
- - [SMACK-207] - Parsing of messages may disconnect Smack/Spark
- - [SMACK-225] - Improper handeling of DNS SRV records
- - [SMACK-232] - Better handling of Roster error
- - [SMACK-243] - Packet with wrong date format makes Smack to disconnect
- - [SMACK-264] - fix for NPE in SASLMechanism.java
- - [SMACK-269] - Smack 3.1.0 creates a new chat for every incoming message
- - [SMACK-271] - Deadlock in XMPPConnection while login and parsing stream features
- - [SMACK-275] - Patch: Fix for broken SASL DIGEST-MD5 implementation
- - [SMACK-280] - The authentification should use the XMPPConnection#sendPacket method and work transparent with packets and packet listeners.
- - [SMACK-288] - The parsing of the result for a LeafNode.getItems() call is incorrect. It creates a DefaultPacketExtension instead of an Item for every other item in the result.
- - [SMACK-290] - Deadlock while getting Roster before it's initialized
- - [SMACK-291] - RosterGroup modifications should depend on roster push
- - [SMACK-293] - Support optional roster subscription attribute
- - [SMACK-305] - RosterEntry#getGroups causing a roster reload
- - [SMACK-308] - Multiple errors in pubsub GetItemsRequest
- - [SMACK-312] - Only fire RosterListener#entriesUpdated for RosterEntries that changed
- - [SMACK-327] - getFeatures() method on DiscoverInfo is improperly set to be package protected instead of public
- - [SMACK-328] - Number format exception while parsing dates.
- - [SMACK-332] - Smack 3.2.0b2 shows wrong version in Smack Dubugger Window
- - [SMACK-334] - Error in form for FileTransferNegotiator
-
-
-
3.1.0 -- November 20, 2008
-
-
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
-
-
-
3.0.3 -- May 31, 2007
-
-
New Features
-
- - [SMACK-99] - Added support for multiple message bodies and message body languages.
- - [SMACK-218] - Implemented GSSAPI for single-sign on.
-
-
-
Bug Fixes
-
- - [SMACK-219] - The getPresence method was not working correctly with offline presence.
- - [SMACK-224] - SASL authenticion was using the XMPP domain instead of the FQDN.
-
-
-
3.0.2 -- May 3, 2007
-
-
Bug Fixes
-
- - [SMACK-212] - Jingle can't establish session if only one side has a relay service
- - [SMACK-213] - RTP Bridge Resolver get wrong localhost address in certain situations
- - [SMACK-214] - Presences with a negative priority of -1 are not sending the priority to the server
-
-
-
3.0.1 -- April 12, 2007
-
-
Bug Fixes
-
- - [SMACK-211] - Jingle ICE with relay sometimes closed sessions.
- - Upgraded bundled version of JSTUN.
-
-
-
-
3.0.0 -- March 31, 2007
-
-
Important Changes
-
- - Java 5 is now required.
- - Several API changes are not backwards compatible. In particular, connection handling has
- been significantly updated, the GroupChat class has been dropped in favor of the standardized
- MultiUserChat, and the Chat class has an updated API.
-
-
-
New Features
-
- - [SMACK-74] - Added support for unavailable presences with status text. (4 votes)
- - [SMACK-191] - RosterListener API improvements.
- - [SMACK-194] - Roster.getPresence(String) now considers mode after priority to determine the presence value to return.
- - [SMACK-195] - Added the ability to disconnect with a custom presence value (for offline status).
- - [SMACK-200] - Added convenience methods to Presence class.
- - [SMACK-31] - Added support for privacy lists. (4 votes)
- - [SMACK-94] - Added support for last activity of online users. (1 vote)
- - [SMACK-121] - Added support for stream errors.
- - [SMACK-136] - Added support for XEP-0048: bookmark storage.
- - [SMACK-144] - Added bookmark manager for central bookmark management.
- - [SMACK-150] - Added support for handling node features in disco.
- - [SMACK-167] - Added support for XEP-0106: JID Escaping
- - [SMACK-171] - The presence of available contacts is now changed to offline when the connection is closed.
- - [SMACK-172] - Added support for re-connection when the connection is abruptly closed.
- - [SMACK-182] - ProviderManager is now pluggable (for Eclipse ECF).
- - [SMACK-185] - Added the workgroup API to Smack.
- - [SMACK-206] - Added the option to specify the username to use for the automated test cases.
- - [SMACK-208] - Added a max queue size for outgoing packets to prevent memory issues during extreme load.
- - [SMACK-209] - Initial Jingle support implemented.
-
-
-
Bug Fixes
-
- - [SMACK-6] - Don't force use of collectors in Chat class.
- - [SMACK-10] - Flush pending packets before closing the connection. (4 votes)
- - [SMACK-51] - Use unique Thread names among connections.
- - [SMACK-54] - Add #equals and #hashCode to Occupant.
- - [SMACK-86] - Made presence checks case in-sensitive.
- - [SMACK-93] - XHTML provider wasn't handling some tags correctly.
- - [SMACK-138] - Added caching to file transfer negotiation operations.
- - [SMACK-143] - Updated XMPPError to be compliant with RFC3920.
- - [SMACK-145] - XHTML parsing could fail in some cases.
- - [SMACK-146] - DNS lookups were failing with some DNS servers.
- - [SMACK-147] - Removed invisibility presence mode.
- - [SMACK-148] - Socks 5 listening thread was not cleaning up correctly. (2 votes)
- - [SMACK-149] - Fixed possible memory leaking in PacketReader.
- - [SMACK-151] - Now use getBytes("UTF-8") instead of getBytes().
- - [SMACK-152] - The FN field is duplicated when loading vCards from the server.
- - [SMACK-153] - Optimized performance by replacing StringBuffer with StringBuilder.
- - [SMACK-154] - Fixed roster test cases that were sometimes failing.
- - [SMACK-155] - Optimized MUC performance by reducing number of packet collectors and listeners.
- - [SMACK-158] - FileTransfer isDone() method was returning true even when the transfer was refused.
- - [SMACK-159] - Filenames were not escaped for file transfers.
- - [SMACK-160] - Now use stream:feature to discover registration support.
- - [SMACK-161] - Improved connection speed.
- - [SMACK-162] - Fixed NPE in SmackConfiguration.
- - [SMACK-163] - Fixed NPE in RoomInfo when subject was null.
- - [SMACK-164] - Contact name was not being escaped.
- - [SMACK-165] - Listeners were not being removed from PacketReader.
- - [SMACK-166] - Packet reader thread was freezing when parsing an error text with no description.
- - [SMACK-168] - Fixed possible delay in PacketReader when negotiating TLS.
- - [SMACK-173] - Renamed ConnectionEstablishedListener to ConnectionCreationListener.
- - [SMACK-176] - Fixed incorrect property initialization.
- - [SMACK-177] - Removed synchronization from Roster.
- - [SMACK-178] - Added NodeInformation#getNodeIdentities() to return identities of hosted nodes
- - [SMACK-181] - Improved parsing of certificates to get signed domains.
- - [SMACK-183] - Documentation fixes.
- - [SMACK-184] - Simplified XMPPConnection constructors.
- - [SMACK-203] - NULL thread IDs would cause an error inside of the Chat Manager.
- - [SMACK-205] - Fixed PacketReader concurrency problems.
- - [SMACK-188] - Resources are now closed after reading the keystore.
- - [SMACK-189] - The listener was remaining blocked forever in some cases.
- - [SMACK-190] - Exceptions while notifying packet reader listeners was stopping the notification thread.
- - [SMACK-192] - Roster.getPresence(String) now forces use of the bare JID.
- - [SMACK-193] - New presence packets now default to a null presence mode.
- - [SMACK-196] - Now set closed to true at the start of the connection shutdown method and not the end.
- - [SMACK-197] - The source build was failing.
- - [SMACK-198] - File transfer streams were not being closed properly in some cases.
- - [SMACK-199] - MultiUserChat invitation listeners are no longer removed on disconnects.
- - [SMACK-201] - Roster no longer exposes that it implements ConnectionListener.
-
-
-
-
2.2.1 -- June 12, 2006
-
-
-- [SMACK-141] - Fixed SSL exception while creating new XMPPConnections. (1 vote)
-- [SMACK-127] - Fixed incorrect file transfer progress.
-- [SMACK-130] - Fixed VCard escaping problem that was crashing connections.
-- [SMACK-134] - VCards were not being saved when avatar was the only element.
-- [SMACK-131] - Illegal XML characters are now properly escaped in the presence status.
-- [SMACK-133] - Illegal XML characters are now properly escaped in groups names.
-- [SMACK-132] - Fixed IBB problem triggered when buffersize was increased.
-- [SMACK-135] - Moved to new Base64 implementation to fix line break issue in old implementation.
-
-
-
2.2.0 -- March 9, 2006
-
-- [SMACK-122] - Added support for JEP-96: File Transfer. (1 vote)
-- [SMACK-72] - Added support for JEP-47: In-Band Bytestreams. (2 votes)
-- [SMACK-122] - Added support for JEP-65: SOCKS5 Bytestreams. (1 vote)
-- [SMACK-112] - Added support for JEP-38 Stream Compression.
-- [SMACK-117] - Added support for JEP-33: Extended Stanza Addressing.
-- [SMACK-27] - Certification validation is now pluggable.
-- [SMACK-118] - Added methods to dynamically remove providers.
-- [SMACK-125] - Added support for deaf occupant in MUC rooms.
-
-- [SMACK-109] - Optimized client performance. (1 vote)
-- [SMACK-113] - Added support for choosing if TLS should be used or not.
-- [SMACK-114] - Added support for choosing if SASL should be used or not.
-- [SMACK-123] - A thread is no longer used for packet writer listeners.
-
-- [SMACK-110] - Resource binding and session establishment are now requested only if the server offered them.
-- [SMACK-111] - Fixed concurrency issue with date formatter.
-- [SMACK-116] - Fixed vCard issues.
-- [SMACK-119] - Fixed AccessControlException when using vCard from an applet.
-- [SMACK-120] - Listener thread was not being shutdown properly.
-- [SMACK-124] - Parsing resource binding packets was requiring smackx.jar file to be in the classpath.
-- [SMACK-97] - Fixed functional test failures in PresencePriorityTest and RosterTest.
-
-
-
-
-
-
-
-
-