1.4.1 - November 8, 2004
- (SMACK-21) The reader and listener threads in PacketReader are now stopped if an error occurs while starting up PacketReader. Thanks to Steve Reichert.
- (SMACK-22) XMPP addresses are now treated as case insensitive.
- (SMACK-3) Fixed possible NullPointerException when parsing invalid XHTML text.
- (SMACK-8) Answer an item-not-found error when Smack receives a service discovery for information and node is not null.
- (SMACK-17) An incorrect namespace was being used for granting and revoking admin/owner privileges.
- (SMACK-19) The roster should be able to hold any valid JID format. Thanks to Adam Olsen.
- (SMACK-20 Parsing MUCOwner packets could freeze the client.
- (SMACK-18) Implemented JEP-128. A service discovery for information can now include a dataform or any possible packet extension.
- (SMACK-15) Allow registration entries with blank values.
- (SMACK-16) Added String getAccountAttribute(String) method to AccountManager class.
- (SMACK-23) Connection listeners can now be removed while notifying that the connection is being closed. Fixes ConcurrentModificationException triggered on close.
1.4.0 - August 10, 2004
- (SMACK-99) Added support for Multi User Chat (JEP 45) as a Smack Extension.
- (SMACK-125) Added support for Data Forms (JEP 04) as a Smack Extension.
- (SMACK-143) Fixed memory leak problem by closing ObjectOutputStream while writing out Object properties.
- (SMACK-145) Fixed memory leak problem by cancelling unused collectors.
- (SMACK-138) Fixed error parsing properties of Messages.
- (SMACK-135) Invalid characters in the TO and FROM fields of any packet were escaped in order to
prevent the connection from closing. Thanks to Ian Sollars.
- (SMACK-140) Added new constructor to XMPPConnection XMPPConnection(String host, int port,
SocketFactory socketFactory) that allows a user to pass in the SocketFactory to use.
- (SMACK-131) Remove cached presence info when user was deleted from roster.
- (SMACK-123) TimerTask was removed to make Smack JDK 1.2 compatible again.
- (SMACK-130) Use notifyAll() instead of notify() in PacketWriter.
- (SMACK-137) Fixed security exception with unsigned applets using try/catch around System.getProperty.
- (SMACK-127) IQ packets can now have extensions.
- (SMACK-128) Registration can now include a registration data form.
- (SMACK-136) Keep-alive process should flush stream.
- (SMACK-121) Delay of keep-alive is now configurable.
- (SMACK-149) A disco info request directed to a Smack client didn't answer the client's identity.
- (SMACK-150) Added canPublishItems(String entityID) method to ServiceDiscoveryManager in
order to discover whether a server supports publishing of items or not.
- (SMACK-133) Node attribute was missing in DiscoverInfo and DiscoverItems XML representations.
- (SMACK-134) Added setNodeInformationProvider(String node, NodeInformationProvider listener)
method to ServiceDiscoveryManager and created new NodeInformationProvider interface in order to provide information about
nodes defined in the client.
- (SMACK-139) Added new menu option to the enhanced debugger in order to close all the tabs of which
their connections are not active anymore.
- (SMACK-124) Don't set L&F in debuggers.
- (SMACK-122) Added documentation about the new enhanced debugger.
- (SMACK-142) Base class for existing test cases was created.
1.3.0 - March 11, 2004
- (SMACK-103, SMACK-105) Fixed bugs with error packets (sending and receiving).
- (SMACK-109) Renaming RosterGroups fails.
- (SMACK-91) Add support for Service Discovery (JEP 30) as a Smack Extension.
- (SMACK-94) Host name as reported by server should be used in the Connection object.
- (SMACK-97) SUBSCRIPTION_* constants are misspelled in the Roster class.
- (SMACK-107) Allow packet reply timeout to be set.
- (SMACK-41) Unrecognized IQs should generate a "not implemented" error.
- (SMACK-116) Roster entries are not being removed from the group immediately when deleted.
- (SMACK-100) Incoming packets should only have ID's if they are set.
- (SMACK-104) Fixed bug parsing server information.
- (SMACK-112) Add a mechanism to set the roster's subscription mode before login.
- (SMACK-117) PacketWriter never terminates daemon threads.
- (SMACK-113) Once a debugger gets closed it still collects packets - OutOfMemory problem.
- (SMACK-102) Add methods to get all packet providers.
- (SMACK-95) Add group chat invitation support as a Smack Extension.
- (SMACK-93) New debug window with many enhancements.
- (SMACK-110) Added keep-alives so the TCP-IP timeouts wouldn't break connections to a server.
- (SMACK-101) Add version number information to API.
- (SMACK-96) Make AndFilter and OrFilter chainable.
- (SMACK-108) Handle multiple presences when a user is connected from different resources.
- (SMACK-111) Add listener support for new connections.
- (SMACK-92) Add support for "Discovering Support for XHTML-IM".
- (SMACK-106) Chat objects no longer have to depend on a threadID (this is settable).
- (SMACK-120) Chat.getChatID() is now Chat.getThreadID().
1.2.1 - September 28, 2003
- (SMACK-79) Added XHTML message support as a Smack extension, which allows sending
richly formatted messages.
- (SMACK-88) Fixed bug with parsing registation packets that contain extra data.
- (SMACK-90) Added support for getting registration instructions.
- (SMACK-85) Exceptions in the PacketWriter now correctly generates a connection
error event.
- (SMACK-84) Added isSecureConnection() method to XMPPConnection class.
- (SMACK-86) Added isJoined() method to GroupChat class.
- (SMACK-87, SMACK-82) Added the following methods related to rosters:
Roster.contains(String user), Roster.getEntry(String user),
RosterGroup.getEntry(String user), Roster.removeEntry(RosterEntry entry).
- (SMACK-73) Fixed bugs handling roster remove and update operations.
1.2.0 - August 29, 2003
- ! 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).
- ! 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.
- Fixed IQ error sub-packets.
- The default packet extension handler didn't deal with empty
elements well and also had a bug with attribute handling.
- Added a ConnectionListener feature which allows clients
to be notified of normally closed connections, and connections
closed due to errors.
- Fixed bug where the roster list could become corrupted after
moving a user back and forther between groups.
- Fixed bug where in some cases presence packets were not getting
tracked by the Roster class correctly.
- RosterListener has a new notification method that is called every time
the presence of a user in the roster is updated.
- Added Roster.getEntries() method to return all entries in the roster.
- Added RosterGroup.contains(String) method to check to see if an XMPP
address is part of the group.
- Minor fixes to Javadocs.
- Content can be copied and cleared from the debug window using
a pop-up menu.
- The Chat constructor that took an existing chatID as an argument
did not propertly initialize support for message listeners.
- Added support for anonymous logins.
- IQ is now an abstract class.
- Fixed bug where XHTML messgaes could cause parsing errors.
1.1.1 - June 25, 2003
- Setting Object packet properties was broken.
- Added getRoom() method to GroupChat.
1.1.0 - June 19, 2003
- New system to handle custom IQ packets and custom packet extensions through
the new provider sub-package.
- Added packet filters for packet extensions.
- Added additional options for responding to subscription requests.
- Added method to retrieve the roster item count from roster packets.
- Added ability to set the ItemStatus on a roster packet.
- Added remove option to roster packet.
- Various documentation fixes/improvements.
- Fixed NullPointer exception on the setName method of the RosterEntry class.
- Groupchat class was listening for wrong message types -- fixed.
- Changed properties element name to "properties" instead of "x". Note: 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.
- Turning on debugging via a system property wasn't working.
- Fixed spelling error in Roster class method name.
- Fixed stream not being closed properly.
- The "to contains" and "from contains" filters now ignore case.
1.0.1 - April 30, 2003
- Fixed bug that caused applets using Smack to crash with a security exception.
1.0.0 - April 25, 2003
- Initial official release.