<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Smack Changelog</title>
    <style type="text/css">
        BODY {
            font-size : 100%;
        }
        BODY, TD, TH {
            font-family : tahoma, verdana, arial, helvetica, sans-serif;
            font-size : 0.8em;
        }
        A:hover {
            text-decoration : none;
        }
        .pageheader {
            font-family : arial, helvetica, sans-serif;
            font-size : 14pt;
            font-weight: bold;
        }
        .header {
            font-family : tahoma, arial, helvetica, sans-serif;
            font-size : 1.4em;
            font-weight: bold;
            border-bottom : 1px #ccc solid;
            padding-bottom : 2px;
        }
        .bugNum {
            color: #666;
        }
        .subheader {
            font-weight: bold;
            color: #600;
        }
        TT {
            font-family : courier new;
            font-weight : bold;
            color : #060;
        }
        PRE {
            font-family : courier new;
            font-size : 100%;
        }
        .footer {
            font-size : 0.8em;
            color : #666;
            text-align : center;
        }
    </style>
</head>
<body>

<div class="header">
Smack Changelog
</div>

<p>
<b>1.2.1</b> - September 28, 2003
<p>
<ul>
    <li><font color="#777777">(SMACK-79)</font> Added XHTML message support as a Smack extension, which allows sending
        richly formatted messages.
    <li><font color="#777777">(SMACK-88)</font> Fixed bug with parsing registation packets that contain extra data.
    <li><font color="#777777">(SMACK-90)</font> Added support for getting registration instructions.
    <li><font color="#777777">(SMACK-85)</font> Exceptions in the PacketWriter now correctly generates a connection
        error event.
    <li><font color="#777777">(SMACK-84)</font> Added <tt>isSecureConnection()</tt> method to XMPPConnection class.
    <li><font color="#777777">(SMACK-86)</font> Added <tt>isJoined()</tt> method to GroupChat class. 
    <li><font color="#777777">(SMACK-87, SMACK-82)</font> Added the following methods related to rosters:
        <tt>Roster.contains(String user)</tt>, <tt>Roster.getEntry(String user)</tt>, 
        <tt>RosterGroup.getEntry(String user)</tt>, <tt>Roster.removeEntry(RosterEntry entry)</tt>.
    <li><font color="#777777">(SMACK-73)</font> Fixed bugs handling roster remove and update operations.    
</ul>

<p>
<b>1.2.0</b> - August 29, 2003
<p>
<ul>
    <li><font color="red"><b>!</b></font> A package structure and documentation has been added for Smack extensions,
        which cover extensions to the XMPP protocol. The initial extensions are
        for message events (JEP 22), roster item exchange (JEP 93), entity
        time (JEP 90), and private data storage (JEP 49). 
    <li><font color="red"><b>!</b></font> The smack.providers file is now loaded from META-INF/smack.providers
        rather than WEB-INF/smack.providers. This location makes much more sense
        for generic JAR files, but may break existing provider implementations
        until the provider file is moved.
    <li>Fixed IQ error sub-packets.
    <li>The default packet extension handler didn't deal with empty 
        elements well and also had a bug with attribute handling.
    <li>Added a ConnectionListener feature which allows clients
        to be notified of normally closed connections, and connections
        closed due to errors.
    <li>Fixed bug where the roster list could become corrupted after 
        moving a user back and forther between groups.
    <li>Fixed bug where in some cases presence packets were not getting
        tracked by the Roster class correctly.
    <li>RosterListener has a new notification method that is called every time
        the presence of a user in the roster is updated.
    <li>Added Roster.getEntries() method to return all entries in the roster.
    <li>Added RosterGroup.contains(String) method to check to see if an XMPP
        address is part of the group.
    <li>Minor fixes to Javadocs.
    <li>Content can be copied and cleared from the debug window using
        a pop-up menu.
    <li>The Chat constructor that took an existing chatID as an argument
        did not propertly initialize support for message listeners. 
    <li>Added support for anonymous logins.
    <li>IQ is now an abstract class.
    <li>Fixed bug where XHTML messgaes could cause parsing errors. 
</ul>

<p>
<b>1.1.1</b> - June 25, 2003
<p>
<ul>
    <li>Setting Object packet properties was broken.
    <li>Added getRoom() method to GroupChat.
</ul>

<p>
<b>1.1.0</b> - June 19, 2003
<p>
<ul>
    <li>New system to handle custom IQ packets and custom packet extensions through
	    the new provider sub-package.
	<li>Added packet filters for packet extensions.
    <li>Added additional options for responding to subscription requests.
    <li>Added method to retrieve the roster item count from roster packets.
	<li>Added ability to set the ItemStatus on a roster packet.
	<li>Added remove option to roster packet.
	<li>Various documentation fixes/improvements.
	<li>Fixed NullPointer exception on the setName method of the RosterEntry class.
	<li>Groupchat class was listening for wrong message types -- fixed.
    <li>Changed properties element name to "properties" instead of "x". <b>Note:</b> this will
	    break compatability between earlier versions if they are trying to send packet
		properties back and forth. However, we thought it was best to make this change now.
    <li>Turning on debugging via a system property wasn't working.
	<li>Fixed spelling error in Roster class method name.
	<li>Fixed stream not being closed properly.
	<li>The "to contains" and "from contains" filters now ignore case.
</ul>

<p>
<b>1.0.1</b> - April 30, 2003
<p>
<ul>
    <li>Fixed bug that caused applets using Smack to crash with a security exception.
</ul>

<p>
<b>1.0.0</b> - April 25, 2003
<p>
<ul>
    <li>Initial official release.
</ul>

</body>
</html>