CHANGELOG - joscar 0.9.3
AOL Instant Messenger protocol library for Java
(C) 2002-2004 The Joust Project

--------------------------------------------------------------------------------

version 0.9.3, 29 Sep 2003

New Features and Enhancements:

- Implemented AOL's new Encrypted IM functionality, including the necessary
  data structures and commands to support the encrypted forms of IM, file
  transfer, direct IM, Get File, and chat rooms. (See JoscarTester demo for
  implementation.)
- Implemented Trillian Secure IM (see JoscarTester demo).
- Improved support for "extra info" (new buddy icon system, iChat availability,
  AIM Expressions).
- Added functionality to resume file transfers (namely, the FileTransferHeader
  types involved).
- Created new GetInfoCmd, a new, faster way to retrieve a user's info and away
  message. (The old GetInfoCmd implementation was moved to OldGetInfoCmd.)
- Added GetRoomInfoCmd as a more stable method of joining chat rooms to which 
  you were invited. (Thanks to Stephen Flynn)
- Added support for new "short capability blocks."
- Implemented new AIM 5.2 authorization password hash algorithm.

Bugfixes and Other Updates:

- Clarified JoinRoomCmd documentation to indicate more clearly when it should
  and should not be used.
- Fixed javadoc for FullUserInfo.getWarningLevel() to say that it returns the
  warning percentage times 10.
- Fixed a few bugs found by FindBugs and some minor bugs found by
  InspectionGadgets.
- Removed all documentation references to SnacProcessor.
- Added ant task "run-demo" to run the JoscarTester demo.
- Updated SNAC family versions and IM "features" block for AIM 5.2.

--------------------------------------------------------------------------------

version 0.9.2, 26 Jun 2003

- The demo (JoscarTester) packaged with joscar 0.9.1 would not run due to some
  leftover testing code. It has been removed and the demo works again. (Thanks
  to mr228@cornell.edu for reporting this.)
- Javadoc for the ratelim package has been added.
- joscar's Ant build file now uses a custom task (JoscarVersionTask) to
  dynamically build and query JoscarTools for the version of joscar being
  built.
- ClientSnacProcessor no longer prints to the console as it did in two places
  in joscar 0.9.1.
NOTE: See previous (0.9.1) change log entry below for significant changes since
      0.9.0. Version 0.9.2 is mainly a bugfix release for 0.9.1.

--------------------------------------------------------------------------------

version 0.9.1, 20 Jun 2003

- Several classes were moved between packages to fix dependency cycles
  (thanks to JDepend).
- FlapProcessor no longer uses a default FlapCmdFactory, to prevent the flap
  package from depending on the flapcmd package.
- JoscarTools.getVersionString() returns the right number (thanks to Sam).
- Implemented several performance/memory enhancements thanks to Elias Ross.
- Implemented rate limiting (net.kano.joscar.ratelim) thanks in part to
  David Walluck. Both rate monitoring and automatic rate limit avoidance
  (in the form of a SNAC queue) are supported.
- Added a means for listening for all incoming SNAC responses
  ("addGlobalResponseListener") and all outgoing SNAC requests
  ("addGlobalRequestListener") in a SnacProcessor.
- Almost all listener callbacks were moved so as not to occur while
  holding (publically accessible) locks. This change should fix deadlock
  problems. (Thanks to Elias Ross for his report and to Doug Lea for his
  copy-on-write List and Set implementations.)
- Thanks to Elias Ross, FLAP sequence numbers now wrap correctly.
- Split up client and server SNAC connections; new classes are
  AbstractSnacProcessor, ServerSnacProcessor, and ClientSnacProcessor.

--------------------------------------------------------------------------------

version 0.9, 16 May 2003

- Initial public release
