mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-12-28 23:27:57 +01:00
1500 lines
96 KiB
HTML
1500 lines
96 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
<html>
|
|
<head>
|
|
<title>Smack Changelog</title>
|
|
<style type="text/css">
|
|
/* global font and body settings */
|
|
body {
|
|
font-size : 100%;
|
|
background-color : #d3d6d9;
|
|
padding: 0;
|
|
margin: 0 0 30px 0;
|
|
}
|
|
body, td, th {
|
|
font-family : arial, helvetica, sans-serif;
|
|
font-size : 10pt;
|
|
}
|
|
pre, tt, code {
|
|
font-family : courier new, monospace;
|
|
font-size : 9pt;
|
|
}
|
|
#pageContainer {
|
|
display: block;
|
|
position: relative;
|
|
clear: both;
|
|
background-color: #fff;
|
|
border: 1px solid #999;
|
|
padding: 40px;
|
|
margin: 30px;
|
|
-moz-border-radius: 6px;
|
|
}
|
|
#pageHeader {
|
|
display: block;
|
|
position: relative;
|
|
height: 80px;
|
|
background-color: #e7eaee;
|
|
border: 1px solid #cccccc;
|
|
border-bottom: none;
|
|
-moz-border-radius: 5px 5px 0 0;
|
|
margin: 10px 0 0 0;
|
|
}
|
|
#pageBody {
|
|
margin: 0 18px 0 20px;
|
|
}
|
|
/* anchors */
|
|
a:link {
|
|
color: #11568c;
|
|
}
|
|
a:visited {
|
|
color: #571c8d;
|
|
}
|
|
a:hover {
|
|
color: #7a1d42;
|
|
text-decoration : underline;
|
|
}
|
|
a:active {
|
|
color: #7a1d42;
|
|
}
|
|
/* page header elements (logo and navigation) */
|
|
.navigation {
|
|
display: block;
|
|
position: relative;
|
|
height: 20px;
|
|
background-color: #335588;
|
|
border: 1px solid #cccccc;
|
|
border-top: none;
|
|
color: #ffffff;
|
|
font-size: 11px;
|
|
line-height: 18px;
|
|
padding: 0 0 0 0;
|
|
margin: 0 0 25px 0;
|
|
overflow: hidden;
|
|
}
|
|
.navigation a {
|
|
margin: 0 20px 0 20px;
|
|
}
|
|
.navigation a:link { color: #ffffff; }
|
|
.navigation a:visited { color: #ffffff; }
|
|
.navigation a:hover { color: #ffffff; }
|
|
.navigation a:active { color: #ffffff; }
|
|
/* headings */
|
|
h1 {
|
|
display: block;
|
|
position: relative;
|
|
font-size : 1.7em;
|
|
font-weight : bold;
|
|
color: #670e15;
|
|
padding: 0;
|
|
margin: 30px 0 0 20px;
|
|
}
|
|
h2 {
|
|
font-size : 1.3em;
|
|
font-weight : bold;
|
|
margin: 40px 0 6px 0;
|
|
padding: 0;
|
|
color: #335588;
|
|
}
|
|
h3 {
|
|
font-size : 1.0em;
|
|
font-weight : bold;
|
|
margin: 25px 0 3px 0;
|
|
padding: 0;
|
|
color: #334466;
|
|
}
|
|
|
|
/* general elements */
|
|
p {
|
|
margin: 0 0 15px 0;
|
|
}
|
|
|
|
ul {
|
|
margin: 5px 0 15px 15px;
|
|
}
|
|
li {
|
|
padding-bottom : 4px;
|
|
}
|
|
tt {
|
|
font-family : courier new, monospace;
|
|
font-weight : bold;
|
|
color : #060;
|
|
}
|
|
hr {
|
|
display: block;
|
|
height: 1px;
|
|
background-color: #999999;
|
|
border: none;
|
|
margin: 40px 0 20px 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div id="pageContainer">
|
|
|
|
<div id="pageHeader">
|
|
<h1>Smack Changelog</h1>
|
|
</div>
|
|
<div class="navigation">
|
|
<a href="README.html">Readme</a>|<a href="changelog.html"><strong>Changelog</strong></a>
|
|
</div>
|
|
|
|
<div id="pageBody">
|
|
|
|
<h2>4.3.4 -- <span style="font-weight: normal;">2019-05-27</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-861'>SMACK-861</a>] - Potential NPE in Roster.getPresencesInternal(BareJid)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-863'>SMACK-863</a>] - ServiceDiscoveryManger does not use the main identity, causing setIdentity() to have no effect
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-864'>SMACK-864</a>] - Potential Denial of Service (DOS) by remote entities caused by unlimited threads for asynchronous operations
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-865'>SMACK-865</a>] - Some Manager.getInsanceFor() methods are missing the 'synchronized' keyword
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-868'>SMACK-868</a>] - XHTMLText.appendOpenBodyTag() produces invalid XML
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-870'>SMACK-870</a>] - TLS X.509 certificate verification should be performed with the ACE representation of the XMPP service domain when possible
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-869'>SMACK-869</a>] - Exceptions in async tasks should not go uncaught to the call stack to avoid program termination
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.3.3 -- <span style="font-weight: normal;">2019-03-14</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-856'>SMACK-856</a>] - Smack fails under JDK 11 because com.sun.jndi.dns.DnsContextFactory is not inaccessible
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-858'>SMACK-858</a>] - Dependency version specifier of jxmpp and MiniDNS include alpha/beta/... versions of the follow up version when Maven is used
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-859'>SMACK-859</a>] - MultiUserChat enter() should reset the timeout of the collector waiting for the final self presence to prevent timeouts for large MUCs
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.3.2 -- <span style="font-weight: normal;">2019-02-22</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-842'>SMACK-842</a>] - The RFC 3920 xml-not-well-formed error condition should be handled in stream error not a stanza error
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-843'>SMACK-843</a>] - ManManager.pagePrevious() pages into the wrong direction
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-844'>SMACK-844</a>] - Check if bounded unacknowledged stanzas queue is full before adding to it to avoid IllegalStateException
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-845'>SMACK-845</a>] - Ensure that IQ response 'to' address and ID are set correctly
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-846'>SMACK-846</a>] - XMPPTCPConnection does not wait for stream features after authentication if compression is disabled
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-848'>SMACK-848</a>] - Make MultiUserChat.leave() wait for response
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-850'>SMACK-850</a>] - DeliveryReceiptManager should not send receipts with messages of type 'groupchat'
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-855'>SMACK-855</a>] - XMPPTCPConnection sometimes has two writer threads running
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-847'>SMACK-847</a>] - Make TCP socket connection attempt interruptable
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-849'>SMACK-849</a>] - Smack Local SOCKS5 Proxy thread should be marked as daemon thread
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.3.1 -- <span style="font-weight: normal;">2018-10-14</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-833'>SMACK-833</a>] - XMLUtil.prettyFormatXml() throws on some Android devices
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-829'>SMACK-829</a>] - Disconnect BOSH client on shutdown
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-838'>SMACK-838</a>] - FormField.getFirstValue() throws IndexOutOfBoundsException if there are no values
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.3.0 -- <span style="font-weight: normal;">2018-08-02</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-759'>SMACK-759</a>] - PubSubManager.getLeafNode() throws PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but its not a PubSub Node
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-814'>SMACK-814</a>] - NPE when using Node.getAffiliationsAsOwner()
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-815'>SMACK-815</a>] - XEP-0184: DeliveryReceipt requires ID, although the XEP defines it as optional attribute
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-818'>SMACK-818</a>] - EntityCapsManager sends presences with multiple CapsExtension causing disco#info lookup to fail
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-819'>SMACK-819</a>] - ConcurrentModification Exception in MultiUserChatManager.java
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-820'>SMACK-820</a>] - DNSUtil.setDaneProvider() does not set the DANE provider
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Task
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-769'>SMACK-769</a>] - Rename XMPPError to StanzaError
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-776'>SMACK-776</a>] - Remove deprecated reconnection callbacks in ConnectionListener
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-761'>SMACK-761</a>] - Adopt ChatStateManager to new Chat API (chat2)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-812'>SMACK-812</a>] - Enable ModifierOrder checkstyle check
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-816'>SMACK-816</a>] - SimplePayload should infer the XML element name and namespace
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.2.4 -- <span style="font-weight: normal;">2018-04-15</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-804'>SMACK-804</a>] - ServiceAdministrationManager does not use correct form actions
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-805'>SMACK-805</a>] - ServiceDiscoveryManager.findService() only considers the first service by feature
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-813'>SMACK-813</a>] - Smack uses hostname instead of XMPP service name for SNI
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> New Feature
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-794'>SMACK-794</a>] - Add support for XEP-0394: Message Markup
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-795'>SMACK-795</a>] - Add support for XEP-0382: Spoiler messages
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-799'>SMACK-799</a>] - Add support for XEP-0372: References
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-800'>SMACK-800</a>] - Add support for XEP-0392: Consistent Color Generation
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-802'>SMACK-802</a>] - Rename and deprecate: addPacketSendingListener(), removePacketSendingListener(), addPacketInterceptor() and removePacketInterceptor()
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-809'>SMACK-809</a>] - Make Roster's non-roster presence map second-level map bounded
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.2.3 -- <span style="font-weight: normal;">2018-02-07</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-788'>SMACK-788</a>] - NullPointerException if hostAddresses is null
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-789'>SMACK-789</a>] - AffiliationsExtension toXml() produces invalid XML
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-790'>SMACK-790</a>] - Some HTTP File Upload elements are not correctly parsed and serialized
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-791'>SMACK-791</a>] - NumberFormatException in IpAddressUtil.isIPv4LiteralAddress
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-796'>SMACK-796</a>] - SOCKS5 authentication erroneously uses 'user' when it should use 'passwd', causes authentication to fail
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.2.2 -- <span style="font-weight: normal;">2017-11-25</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-775'>SMACK-775</a>] - Create callback interface for ReconnectionManager
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-778'>SMACK-778</a>] - ReconnectionManager.reconnect() can throw NotConnectedException
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-779'>SMACK-779</a>] - smack-android erroneously depends on smack-omemo and smack-omemo-signal
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-780'>SMACK-780</a>] - PushNotificationManager's isSupported logic does query the server, whereas it should query the bare JID
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-781'>SMACK-781</a>] - MiniDnsResolver does not correctly handle the case when NOERROR is returned together with an empty answer section.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-782'>SMACK-782</a>] - MultiUserChat does not remove the subject listener causing a memory leak
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-783'>SMACK-783</a>] - InvitationRejectionListener fires multiple times
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-784'>SMACK-784</a>] - StringUtils.numbersAndLetters has the numbers twice, resulting in a lower entropy
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-785'>SMACK-785</a>] - OfflineMessageManager.getMessages() does count the pending messages incorrectly, causing an unnecessary delay
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-786'>SMACK-786</a>] - Race condition when resuming a stream
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-787'>SMACK-787</a>] - Presence.getPriority() may return Integer.MIN_VALUE.
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.2.1 -- <span style="font-weight: normal;">2017-08-14</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-749'>SMACK-749</a>] - SCRAM-SHA-1 and SCRAM-SHA-1-PLUS SASL mechanisms have the same priority, causing SASL authentication failures
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-755'>SMACK-755</a>] - DIGEST-MD5 sometimes causes malformed request server response
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-756'>SMACK-756</a>] - IoTIsFriendResponse has invalid name and produces invalid XML
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-759'>SMACK-759</a>] - PubSubManager.getLeafNode() throws PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but its not a PubSub Node
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-764'>SMACK-764</a>] - NPE in hashCode() in Occupant when jid is null
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-766'>SMACK-766</a>] - Smack possibly includes 'ask' attribute in roster items when sending requests
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-768'>SMACK-768</a>] - Smack throws NoResponse timeout when waiting for IQ although there was a response
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-771'>SMACK-771</a>] - XMPPTCPConnection should use KeyManagerFactory.getDefaultAlgorithm() instead of KeyManagerFactory.getInstance("sunX509");
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-772'>SMACK-772</a>] - HostAddress must deal with 'fqdn' being null.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-773'>SMACK-773</a>] - Allow roster pushes from our full JID for backwards compatibility
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-774'>SMACK-774</a>] - HTTP File Upload's SlotRequest metadata should be attributes not child elements
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> New Feature
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-746'>SMACK-746</a>] - Add support for XEP-0380: Explicit Message Encryption
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-758'>SMACK-758</a>] - Add support for XEP-0334: Message Processing Hints
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-760'>SMACK-760</a>] - Smack does not allow custom extension elements in SM's <failed/>
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-752'>SMACK-752</a>] - XEP-0357 Push Notification enable IQ uses wrong form type: Should be 'submit' instead of 'form'
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-754'>SMACK-754</a>] - Allow MUC room subject changes from the MUCs bare JID
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-777'>SMACK-777</a>] - MamManager should use the user's bare JID to check if MAM is supported
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.2.0 -- <span style="font-weight: normal;">2017-03-10</span></h2>
|
|
|
|
<h2> Sub-task
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-639'>SMACK-639</a>] - Add support for pre-approved subscription requests (RFC 6121 § 3.4)
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-306'>SMACK-306</a>] - loadRosterOnLogin has non-trivial side effect on getRoster
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-416'>SMACK-416</a>] - Refactor PEP to make it use the existing pubsub API.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-674'>SMACK-674</a>] - PubSub Affiliation extension element is missing 'jid' attribute, and is using wrong element name 'subscription'
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-682'>SMACK-682</a>] - Add support for "XEP-0360: Nonzas (are not Stanzas)"
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-683'>SMACK-683</a>] - Using a Proxy with XMPPTCPConnection failes with "SocketException: Unconnected sockets not implemented"
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-691'>SMACK-691</a>] - Add support for MUCItem's Actor 'nick'
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-705'>SMACK-705</a>] - PubSub's Affiliation.getElementName() returns wrong name
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-722'>SMACK-722</a>] - SASL X-OAUTH2 implementation incorrectly performs Base64 encoding twice
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-723'>SMACK-723</a>] - Support "Caps Optimizations" (XEP-0115 § 8.4)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-724'>SMACK-724</a>] - Do not re-use the Socket after connect() failed.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-725'>SMACK-725</a>] - ReconnectionManager should handle AlreadyConnectedException and AlreadyLoggedInException not as failure
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-741'>SMACK-741</a>] - Ad-hoc command 'note' element 'type' attribute should be treated as optional
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-745'>SMACK-745</a>] - Memory leak in MultiUserChat
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> New Feature
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-366'>SMACK-366</a>] - Add support for DNSSEC.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-610'>SMACK-610</a>] - Add support for XEP-0080: User Location
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-619'>SMACK-619</a>] - Add roomDestroyed to MUC UserStatusListener
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-625'>SMACK-625</a>] - Add support for XEP-313: Message Archive Management
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-675'>SMACK-675</a>] - Add support for PubSub affiliation actions as owner
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-677'>SMACK-677</a>] - Add support for SASL 'authzid' (Authorization Identity)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-690'>SMACK-690</a>] - Add support for DNS-Based Authentication of Named Entities (DANE, RFC 6698)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-731'>SMACK-731</a>] - Add support for XEP-0191: Blocking Command
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-732'>SMACK-732</a>] - Smack should be able to handle "single equals sign" SASL responses
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-740'>SMACK-740</a>] - Add support for Multi-User Chat Light
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-742'>SMACK-742</a>] - Add support for XEP-0133: Service Administration
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-747'>SMACK-747</a>] - Add support for XEP-0363: HTTP File Upload
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Task
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-638'>SMACK-638</a>] - Call connection creation listeners from within AbstractXMPPConnection's constructor
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-644'>SMACK-644</a>] - Throw exception if account creation or password change is performed over insecure connections
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-655'>SMACK-655</a>] - Enable StreamManagement by default
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-372'>SMACK-372</a>] - Make package protected methods in PEPItem public
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-572'>SMACK-572</a>] - Rejoin MUC rooms after reconnect
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-628'>SMACK-628</a>] - Rework Roster handling with anonymous connections
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-629'>SMACK-629</a>] - Rework how Smack handles anonymous connections
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-631'>SMACK-631</a>] - Improve ParsingExceptionCallback, allow it to be a functional interface
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-632'>SMACK-632</a>] - Make Smack interruptible
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-633'>SMACK-633</a>] - Allow clean and graceful disconnects (stream closing)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-634'>SMACK-634</a>] - Use jxmpp-jid, add Jid class to replace String's being used as JIDs
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-646'>SMACK-646</a>] - Add support for MUC roomnick rewrite
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-647'>SMACK-647</a>] - Don't automatically call login() on connect() if the connection was authenticated before
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-648'>SMACK-648</a>] - Improve MultiUserChat API
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-657'>SMACK-657</a>] - Rename RosterEntry.getStatus and RosterPacket.ItemStatus to ItemAskStatus
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-663'>SMACK-663</a>] - Roster should be fully loaded when Roster.getInstanceFor(XMPPConnection) is called with a authenticated connection
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-665'>SMACK-665</a>] - Rename 'serviceName' to 'xmppServiceDomain'
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-666'>SMACK-666</a>] - Typo in 'RosterEntries.rosterEntires()', change to 'RosterEntries.rosterEntries()'
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-703'>SMACK-703</a>] - Limit the stored presences of entities not in Roster
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-704'>SMACK-704</a>] - Pass down Message stanza in ChatStateListener
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-711'>SMACK-711</a>] - Improve the logging of TCP connection attempts.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-720'>SMACK-720</a>] - Improve support for Tor and Hidden Services.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-721'>SMACK-721</a>] - Report illegal Stream Management states to avoid OOM Exception
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-727'>SMACK-727</a>] - Add partial support for the IoT XEPs (XEP-0323, -0324, -0325, -0347)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-733'>SMACK-733</a>] - Handle outgoing 'unavailable' Presences in Roster
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-736'>SMACK-736</a>] - Add support for Chat Markers (XEP-0333)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-737'>SMACK-737</a>] - Add support for Bits of Binary (XEP-0231)
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-738'>SMACK-738</a>] - Add support for Push Notifications (XEP-0357)
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.9 -- <span style="font-weight: normal;">2016-11-19</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-739'>SMACK-739</a>] - Smack starts SASL step without TLS in case STARTTLS is stripped even if SecurityMode.Required is used
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-735'>SMACK-735</a>] - Smack sometimes sends invalid SCRAM-SHA1 nonce
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.8 -- <span style="font-weight: normal;">2016-07-30</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-722'>SMACK-722</a>] - SASL X-OAUTH2 implementation incorrectly performs Base64 encoding twice
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-724'>SMACK-724</a>] - Do not re-use the Socket after connect() failed.
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-725'>SMACK-725</a>] - ReconnectionManager should handle AlreadyConnectedException and AlreadyLoggedInException not as failure
|
|
</li>
|
|
<li>[<a href='https://issues.igniterealtime.org/browse/SMACK-726'>SMACK-726</a>] - 'purge' and 'remove' IQ of XEP-0013 must be of type 'set'
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.7 -- <span style="font-weight: normal;">2016-04-14</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-712'>SMACK-712</a>] - XMPPTCPConnection's setEnabledSSL(Protocols|Ciphers) has no effect
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-716'>SMACK-716</a>] - EntityTimeManager.getTime() does not set the recipients JID
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-719'>SMACK-719</a>] - XMPPError should use Locale.US in toUpperCase()
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-715'>SMACK-715</a>] - Add Roster.setRosterLoadedAtLoginDefault(boolean)
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.6 -- <span style="font-weight: normal;">2016-01-23</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-705'>SMACK-705</a>] - PubSub's Affiliation.getElementName() returns wrong name
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-706'>SMACK-706</a>] - Smack may sends <bind/> and <session/> twice if Stream Management is used and a previous SM state exists
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-707'>SMACK-707</a>] - Infinite loop of NullPointerExceptions in Socks5Proxy
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-708'>SMACK-708</a>] - DeliveryReceipt(Manager) should ensure that receipts (and requests) have an ID set
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-709'>SMACK-709</a>] - Don't request delivery receipts for messages without a body
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-710'>SMACK-710</a>] - SASL DIGEST-MD5 backslash must be quoted
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.5 -- <span style="font-weight: normal;">2015-11-22</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-698'>SMACK-698</a>] - Time creates invalid XML
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-700'>SMACK-700</a>] - Duplicate stanzas in unacknowledgedStanzas queue when stream is resumed
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-702'>SMACK-702</a>] - RejectedExecutionException in AbstractXMPPConnection.processPacket() causes connection Termination
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.4 -- <span style="font-weight: normal;">2015-09-14</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-688'>SMACK-688</a>] - Reset carbons state if session got not resumed or cleanly disconnected
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-689'>SMACK-689</a>] - PEPPubSub creates malformed XML
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-693'>SMACK-693</a>] - MultiUserChat's UserStatusListener is not getting triggered
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-695'>SMACK-695</a>] - JSON and GCM parser does an erroneous extra next()
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-697'>SMACK-697</a>] - PrivacyListManager should handle the case where not default and active list are currently set
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-686'>SMACK-686</a>] - Provide a hint that connect() needs to be called prior login() in NotConnectedException
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-687'>SMACK-687</a>] - Update to jxmpp 0.4.2
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-696'>SMACK-696</a>] - Drop stream state after stream error
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.3 -- <span style="font-weight: normal;">2015-07-15</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-679'>SMACK-679</a>] - Memory leak in Socks5BytestreamManager. Should use weak map for 'managers'
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-680'>SMACK-680</a>] - XHTML bodies are un-escaped after parsing
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-681'>SMACK-681</a>] - Roster presence callbacks may not be invoked right after login
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.2 -- <span style="font-weight: normal;">2015-06-27</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-664'>SMACK-664</a>] - Invalid IQ error response to OfferRequestPacket and OfferRevokePacket
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-668'>SMACK-668</a>] - ReconnectionManager's value of 'attempts' is not reset after successful reconnection
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-669'>SMACK-669</a>] - Only add Entity Capabilities extension to available presences
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-670'>SMACK-670</a>] - SASLMechanism.authenticate should treat an empty byte array like 'null' byte array
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-672'>SMACK-672</a>] - Memory leak caused by RosterGroup declaring a strong reference to XMPPConnection
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-673'>SMACK-673</a>] - VCard API does not support all elements
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-676'>SMACK-676</a>] - ConcurrentModificationException in ServerPingWithAlarmManager
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-678'>SMACK-678</a>] - Login hangs if starttls advertised, but security is set to 'disabled' and compression is also advertised
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-667'>SMACK-667</a>] - Request Stream Mangement Acknowledgement after re-sending unack'ed stanzas after stream resumption
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-671'>SMACK-671</a>] - Don't disable Scoks5BytestreamManager on connection termination
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.1 -- <span style="font-weight: normal;">2015-05-09</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-649'>SMACK-649</a>] - DIGEST-MD5 challenge/response parsing must handle linear white spaces after the comma
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-652'>SMACK-652</a>] - SynchronizationPoint should use signalAll
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-653'>SMACK-653</a>] - Integer overflow if both client and server don't specify a max resumption time
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-654'>SMACK-654</a>] - isSmResumptionPossible() returns wrong values
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-656'>SMACK-656</a>] - DeliveryReceipts auto add should use packet interceptors and should not be requested for messages with ACKs.
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-659'>SMACK-659</a>] - Memory leak caused by RosterEntry declaring a strong reference to XMPPConnection
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-660'>SMACK-660</a>] - ReconnectionManager's RANDOM_INCREASING_DELAY is erroneously using a fixed value.
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-661'>SMACK-661</a>] - Add method to set ProxyInfo in ConnectionConfiguration.Builder
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-662'>SMACK-662</a>] - RosterEntry.setName() does not change the name
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.1.0 -- <span style="font-weight: normal;">2015-03-29</span></h2>
|
|
|
|
<h2> Sub-task
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-398'>SMACK-398</a>] - Implement SCRAM support
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-65'>SMACK-65</a>] - Packet parsing should look for depth
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-237'>SMACK-237</a>] - Handle more vCard values (XEP-0054)
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-383'>SMACK-383</a>] - Allow the garbage collection of all object instances of a closed and unreferenced connection
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-424'>SMACK-424</a>] - Add a MultiUserChat.presenceChanged callback method to be informed if a presence within a MUC has changed (joined, leaved, status change)
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-542'>SMACK-542</a>] - MUC: RoomInfo should hold more data if the result contains a FORM_TYPE field
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-549'>SMACK-549</a>] - MUCUser#getStatus should be a List
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-564'>SMACK-564</a>] - Some tests fail with Java 8
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-570'>SMACK-570</a>] - Smack does not support resourceparts which contain the '@' character.
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-571'>SMACK-571</a>] - Don't remove the MUC listeners after a disconnect() , keep state of Connection between disconnect() and connect()/login()
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-573'>SMACK-573</a>] - MessageEventManager treats error replies as message events
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-583'>SMACK-583</a>] - PacketListeners may not be invoked in delivery order
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-585'>SMACK-585</a>] - XMPPTCPConnection does not set 'host' and 'port'
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-590'>SMACK-590</a>] - Don't use IQReplyFilter for the bind set/result exchange
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-597'>SMACK-597</a>] - PingManager.getLastReceivedPong() always returns -1
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-604'>SMACK-604</a>] - MUCUser must support multiple status codes
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-620'>SMACK-620</a>] - Smack should use a safe SAX parser, e.g. with entity reference expansion disabled
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-635'>SMACK-635</a>] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-643'>SMACK-643</a>] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-340'>SMACK-340</a>] - Should make the wait/timeouts on SASL authentication configurable.
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-402'>SMACK-402</a>] - Update obsolete "Message Delivery Receipts" support from (JEP|XEP)-0022 to XEP-0184
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-453'>SMACK-453</a>] - Add support for all primitive types in IntrospectionProvider.decode()
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-521'>SMACK-521</a>] - Clear PacketWriters queue when the connection is shut down
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-532'>SMACK-532</a>] - Evaluate if its possible to guarantee the order of listeners by using a LinkedHashMap
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-566'>SMACK-566</a>] - Create public method that parses Strings/CharSequences to messages, IQs and presence instances
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-587'>SMACK-587</a>] - Subprojects should uses versions when importing the OSGi smack-core components
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-595'>SMACK-595</a>] - Add an API to send a stanza and wait asynchronously for a response
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-599'>SMACK-599</a>] - Provide string messages to all exceptions thrown by Smack
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-600'>SMACK-600</a>] - RoomInfo Class should add the information from the Identity element.
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-608'>SMACK-608</a>] - Add support for XMPP error conditions text
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-622'>SMACK-622</a>] - Add support for 'optional' in session stream features
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-626'>SMACK-626</a>] - Add support for 'ofrom' Extended Stanza Addressing type
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-627'>SMACK-627</a>] - Smack should allow null usernames under certain circumstances
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-645'>SMACK-645</a>] - Roster should not leak internal state e.g. presences
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> New Feature
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-234'>SMACK-234</a>] - Add support for SASL EXTERNAL: PKI (Client SSL Cert) Support
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-333'>SMACK-333</a>] - Implement XEP-0198: Stream Management
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-378'>SMACK-378</a>] - Give access to the socket outside the XMPPconnection
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-581'>SMACK-581</a>] - Add support for "Result Set Management" (XEP-59)
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-607'>SMACK-607</a>] - Add support for XEP-0352: Client State Indication
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-612'>SMACK-612</a>] - Add support for XEP-0141: Data Forms Layout
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-621'>SMACK-621</a>] - Add support for XEP-0122: Data Forms Validation
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-623'>SMACK-623</a>] - Add API to retrieve the subscriptions of a PubSub node as owner
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Task
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-365'>SMACK-365</a>] - SmackConfiguration should only report errors if the file fails to load, not when it fails to load for a specific classloader.
|
|
</li>
|
|
<li>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-569'>SMACK-569</a>] - Move Message Event code to legacy subproject
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-578'>SMACK-578</a>] - Remove decorators for "Legacy Delayed Delivery" (XEP-91) in favor of Delayed Delivery (XEP-203)
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-579'>SMACK-579</a>] - FileTransferManager and FileTransferNegoiator should use WeakHashMaps and extend Manager
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-582'>SMACK-582</a>] - Change ReceiptReceivedListener.onReceiptReceived parameters
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-637'>SMACK-637</a>] - Move Roster and Chat code to new smack-im subproject
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.7 -- <span style="font-weight: normal;">2015-02-20</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-635'>SMACK-635</a>] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-643'>SMACK-643</a>] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.6 -- <span style="font-weight: normal;">2014-11-23</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-616'>SMACK-616</a>] - Smack should fallback to using host with default port if DNS SRV lookup fails
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-617'>SMACK-617</a>] - Message Digest in EntityCapsManager should be synchronized
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.5 -- <span style="font-weight: normal;">2014-10-22</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-609'>SMACK-609</a>] - PingManager.ping(String, long) does not respect timeout
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-613'>SMACK-613</a>] - Parsing exception causes infinite loop if the exception is not thrown
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.4 -- <span style="font-weight: normal;">2014-09-05</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-596'>SMACK-596</a>] - Smack should load roster before sending the initial presence
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-598'>SMACK-598</a>] - Smack should allow the empty string as content of message body element
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-601'>SMACK-601</a>] - PubSub ItemProvider does only process the outermost namespace definition when creating PayloadItems
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-602'>SMACK-602</a>] - PacketCollector must handle InterruptException
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-603'>SMACK-603</a>] - XMPPError.Condition.equals() should be null-safe
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.3 -- <span style="font-weight: normal;">2014-08-16</span></h2>
|
|
|
|
<h2> Bug
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-589'>SMACK-589</a>] - FormField.Option toXML() produces malformed XML
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-592'>SMACK-592</a>] - OfflineMessagesManager.getMessages() does send request before collector is set up and could leak collector
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-594'>SMACK-594</a>] - PrivateData Bookmarks.toXML() returns invalid XML
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-539'>SMACK-539</a>] - Verify ConnectionConfiguration parameters
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-588'>SMACK-588</a>] - Typo in org.jivesoftware.smackx.pubsub.ConfigureForm: s/isSubscibe/isSubscribe/
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-593'>SMACK-593</a>] - Smack should prefer full flush over sync flush when using compression
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.2 -- <span style="font-weight: normal;">2014-07-27</span></h2>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-576'>SMACK-576</a>] - smack-resolver-javax should become a OSGi ServiceComponent
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-586'>SMACK-586</a>] - Extend API to configure a HostnameVerifier
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.1 -- <span style="font-weight: normal;">2014-07-20</span></h2>
|
|
|
|
<h2> Sub-task
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-574'>SMACK-574</a>] - Documentation still refers at some places to Connection
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-575'>SMACK-575</a>] - PingManager schedules pings after pingInterval when it should be use nextPingIn instead
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-577'>SMACK-577</a>] - Bookmarks and FormField toXml() methods do not properly escape XML
|
|
</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-580'>SMACK-580</a>] - Add support for retrieving a PubSub node's affiliations
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>4.0.0 -- <span style="font-weight: normal;">2014-06-08</span></h2>
|
|
|
|
<h2> Sub-task
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-399'>SMACK-399</a>] - Add support for Roster Versioning (was XEP-0237, now in RFC 6121)
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-400'>SMACK-400</a>] - Change xml-not-well-formed to not-well-formed
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-401'>SMACK-401</a>] - Remove <invalid-id/>
|
|
</li>
|
|
<li>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-357'>SMACK-357</a>] - Error in SASL authentication when SASL authzid parameter is null
|
|
</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-414'>SMACK-414</a>] - Smack does not announce the support for XEP-54 aka vcard-temp
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-427'>SMACK-427</a>] - Typo in code - StreamInitiation.setSesssionID()
|
|
</li>
|
|
<li>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-531'>SMACK-531</a>] - Add missing namespace attribute to XHTML-IM body tags
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-533'>SMACK-533</a>] - Smack should prevent IQ response spoofing
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-535'>SMACK-535</a>] - jul.properties should only configure the 'org.igniterealtime' namespace
|
|
</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-543'>SMACK-543</a>] - packet.Time is not thread-safe
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-546'>SMACK-546</a>] - PubSub's Item needs to escape its XML payload
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-548'>SMACK-548</a>] - PingManager notifies pingFailedListeners multiple times
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-551'>SMACK-551</a>] - ChatManager throws NPE, when Message has no 'from' attribute
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-554'>SMACK-554</a>] - Memory leak in BookmarkManager
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-555'>SMACK-555</a>] - VCardProvider should consider some elements as optional
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-558'>SMACK-558</a>] - connect() must wait until the stream features have been parsed
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-559'>SMACK-559</a>] - Roster entries without a group are not updated
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-560'>SMACK-560</a>] - Race condition in PacketWriter
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-567'>SMACK-567</a>] - XMPPConnection leaks listenerExecutor ExecutorService
|
|
</li>
|
|
</ul>
|
|
|
|
<h2> Improvement
|
|
</h2>
|
|
<ul>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.
|
|
</li>
|
|
<li>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-454'>SMACK-454</a>] - Follow XEP-0170 recommendation: Compression before Resource Binding
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-459'>SMACK-459</a>] - Add option to configure the default identity in ServiceDiscoveryManager
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-465'>SMACK-465</a>] - Replace custom wrapped Throwable in XMPPException with Exception.cause
|
|
</li>
|
|
<li>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-536'>SMACK-536</a>] - JUL Loggers should become final
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-537'>SMACK-537</a>] - Move XMPP Ping code to smackx, add keep-alive functionality to PingManager
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-545'>SMACK-545</a>] - Change API to the style mentioned in Smack's Code Guidelines
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-547'>SMACK-547</a>] - Consistent behavior for "from" attribute on outgoing stanzas
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-556'>SMACK-556</a>] - Make ConnectionConfigration getters public
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-557'>SMACK-557</a>] - Provide a MultiUserChat method to create *or* join a room
|
|
</li>
|
|
<li>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-53'>SMACK-53</a>] - Add support for XEP-0092: Software Version
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-71'>SMACK-71</a>] - Create new FromFilter that checks for exact matching
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-187'>SMACK-187</a>] - Add HTTP Binding support (BOSH / XEP-0124)
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-265'>SMACK-265</a>] - Move to a newer build process with artifacts published to maven central repo
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-426'>SMACK-426</a>] - Improve XMPPException
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-544'>SMACK-544</a>] - Add support for XEP-0079: Advanced Message Processing
|
|
</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='https://igniterealtime.org/issues/browse/SMACK-432'>SMACK-432</a>] - Code cleanup of deprecated methods
|
|
</li>
|
|
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-446'>SMACK-446</a>] - Remove non-SASL authentication code
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>3.4.1 -- <span style="font-weight: normal;">Feb 9, 2014</span></h2>
|
|
|
|
<h2>Bug</h2>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-540'>SMACK-540</a>] - Memory leak in MultiUserChat
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>3.4.0 -- <span style="font-weight: normal;">Feb 2, 2014</span></h2>
|
|
|
|
<h2>Bug Fixes</h2>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-442'>SMACK-442</a>] - Manager's should also handle connectionClosedOnError()</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-443'>SMACK-443</a>] - ReconnectionSuccessful listeners are invoked twice on reconnection if connect() failed before</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-463'>SMACK-463</a>] - packet listeners silently fail when preceding listener caused exception</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-524'>SMACK-524</a>] - Use correct block-size definition for IBB transfers</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-525'>SMACK-525</a>] - NPE in XMPPConnection.notifyConnectionError</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-529'>SMACK-529</a>] - Add support for XEP-0280 "Message Carbons"</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-286'>SMACK-286</a>] - Need to change ProviderManager to support loading smack.providers from alternative locations</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-403'>SMACK-403</a>] - Add support for XEP-0297 "Stanza Forwarding"</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-381'>SMACK-381</a>] - Separate the configuration for smack extension related classes from the smack jar.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-444'>SMACK-444</a>] - Allow 'null' for TruststorePath and TruststorePassword in ServerTrustManager</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-456'>SMACK-456</a>] - Add the causing exception to the XMPPExceptions thrown in XMPPConnection</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-457'>SMACK-457</a>] - Remove unnecessary printStackTrace() in XMPPConnection</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-460'>SMACK-460</a>] - ServiceDiscoveryManager should not use the constructor in connectionCreated()</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-461'>SMACK-461</a>] - Remove incorrect deprecated marker for DiscoverInfo.Identity.setType()</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-534'>SMACK-534</a>] - Convert all System.out and printStackTrace calls to use Java util logging.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-339'>SMACK-339</a>] - Allow ConnectionListeners to be added before XMPPConnection is connected. Currently throws exception</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-434'>SMACK-434</a>] - Create a project to contain non production ready implementations of specifications</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-526'>SMACK-526</a>] - Deprecate all PEP related classes.</li>
|
|
</ul>
|
|
|
|
<h2>3.3.1 -- <span style="font-weight: normal;">Oct 6, 2013</span></h2>
|
|
|
|
<h2>Bug Fixes</h2>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-428'>SMACK-428</a>] - RosterEntry overrides equals, but not hashcode.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-438'>SMACK-438</a>] - Possible NPE in MultiUserChat.InvitationsMonitor.getInvitationsMonitor()</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-441'>SMACK-441</a>] - Memory leak in KeepAliveManager</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-447'>SMACK-447</a>] - Compression is not enabled for Java7ZlibInputOutputStream</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='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>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-369'>SMACK-369</a>] - Exceptions during login should get thrown back up to the caller.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-439'>SMACK-439</a>] - Improve documentation for MultiUserChat.InvitationsListener</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-405'>SMACK-405</a>] - Cleanup of redundant code in XMPPConnection.shutdown()</li>
|
|
</ul>
|
|
|
|
<h2>3.3.0 -- <span style="font-weight: normal;">May 4, 2013</span></h2>
|
|
|
|
<h2>Bug Fixes</h2>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-225'>SMACK-225</a>] - Improper handeling of DNS SRV records</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-238'>SMACK-238</a>] - The vCard avatar type always return jpg</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-270'>SMACK-270</a>] - Fix for a memory leak in MUC with MUC.finalize()</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-278'>SMACK-278</a>] - Deadlock during Smack disconnect</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-342'>SMACK-342</a>] - VCards causes ConcurrentModificationException</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-344'>SMACK-344</a>] - Bug in SASL authentication mechanism when SRV records are being used.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-351'>SMACK-351</a>] - Rework File Transfer</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-352'>SMACK-352</a>] - Update the licensing headers in various files.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-355'>SMACK-355</a>] - IO Error if smack cant use port for local proxy</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-382'>SMACK-382</a>] - Prevent memory leak in AdHocCommandManager</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-384'>SMACK-384</a>] - Endless waiting for connection to be established</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-390'>SMACK-390</a>] - Smack login will fail if a bad delay packet is received</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-392'>SMACK-392</a>] - In ant build, compile-test target doesn't work.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-394'>SMACK-394</a>] - Erroneous cast in IBBInputStream's read() method</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-404'>SMACK-404</a>] - Smack uses the wrong method to decode Base64 Strings</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-413'>SMACK-413</a>] - VCardProvider incorrectly parses binary value of avatars</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-331'>SMACK-331</a>] - Add support for XEP-0184: Message Delivery Receipts</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-345'>SMACK-345</a>] - Inproved detection of last activity</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-361'>SMACK-361</a>] - Add support for XEP-0115 Entity Capabilities</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-376'>SMACK-376</a>] - Setting a custom trust manager to control certificates from outside</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-388'>SMACK-388</a>] - XEP-199 XMPP Ping support</li>
|
|
</ul>
|
|
|
|
<h2>Improvements</h2>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-341'>SMACK-341</a>] - Update the PacketCollector and ConnectionDetachedPacketCollector to use the java concurrent classes.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-358'>SMACK-358</a>] - Support additional properties for account creation in test cases.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-363'>SMACK-363</a>] - Code Cleanup</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-377'>SMACK-377</a>] - avoid unnecessary DNS requests in XMPPconnection</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-385'>SMACK-385</a>] - Reusing KeyStore in order to reduce memory usage</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-412'>SMACK-412</a>] - Replace the whitespace ping with a XEP-0199 ping</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-419'>SMACK-419</a>] - PacketWriter: Only flush the BufferedWriter if the packet queue is empty</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-430'>SMACK-430</a>] - Throw an exception if FileTransferManager.createOutgoingFileTransfer() was used with a bare JID</li>
|
|
</ul>
|
|
|
|
<h2>3.2.2 -- <span style="font-weight: normal;">Dec. 23, 2011</span></h2>
|
|
|
|
<h3>Bug Fixes</h3>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-263'>SMACK-263</a>] - Set file info in all send* methods</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-322'>SMACK-322</a>] - NPE in XMPPConnection</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-324'>SMACK-324</a>] - Investigate SASL issue with jabberd2 servers</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-338'>SMACK-338</a>] - IBB filetransfer doesn't work as expected</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-346'>SMACK-346</a>] - Bug in return code for rejection handling in FileTransferManager</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-348'>SMACK-348</a>] - Documentation error - broken link</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-349'>SMACK-349</a>] - Smack's IBB sends too much data in a packet</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-353'>SMACK-353</a>] - Thread leak in the FaultTolerantNegotiator</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-362'>SMACK-362</a>] - smack throw NoSuchElementException if the muc#roominfo_subject has no values</li>
|
|
</ul>
|
|
|
|
<h3>Improvements</h3>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-354'>SMACK-354</a>] - Provide milliseconds in timestamp colum debugwindow</li>
|
|
</ul>
|
|
|
|
<h2>3.2.1 -- <span style="font-weight: normal;">July 4, 2011</span></h2>
|
|
<h3>Bug Fixes</h3>
|
|
<ul>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-230'>SMACK-230</a>] - Disconnect Can Cause Null Pointer Exception</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-273'>SMACK-273</a>] - Bug in RoomListenerMultiplexor.java</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-329'>SMACK-329</a>] - XHTMLText uses improper format for br tag</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-338'>SMACK-338</a>] - IBB filetransfer doesn't work as expected</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-324'>SMACK-324</a>] - Investigate SASL issue with jabberd2 servers</li>
|
|
</ul>
|
|
|
|
<h2>3.2.0 -- <span style="font-weight: normal;">May 3, 2011</span></h2>
|
|
<h3>New Features</h3>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-272'>SMACK-272</a>] - Add support for pubsub (XEP-0060)</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-296'>SMACK-296</a>] - Add support for XEP-0224: Attention</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-319'>SMACK-319</a>] - Add common interfaces for SOCKS5 Bytestreams and In-Band Bytestreams</li>
|
|
</ul>
|
|
|
|
<h3>Improvements</h3>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-137'>SMACK-137</a>] - File Transfer Settings</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-156'>SMACK-156</a>] - Add the ability to register for roster events before logging in</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-261'>SMACK-261</a>] - Minor Jingle cleanup to better support Jingle in Spark</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-277'>SMACK-277</a>] - Update XMLUnit to the latest version</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-282'>SMACK-282</a>] - Support SASL-related error conditions.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-283'>SMACK-283</a>] - Investigate why Jingle is connecting to stun.xten.net</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-285'>SMACK-285</a>] - Add support for Nicks</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-294'>SMACK-294</a>] - Handle empty roster groups and no goups in the same way</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-295'>SMACK-295</a>] - Fire reconnectionSuccessful event when session is established</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-297'>SMACK-297</a>] - add configuration for local Socks5 proxy</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-298'>SMACK-298</a>] - Respond to all incoming Socks5 bytestream requests</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-299'>SMACK-299</a>] - Improve accepting of Socks5 bytestream requests</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-300'>SMACK-300</a>] - improve local Socks5 proxy implemetation</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-301'>SMACK-301</a>] - support for bytestream packets to query Socks5 proxy for network address</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-302'>SMACK-302</a>] - Improve establishing of Socks5 bytestreams</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-303'>SMACK-303</a>] - integrate of the extracted Socks5 bytestream API in file transfer API</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-307'>SMACK-307</a>] - Improve Message Parser Robustness and Message Body I18N</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-309'>SMACK-309</a>] - Fully implement XEP-0047 In-Band Bytestreams</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-310'>SMACK-310</a>] - Add Support for Localized Message Subjects</li>
|
|
</ul>
|
|
|
|
<h3>Bug Fixes</h3>
|
|
<ul>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-163'>SMACK-163</a>] - Fix NPE in RoomInfo when subject has not value</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-207'>SMACK-207</a>] - Parsing of messages may disconnect Smack/Spark</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-225'>SMACK-225</a>] - Improper handeling of DNS SRV records</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-232'>SMACK-232</a>] - Better handling of Roster error</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-243'>SMACK-243</a>] - Packet with wrong date format makes Smack to disconnect</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-264'>SMACK-264</a>] - fix for NPE in SASLMechanism.java</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-269'>SMACK-269</a>] - Smack 3.1.0 creates a new chat for every incoming message</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-271'>SMACK-271</a>] - Deadlock in XMPPConnection while login and parsing stream features</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-275'>SMACK-275</a>] - Patch: Fix for broken SASL DIGEST-MD5 implementation</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-290'>SMACK-290</a>] - Deadlock while getting Roster before it's initialized</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-291'>SMACK-291</a>] - RosterGroup modifications should depend on roster push</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-293'>SMACK-293</a>] - Support optional roster subscription attribute</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-305'>SMACK-305</a>] - RosterEntry#getGroups causing a roster reload</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-308'>SMACK-308</a>] - Multiple errors in pubsub GetItemsRequest</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-312'>SMACK-312</a>] - Only fire RosterListener#entriesUpdated for RosterEntries that changed</li>
|
|
<li>[<a href='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>[<a href='http://issues.igniterealtime.org/browse/SMACK-328'>SMACK-328</a>] - Number format exception while parsing dates.</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-332'>SMACK-332</a>] - Smack 3.2.0b2 shows wrong version in Smack Dubugger Window</li>
|
|
<li>[<a href='http://issues.igniterealtime.org/browse/SMACK-334'>SMACK-334</a>] - Error in form for FileTransferNegotiator</li>
|
|
</ul>
|
|
|
|
<h2>3.1.0 -- <span style="font-weight: normal;">November 20, 2008</span></h2>
|
|
|
|
<h3>New Features</h3>
|
|
<ul>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-142'>SMACK-142</a>] - Added support for Kerberos/NTLM. <b>(6 votes)</b></li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-210'>SMACK-210</a>] - Added support for MD5 SASL. <b>(1 vote)</b></li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-242'>SMACK-242</a>] - Added support for JEP-50: Ad-hoc commands.</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-254'>SMACK-254</a>] - Loading the Roster during login is now optional.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-255'>SMACK-255</a>] - Added ability to set mime type for avatar.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-235'>SMACK-235</a>] - Improved performance of Roster class.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-241'>SMACK-241</a>] - Updated Base64 implementation to match Openfire's.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-240'>SMACK-240</a>] - Updated Jingle implementation to newest version.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-246'>SMACK-246</a>] - Improve Jingle logging using commons-logging</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-244'>SMACK-244</a>] - Updated JSTUN to 0.7.2.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-231'>SMACK-231</a>] - IBB Outputstream was not being flushed before it was closed.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-236'>SMACK-236</a>] - Renamed stanza error "unexpected-condition" to "unexpected-request".</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-258'>SMACK-258</a>] - Fixed disconnection issue when parsing SASL success that contained a payload.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-175'>SMACK-175</a>] - Fixed typo in RosterPacket.ItemStatus constant.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-260'>SMACK-260</a>] - Added handling of error presence packets</li>
|
|
</ul>
|
|
|
|
<h2>3.0.3 -- <span style="font-weight: normal;">May 31, 2007</span></h2>
|
|
|
|
<h3>New Features</h3>
|
|
<ul>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-99'>SMACK-99</a>] - Added support for multiple message bodies and message body languages.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-219'>SMACK-219</a>] - The getPresence method was not working correctly with offline presence.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-224'>SMACK-224</a>] - SASL authenticion was using the XMPP domain instead of the FQDN.</li>
|
|
</ul>
|
|
|
|
<h2>3.0.2 -- <span style="font-weight: normal;">May 3, 2007</span></h2>
|
|
|
|
<h3>Bug Fixes</h3>
|
|
<ul>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-213'>SMACK-213</a>] - RTP Bridge Resolver get wrong localhost address in certain situations</li>
|
|
<li>[<a href='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>
|
|
</ul>
|
|
|
|
<h2>3.0.1 -- <span style="font-weight: normal;">April 12, 2007</span></h2>
|
|
|
|
<h3>Bug Fixes</h3>
|
|
<ul>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-211'>SMACK-211</a>] - Jingle ICE with relay sometimes closed sessions.</li>
|
|
<li>Upgraded bundled version of JSTUN.</li>
|
|
</ul>
|
|
|
|
|
|
<h2>3.0.0 -- <span style="font-weight: normal;">March 31, 2007</span></h2>
|
|
|
|
<h3>Important Changes</h3>
|
|
<ul>
|
|
<li>Java 5 is now required.</li>
|
|
<li>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.</li>
|
|
</ul>
|
|
|
|
<h3>New Features</h3>
|
|
<ul>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-191'>SMACK-191</a>] - RosterListener API improvements.</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-200'>SMACK-200</a>] - Added convenience methods to Presence class.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-31'>SMACK-31</a>] - Added support for privacy lists. <b>(4 votes)</b></li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-121'>SMACK-121</a>] - Added support for stream errors.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-136'>SMACK-136</a>] - Added support for XEP-0048: bookmark storage.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-144'>SMACK-144</a>] - Added bookmark manager for central bookmark management.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-150'>SMACK-150</a>] - Added support for handling node features in disco.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-167'>SMACK-167</a>] - Added support for XEP-0106: JID Escaping</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-172'>SMACK-172</a>] - Added support for re-connection when the connection is abruptly closed.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-182'>SMACK-182</a>] - ProviderManager is now pluggable (for Eclipse ECF).</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-185'>SMACK-185</a>] - Added the workgroup API to Smack.</li>
|
|
<li>[<a href='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>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-209'>SMACK-209</a>] - Initial Jingle support implemented.</li>
|
|
</ul>
|
|
|
|
<h3>Bug Fixes</h3>
|
|
<ul>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-6'>SMACK-6</a>] - Don't force use of collectors in Chat class.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-10'>SMACK-10</a>] - Flush pending packets before closing the connection. <b>(4 votes)</b></li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-51'>SMACK-51</a>] - Use unique Thread names among connections.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-54'>SMACK-54</a>] - Add #equals and #hashCode to Occupant.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-86'>SMACK-86</a>] - Made presence checks case in-sensitive.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-93'>SMACK-93</a>] - XHTML provider wasn't handling some tags correctly.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-138'>SMACK-138</a>] - Added caching to file transfer negotiation operations.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-143'>SMACK-143</a>] - Updated XMPPError to be compliant with RFC3920.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-145'>SMACK-145</a>] - XHTML parsing could fail in some cases.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-146'>SMACK-146</a>] - DNS lookups were failing with some DNS servers.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-147'>SMACK-147</a>] - Removed invisibility presence mode.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-149'>SMACK-149</a>] - Fixed possible memory leaking in PacketReader.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-151'>SMACK-151</a>] - Now use getBytes("UTF-8") instead of getBytes().</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-152'>SMACK-152</a>] - The FN field is duplicated when loading vCards from the server.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-153'>SMACK-153</a>] - Optimized performance by replacing StringBuffer with StringBuilder.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-154'>SMACK-154</a>] - Fixed roster test cases that were sometimes failing.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-155'>SMACK-155</a>] - Optimized MUC performance by reducing number of packet collectors and listeners.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-159'>SMACK-159</a>] - Filenames were not escaped for file transfers.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-160'>SMACK-160</a>] - Now use stream:feature to discover registration support.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-161'>SMACK-161</a>] - Improved connection speed.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-162'>SMACK-162</a>] - Fixed NPE in SmackConfiguration.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-163'>SMACK-163</a>] - Fixed NPE in RoomInfo when subject was null.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-164'>SMACK-164</a>] - Contact name was not being escaped.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-165'>SMACK-165</a>] - Listeners were not being removed from PacketReader.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-168'>SMACK-168</a>] - Fixed possible delay in PacketReader when negotiating TLS.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-173'>SMACK-173</a>] - Renamed ConnectionEstablishedListener to ConnectionCreationListener.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-176'>SMACK-176</a>] - Fixed incorrect property initialization.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-177'>SMACK-177</a>] - Removed synchronization from Roster.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-178'>SMACK-178</a>] - Added NodeInformation#getNodeIdentities() to return identities of hosted nodes</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-181'>SMACK-181</a>] - Improved parsing of certificates to get signed domains.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-183'>SMACK-183</a>] - Documentation fixes.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-184'>SMACK-184</a>] - Simplified XMPPConnection constructors.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-205'>SMACK-205</a>] - Fixed PacketReader concurrency problems.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-188'>SMACK-188</a>] - Resources are now closed after reading the keystore.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-189'>SMACK-189</a>] - The listener was remaining blocked forever in some cases.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-190'>SMACK-190</a>] - Exceptions while notifying packet reader listeners was stopping the notification thread.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-192'>SMACK-192</a>] - Roster.getPresence(String) now forces use of the bare JID.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-193'>SMACK-193</a>] - New presence packets now default to a null presence mode.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-197'>SMACK-197</a>] - The source build was failing.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-198'>SMACK-198</a>] - File transfer streams were not being closed properly in some cases.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-199'>SMACK-199</a>] - MultiUserChat invitation listeners are no longer removed on disconnects.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-201'>SMACK-201</a>] - Roster no longer exposes that it implements ConnectionListener.</li>
|
|
|
|
</ul>
|
|
|
|
<h2>2.2.1 -- <span style="font-weight: normal;">June 12, 2006</span></h2>
|
|
|
|
<ul>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-141'>SMACK-141</a>] - Fixed SSL exception while creating new XMPPConnections. <b>(1 vote)</b></li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-127'>SMACK-127</a>] - Fixed incorrect file transfer progress.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-130'>SMACK-130</a>] - Fixed VCard escaping problem that was crashing connections.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-134'>SMACK-134</a>] - VCards were not being saved when avatar was the only element.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-131'>SMACK-131</a>] - Illegal XML characters are now properly escaped in the presence status.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-133'>SMACK-133</a>] - Illegal XML characters are now properly escaped in groups names.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-132'>SMACK-132</a>] - Fixed IBB problem triggered when buffersize was increased.</li>
|
|
<li>[<a href='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>
|
|
</ul>
|
|
|
|
<h2>2.2.0 -- <span style="font-weight: normal;">March 9, 2006</span></h2>
|
|
<ul>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-122'>SMACK-122</a>] - Added support for JEP-96: File Transfer. <b>(1 vote)</b></li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-122'>SMACK-122</a>] - Added support for JEP-65: SOCKS5 Bytestreams. <b>(1 vote)</b></li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-112'>SMACK-112</a>] - Added support for JEP-38 Stream Compression.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-117'>SMACK-117</a>] - Added support for JEP-33: Extended Stanza Addressing.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-27'>SMACK-27</a>] - Certification validation is now pluggable.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-118'>SMACK-118</a>] - Added methods to dynamically remove providers.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-125'>SMACK-125</a>] - Added support for deaf occupant in MUC rooms.</li>
|
|
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-109'>SMACK-109</a>] - Optimized client performance. <b>(1 vote)</b></li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-113'>SMACK-113</a>] - Added support for choosing if TLS should be used or not.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-114'>SMACK-114</a>] - Added support for choosing if SASL should be used or not.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-123'>SMACK-123</a>] - A thread is no longer used for packet writer listeners.</li>
|
|
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-111'>SMACK-111</a>] - Fixed concurrency issue with date formatter.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-116'>SMACK-116</a>] - Fixed vCard issues.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-119'>SMACK-119</a>] - Fixed AccessControlException when using vCard from an applet.</li>
|
|
<li>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-120'>SMACK-120</a>] - Listener thread was not being shutdown properly.</li>
|
|
<li>[<a href='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>[<a href='http://www.igniterealtime.org/issues/browse/SMACK-97'>SMACK-97</a>] - Fixed functional test failures in PresencePriorityTest and RosterTest.</li>
|
|
</ul>
|
|
|
|
<div class="footer">
|
|
Copyright © Jive Software, 2004-2008
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|