<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-346'>SMACK-346</a>] - Bug in return code for rejection handling in FileTransferManager
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-574'>SMACK-574</a>] - Documentation still refers at some places to Connection
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-575'>SMACK-575</a>] - PingManager schedules pings after pingInterval when it should be use nextPingIn instead
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-577'>SMACK-577</a>] - Bookmarks and FormField toXml() methods do not properly escape XML
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-583'>SMACK-583</a>] - PacketListeners may not be invoked in delivery order
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-576'>SMACK-576</a>] - smack-resolver-javax should become a OSGi ServiceComponent
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-580'>SMACK-580</a>] - Add support for retrieving a PubSub node's affiliations
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-445'>SMACK-445</a>] - XMPPError class is based on deprecated XEP-0086
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-357'>SMACK-357</a>] - Error in SASL authentication when SASL authzid parameter is null
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-410'>SMACK-410</a>] - Any valid SSL server certificate can be used to perform a man-in-the-middle attack
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-411'>SMACK-411</a>] - ServiceDiscoveryManager identities should be non-static and kept in a Set to allow multiple identities as per XEP-30
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-414'>SMACK-414</a>] - Smack does not announce the support for XEP-54 aka vcard-temp
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-427'>SMACK-427</a>] - Typo in code - StreamInitiation.setSesssionID()
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-467'>SMACK-467</a>] - Don't use the default locale for machine-readable output, use Locale.US instead
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-531'>SMACK-531</a>] - Add missing namespace attribute to XHTML-IM body tags
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-533'>SMACK-533</a>] - Smack should prevent IQ response spoofing
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-535'>SMACK-535</a>] - jul.properties should only configure the 'org.igniterealtime' namespace
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-538'>SMACK-538</a>] - ParseRoster does not check the sender of the roster and for pending roster queries
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-541'>SMACK-541</a>] - XHTMLExtensionProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-543'>SMACK-543</a>] - packet.Time is not thread-safe
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-546'>SMACK-546</a>] - PubSub's Item needs to escape its XML payload
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-548'>SMACK-548</a>] - PingManager notifies pingFailedListeners multiple times
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-551'>SMACK-551</a>] - ChatManager throws NPE, when Message has no 'from' attribute
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-554'>SMACK-554</a>] - Memory leak in BookmarkManager
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-555'>SMACK-555</a>] - VCardProvider should consider some elements as optional
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-558'>SMACK-558</a>] - connect() must wait until the stream features have been parsed
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-559'>SMACK-559</a>] - Roster entries without a group are not updated
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-560'>SMACK-560</a>] - Race condition in PacketWriter
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-356'>SMACK-356</a>] - There is no way to reliably end a Chat and have a new one created.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-454'>SMACK-454</a>] - Follow XEP-0170 recommendation: Compression before Resource Binding
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-459'>SMACK-459</a>] - Add option to configure the default identity in ServiceDiscoveryManager
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-465'>SMACK-465</a>] - Replace custom wrapped Throwable in XMPPException with Exception.cause
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-468'>SMACK-468</a>] - Don't throw an IOException in IBBStreams when the stream got closed by the remote
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-536'>SMACK-536</a>] - JUL Loggers should become final
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-537'>SMACK-537</a>] - Move XMPP Ping code to smackx, add keep-alive functionality to PingManager
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-545'>SMACK-545</a>] - Change API to the style mentioned in Smack's Code Guidelines
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-547'>SMACK-547</a>] - Consistent behavior for "from" attribute on outgoing stanzas
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-556'>SMACK-556</a>] - Make ConnectionConfigration getters public
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-557'>SMACK-557</a>] - Provide a MultiUserChat method to create *or* join a room
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-568'>SMACK-568</a>] - Don't exclude groupchat messages without body element in MultiUserChat MessageListeners
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-53'>SMACK-53</a>] - Add support for XEP-0092: Software Version
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-71'>SMACK-71</a>] - Create new FromFilter that checks for exact matching
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-187'>SMACK-187</a>] - Add HTTP Binding support (BOSH / XEP-0124)
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-265'>SMACK-265</a>] - Move to a newer build process with artifacts published to maven central repo
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-544'>SMACK-544</a>] - Add support for XEP-0079: Advanced Message Processing
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-552'>SMACK-552</a>] - Add support for "HTTP over XMPP transport" aka. XEP-0332
</li>
</ul>
<h2> Task
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-432'>SMACK-432</a>] - Code cleanup of deprecated methods
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-442'>SMACK-442</a>] - Manager's should also handle connectionClosedOnError()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-443'>SMACK-443</a>] - ReconnectionSuccessful listeners are invoked twice on reconnection if connect() failed before</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-452'>SMACK-452</a>] - PacketParserUtils.parseStreamError() is not aware of optional text element and therefore failes to parse stream error's correctly. Prevents ReconnectionManager from reconnecting.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-458'>SMACK-458</a>] - Smack's Managers should not remove itself when the connection is closed or should re-add themselfs if the connection get reconnected</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-462'>SMACK-462</a>] - Prevent duplicate manager instances by using the manager's constructor in the ConnectionCreationListener's connectionCreated</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-524'>SMACK-524</a>] - Use correct block-size definition for IBB transfers</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-525'>SMACK-525</a>] - NPE in XMPPConnection.notifyConnectionError</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-529'>SMACK-529</a>] - Add support for XEP-0280 "Message Carbons"</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-530'>SMACK-530</a>] - DNSUtilTest requires an internet connection to work, it should be moved to integration tests.</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-286'>SMACK-286</a>] - Need to change ProviderManager to support loading smack.providers from alternative locations</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-387'>SMACK-387</a>] - Allow configuration of ChatManager to be able to allow message handling to be customized.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-403'>SMACK-403</a>] - Add support for XEP-0297 "Stanza Forwarding"</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-434'>SMACK-434</a>] - Create a project to contain non production ready implementations of specifications</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-381'>SMACK-381</a>] - Separate the configuration for smack extension related classes from the smack jar.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-444'>SMACK-444</a>] - Allow 'null' for TruststorePath and TruststorePassword in ServerTrustManager</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-456'>SMACK-456</a>] - Add the causing exception to the XMPPExceptions thrown in XMPPConnection</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-457'>SMACK-457</a>] - Remove unnecessary printStackTrace() in XMPPConnection</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-460'>SMACK-460</a>] - ServiceDiscoveryManager should not use the constructor in connectionCreated()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-461'>SMACK-461</a>] - Remove incorrect deprecated marker for DiscoverInfo.Identity.setType()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-464'>SMACK-464</a>] - Make it clear that PacketListener's added with XMPPConnection.addPacketListener() are only for received packets</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-534'>SMACK-534</a>] - Convert all System.out and printStackTrace calls to use Java util logging.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-339'>SMACK-339</a>] - Allow ConnectionListeners to be added before XMPPConnection is connected. Currently throws exception</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-373'>SMACK-373</a>] - Don't remove listeners after a disconnect() , keep state of XMPPConnection between disconnect() and connect()/login()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-434'>SMACK-434</a>] - Create a project to contain non production ready implementations of specifications</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-526'>SMACK-526</a>] - Deprecate all PEP related classes.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-428'>SMACK-428</a>] - RosterEntry overrides equals, but not hashcode.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-438'>SMACK-438</a>] - Possible NPE in MultiUserChat.InvitationsMonitor.getInvitationsMonitor()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-441'>SMACK-441</a>] - Memory leak in KeepAliveManager</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-447'>SMACK-447</a>] - Compression is not enabled for Java7ZlibInputOutputStream</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-448'>SMACK-448</a>] - Java7ZlibInputOutputStream does not work. Deflater.DEFAULT_STRATEGY is used as compression level when it should use Deflater.DEFAULT_COMPRESSION</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-450'>SMACK-450</a>] - VCard.load() throws null pointer exception if there is no VCard for the user</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-455'>SMACK-455</a>] - Multiple items doesn`t not parse correctly in a pubsub message</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-425'>SMACK-425</a>] - Collect (parser) Exceptions and unparseable stanzas. Provide a callback method so that the user is notified about them if he wants to</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-369'>SMACK-369</a>] - Exceptions during login should get thrown back up to the caller.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-439'>SMACK-439</a>] - Improve documentation for MultiUserChat.InvitationsListener</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-451'>SMACK-451</a>] - PingManager entry in META-INF/smack.providers is within Ad-Hoc Command section</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-431'>SMACK-431</a>] - Enable Entity Caps as default for new connections and write extensions documentation html page</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-405'>SMACK-405</a>] - Cleanup of redundant code in XMPPConnection.shutdown()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-344'>SMACK-344</a>] - Bug in SASL authentication mechanism when SRV records are being used.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-352'>SMACK-352</a>] - Update the licensing headers in various files.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-355'>SMACK-355</a>] - IO Error if smack cant use port for local proxy</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-375'>SMACK-375</a>] - Node strings in the discovery info packets are not escaped as in the other packets</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-382'>SMACK-382</a>] - Prevent memory leak in AdHocCommandManager</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-384'>SMACK-384</a>] - Endless waiting for connection to be established</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-390'>SMACK-390</a>] - Smack login will fail if a bad delay packet is received</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-392'>SMACK-392</a>] - In ant build, compile-test target doesn't work.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-394'>SMACK-394</a>] - Erroneous cast in IBBInputStream's read() method</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-395'>SMACK-395</a>] - Socks5BytestreamManager's establishConnection() should still try to use the local streamhost proxy if the server doesn't provide one</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-404'>SMACK-404</a>] - Smack uses the wrong method to decode Base64 Strings</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-413'>SMACK-413</a>] - VCardProvider incorrectly parses binary value of avatars</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-415'>SMACK-415</a>] - ItemProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-417'>SMACK-417</a>] - If both PacketReader and PacketWriter fail at the same time, connectionClosedonError() is called two times</li>
</ul>
<h2>New Features</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-331'>SMACK-331</a>] - Add support for XEP-0184: Message Delivery Receipts</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-345'>SMACK-345</a>] - Inproved detection of last activity</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-361'>SMACK-361</a>] - Add support for XEP-0115 Entity Capabilities</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-376'>SMACK-376</a>] - Setting a custom trust manager to control certificates from outside</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-341'>SMACK-341</a>] - Update the PacketCollector and ConnectionDetachedPacketCollector to use the java concurrent classes.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-358'>SMACK-358</a>] - Support additional properties for account creation in test cases.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-377'>SMACK-377</a>] - avoid unnecessary DNS requests in XMPPconnection</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-379'>SMACK-379</a>] - Sessions were removed from the specification but Smack still uses them. Should be updated to reflect the spec changes.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-385'>SMACK-385</a>] - Reusing KeyStore in order to reduce memory usage</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-389'>SMACK-389</a>] - Add java.util.zip.Deflater(In|Out)putStream as Java7 API native alternative to JZlib </li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-391'>SMACK-391</a>] - Improve date parsing in StringUtils and make DelayInformationProvider use StringUtils for date parsing.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-412'>SMACK-412</a>] - Replace the whitespace ping with a XEP-0199 ping</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-419'>SMACK-419</a>] - PacketWriter: Only flush the BufferedWriter if the packet queue is empty</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-423'>SMACK-423</a>] - Investigate whether unhandled packets should still parse the child xml into a string as content</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-430'>SMACK-430</a>] - Throw an exception if FileTransferManager.createOutgoingFileTransfer() was used with a bare JID</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-349'>SMACK-349</a>] - Smack's IBB sends too much data in a packet</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-350'>SMACK-350</a>] - Bytestream is not working in Spark 2.6.3 from XP to W7</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-353'>SMACK-353</a>] - Thread leak in the FaultTolerantNegotiator</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-362'>SMACK-362</a>] - smack throw NoSuchElementException if the muc#roominfo_subject has no values</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-129'>SMACK-129</a>] - MultiUserChat will Store Messages in its PacketCollector irregardless of whether or not they are being read</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-230'>SMACK-230</a>] - Disconnect Can Cause Null Pointer Exception</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-273'>SMACK-273</a>] - Bug in RoomListenerMultiplexor.java</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-329'>SMACK-329</a>] - XHTMLText uses improper format for br tag</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-338'>SMACK-338</a>] - IBB filetransfer doesn't work as expected</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-324'>SMACK-324</a>] - Investigate SASL issue with jabberd2 servers</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-272'>SMACK-272</a>] - Add support for pubsub (XEP-0060)</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-296'>SMACK-296</a>] - Add support for XEP-0224: Attention</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-319'>SMACK-319</a>] - Add common interfaces for SOCKS5 Bytestreams and In-Band Bytestreams</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-285'>SMACK-285</a>] - Add support for Nicks</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-289'>SMACK-289</a>] - There is no way of retrieving items from a pubsub node when the user has multiple subscriptions.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-294'>SMACK-294</a>] - Handle empty roster groups and no goups in the same way</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-295'>SMACK-295</a>] - Fire reconnectionSuccessful event when session is established</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-297'>SMACK-297</a>] - add configuration for local Socks5 proxy</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-298'>SMACK-298</a>] - Respond to all incoming Socks5 bytestream requests</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-299'>SMACK-299</a>] - Improve accepting of Socks5 bytestream requests</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-300'>SMACK-300</a>] - improve local Socks5 proxy implemetation</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-301'>SMACK-301</a>] - support for bytestream packets to query Socks5 proxy for network address</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-302'>SMACK-302</a>] - Improve establishing of Socks5 bytestreams</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-303'>SMACK-303</a>] - integrate of the extracted Socks5 bytestream API in file transfer API</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-304'>SMACK-304</a>] - Extend the IQ API to create empty IQ results and IQ error response packets</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-307'>SMACK-307</a>] - Improve Message Parser Robustness and Message Body I18N</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-271'>SMACK-271</a>] - Deadlock in XMPPConnection while login and parsing stream features</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-275'>SMACK-275</a>] - Patch: Fix for broken SASL DIGEST-MD5 implementation</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-280'>SMACK-280</a>] - The authentification should use the XMPPConnection#sendPacket method and work transparent with packets and packet listeners.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-288'>SMACK-288</a>] - 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.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-290'>SMACK-290</a>] - Deadlock while getting Roster before it's initialized</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-291'>SMACK-291</a>] - RosterGroup modifications should depend on roster push</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-293'>SMACK-293</a>] - Support optional roster subscription attribute</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-305'>SMACK-305</a>] - RosterEntry#getGroups causing a roster reload</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-308'>SMACK-308</a>] - Multiple errors in pubsub GetItemsRequest</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-312'>SMACK-312</a>] - Only fire RosterListener#entriesUpdated for RosterEntries that changed</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-327'>SMACK-327</a>] - getFeatures() method on DiscoverInfo is improperly set to be package protected instead of public</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-142'>SMACK-142</a>] - Added support for Kerberos/NTLM. <b>(6 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-210'>SMACK-210</a>] - Added support for MD5 SASL. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-256'>SMACK-256</a>] - Added support for new sophisticated TLS mechanisms including SmartCard and Apple's KeychainStore.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-242'>SMACK-242</a>] - Added support for JEP-50: Ad-hoc commands.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-251'>SMACK-251</a>] - Added support for XEP-0163: Personal Eventing Protocol. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-226'>SMACK-226</a>] - XMLConnection can now be used with an http/socks proxy. <b>(2 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-254'>SMACK-254</a>] - Loading the Roster during login is now optional.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-255'>SMACK-255</a>] - Added ability to set mime type for avatar.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-235'>SMACK-235</a>] - Improved performance of Roster class.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-241'>SMACK-241</a>] - Updated Base64 implementation to match Openfire's.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-240'>SMACK-240</a>] - Updated Jingle implementation to newest version.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-246'>SMACK-246</a>] - Improve Jingle logging using commons-logging</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-244'>SMACK-244</a>] - Updated JSTUN to 0.7.2.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-259'>SMACK-259</a>] - Updated XPP library to latest version.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-231'>SMACK-231</a>] - IBB Outputstream was not being flushed before it was closed.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-236'>SMACK-236</a>] - Renamed stanza error "unexpected-condition" to "unexpected-request".</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-258'>SMACK-258</a>] - Fixed disconnection issue when parsing SASL success that contained a payload.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-175'>SMACK-175</a>] - Fixed typo in RosterPacket.ItemStatus constant.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-99'>SMACK-99</a>] - Added support for multiple message bodies and message body languages.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-218'>SMACK-218</a>] - Implemented GSSAPI for single-sign on.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-219'>SMACK-219</a>] - The getPresence method was not working correctly with offline presence.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-224'>SMACK-224</a>] - SASL authenticion was using the XMPP domain instead of the FQDN.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-212'>SMACK-212</a>] - Jingle can't establish session if only one side has a relay service</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-213'>SMACK-213</a>] - RTP Bridge Resolver get wrong localhost address in certain situations</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-214'>SMACK-214</a>] - Presences with a negative priority of -1 are not sending the priority to the server</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-74'>SMACK-74</a>] - Added support for unavailable presences with status text. <b>(4 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-191'>SMACK-191</a>] - RosterListener API improvements.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-194'>SMACK-194</a>] - Roster.getPresence(String) now considers mode after priority to determine the presence value to return.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-195'>SMACK-195</a>] - Added the ability to disconnect with a custom presence value (for offline status).</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-200'>SMACK-200</a>] - Added convenience methods to Presence class.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-31'>SMACK-31</a>] - Added support for privacy lists. <b>(4 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-94'>SMACK-94</a>] - Added support for last activity of online users. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-121'>SMACK-121</a>] - Added support for stream errors.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-136'>SMACK-136</a>] - Added support for XEP-0048: bookmark storage.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-144'>SMACK-144</a>] - Added bookmark manager for central bookmark management.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-150'>SMACK-150</a>] - Added support for handling node features in disco.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-167'>SMACK-167</a>] - Added support for XEP-0106: JID Escaping</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-171'>SMACK-171</a>] - The presence of available contacts is now changed to offline when the connection is closed.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-172'>SMACK-172</a>] - Added support for re-connection when the connection is abruptly closed.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-182'>SMACK-182</a>] - ProviderManager is now pluggable (for Eclipse ECF).</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-185'>SMACK-185</a>] - Added the workgroup API to Smack.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-206'>SMACK-206</a>] - Added the option to specify the username to use for the automated test cases.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-208'>SMACK-208</a>] - Added a max queue size for outgoing packets to prevent memory issues during extreme load.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-209'>SMACK-209</a>] - Initial Jingle support implemented.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-148'>SMACK-148</a>] - Socks 5 listening thread was not cleaning up correctly. <b>(2 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-149'>SMACK-149</a>] - Fixed possible memory leaking in PacketReader.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-151'>SMACK-151</a>] - Now use getBytes("UTF-8") instead of getBytes().</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-152'>SMACK-152</a>] - The FN field is duplicated when loading vCards from the server.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-153'>SMACK-153</a>] - Optimized performance by replacing StringBuffer with StringBuilder.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-154'>SMACK-154</a>] - Fixed roster test cases that were sometimes failing.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-155'>SMACK-155</a>] - Optimized MUC performance by reducing number of packet collectors and listeners.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-158'>SMACK-158</a>] - FileTransfer isDone() method was returning true even when the transfer was refused.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-159'>SMACK-159</a>] - Filenames were not escaped for file transfers.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-160'>SMACK-160</a>] - Now use stream:feature to discover registration support.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-162'>SMACK-162</a>] - Fixed NPE in SmackConfiguration.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-163'>SMACK-163</a>] - Fixed NPE in RoomInfo when subject was null.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-164'>SMACK-164</a>] - Contact name was not being escaped.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-165'>SMACK-165</a>] - Listeners were not being removed from PacketReader.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-166'>SMACK-166</a>] - Packet reader thread was freezing when parsing an error text with no description.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-168'>SMACK-168</a>] - Fixed possible delay in PacketReader when negotiating TLS.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-173'>SMACK-173</a>] - Renamed ConnectionEstablishedListener to ConnectionCreationListener.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-177'>SMACK-177</a>] - Removed synchronization from Roster.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-178'>SMACK-178</a>] - Added NodeInformation#getNodeIdentities() to return identities of hosted nodes</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-181'>SMACK-181</a>] - Improved parsing of certificates to get signed domains.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-203'>SMACK-203</a>] - NULL thread IDs would cause an error inside of the Chat Manager.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-188'>SMACK-188</a>] - Resources are now closed after reading the keystore.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-189'>SMACK-189</a>] - The listener was remaining blocked forever in some cases.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-190'>SMACK-190</a>] - Exceptions while notifying packet reader listeners was stopping the notification thread.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-192'>SMACK-192</a>] - Roster.getPresence(String) now forces use of the bare JID.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-193'>SMACK-193</a>] - New presence packets now default to a null presence mode.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-196'>SMACK-196</a>] - Now set closed to true at the start of the connection shutdown method and not the end.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-197'>SMACK-197</a>] - The source build was failing.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-198'>SMACK-198</a>] - File transfer streams were not being closed properly in some cases.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-199'>SMACK-199</a>] - MultiUserChat invitation listeners are no longer removed on disconnects.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-201'>SMACK-201</a>] - Roster no longer exposes that it implements ConnectionListener.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-141'>SMACK-141</a>] - Fixed SSL exception while creating new XMPPConnections. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-127'>SMACK-127</a>] - Fixed incorrect file transfer progress.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-130'>SMACK-130</a>] - Fixed VCard escaping problem that was crashing connections.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-134'>SMACK-134</a>] - VCards were not being saved when avatar was the only element.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-131'>SMACK-131</a>] - Illegal XML characters are now properly escaped in the presence status.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-133'>SMACK-133</a>] - Illegal XML characters are now properly escaped in groups names.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-132'>SMACK-132</a>] - Fixed IBB problem triggered when buffersize was increased.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-135'>SMACK-135</a>] - Moved to new Base64 implementation to fix line break issue in old implementation.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-122'>SMACK-122</a>] - Added support for JEP-96: File Transfer. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-72'>SMACK-72</a>] - Added support for JEP-47: In-Band Bytestreams. <b>(2 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-122'>SMACK-122</a>] - Added support for JEP-65: SOCKS5 Bytestreams. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-112'>SMACK-112</a>] - Added support for JEP-38 Stream Compression.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-117'>SMACK-117</a>] - Added support for JEP-33: Extended Stanza Addressing.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-27'>SMACK-27</a>] - Certification validation is now pluggable.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-118'>SMACK-118</a>] - Added methods to dynamically remove providers.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-125'>SMACK-125</a>] - Added support for deaf occupant in MUC rooms.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-110'>SMACK-110</a>] - Resource binding and session establishment are now requested only if the server offered them.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-111'>SMACK-111</a>] - Fixed concurrency issue with date formatter.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-119'>SMACK-119</a>] - Fixed AccessControlException when using vCard from an applet.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-120'>SMACK-120</a>] - Listener thread was not being shutdown properly.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-124'>SMACK-124</a>] - Parsing resource binding packets was requiring smackx.jar file to be in the classpath.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-97'>SMACK-97</a>] - Fixed functional test failures in PresencePriorityTest and RosterTest.</li>