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

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

version 0.9.3, 29 Sep 2003

- The new password hash system in AuthRequest has not been thoroughly tested and
  could conceivably not work in all cases. This is unlikely, however.
- Several API changes were made for this release, namely involving instant
  messages and retrieving a user's info/away message. The changes are subtle
  (but important) and it should be easy to translate old code to fit the new
  API.
- Utility classes for "extra info"-related features such as AIM Expressions and
  iChat availability messages are not part of this release. Somewhat ugly byte
  manipulation code may be in order to use these features.

Old release notes that still apply:

- Checking AOL Mail is not implemented as using such functionality over the
  OSCAR protocol is ludicrous. They may be implemented in the future, if
  someone really wants them there.
- Functionality mimicking the official AIM clients' "rate bar" is not yet
  implemented because the "current rate," as defined by the protocol, does not
  change with time like the "rate bar" does. The algorithm is probably one of
  the following two means of deriving a "live" rate average:
    - Determining what the rate would be if the last message sent were instead
      sent at the current time, or
    - Determining what the rate would be if a new message were sent at the
      current time
  The latter is implemented as RateClassMonitor.getPotentialRate; the former is
  not yet implemented.
- A rate class's limited status will only be updated when certain events occur,
  like sending a command or calling isLimited. Thus, no-longer-rate-limited
  status callbacks will not occur immediately when the limited status is
  removed. If those callbacks matter to you, I suggest running a timer to call
  isLimited frequently (or after getOptimalWaitTime only when limited).
- All mutable classes are completely thread-safe. All immutable classes are
  inherently so. These facts will be more extensively documented later.
- JoscarTester is an awful demo. A tutorial and better demo will be released
  sometime in the near future.

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

version 0.9.2, 26 Jun 2003

NOTE: See previous (0.9.1) release notes below for release notes. Version 0.9.2
      is mainly a bugfix release for 0.9.1 and all release notes in 0.9.1 still
      apply to 0.9.2.

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

version 0.9.1, 20 Jun 2003

- Checking AOL Mail is not implemented as using such functionality over the
  OSCAR protocol is ludicrous. They may be implemented in the future, if
  someone really wants them there.
- Functionality mimicking the official AIM clients' "rate bar" is not yet
  implemented because the "current rate," as defined by the protocol, does not
  change with time like the "rate bar" does. The algorithm is probably one of
  the following two means of deriving a "live" rate average:
    - Determining what the rate would be if the last message sent were instead
      sent at the current time, or
    - Determining what the rate would be if a new message were sent at the
      current time
  The latter is implemented as RateClassMonitor.getPotentialRate; the former is
  not yet implemented.
- Some documentation may still refer to SnacProcessor even though that class has
  been refactored into three separate classes. Generally when one sees
  SnacProcessor in the documentation one should think of ClientSnacProcessor or
  its parent, AbstractSnacProcessor.
- All mutable classes are completely thread-safe. All immutable classes are
  inherently so. These facts will be more extensively documented later.
- A rate class's limited status will only be updated when certain events occur,
  like sending a command or calling isLimited. Thus, no-longer-rate-limited
  status callbacks will not occur immediately when the limited status is
  removed. If those callbacks matter to you, I suggest running a timer to call
  isLimited frequently (or after getOptimalWaitTime only when limited).

Old release notes that still apply:

- File transfer resuming has not yet been tested, and such functionality is
  thus not yet documented. It should be easy to figure out on your own with
  some simple testing.
- JoscarTester is an awful demo. A tutorial and better demo will be released
  sometime in the near future.
- Performance while writing to outgoing streams in such cases as file transfer
  headers and SNAC commands may not be optimal. (Most of the data in said
  commands may be copied up to three times before being sent.)
- Other performance issues exist with the Get File directory entry list class.
  This is due to defensive copying of the entry list arrays. This may be fixed
  in the future if it becomes a problem.

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

version 0.9, 16 May 2003

- First public joscar release!
- SNAC request cleaning has not yet been tested. SNAC request objects may stay
  in memory forever. This will obviously be fixed in a future release.
- File transfer resuming has not yet been tested, and such functionality is
  thus not yet documented. It should be easy to figure out on your own with
  some simple testing.
- JoscarTester is an awful demo. A tutorial and better demo will be released
  sometime in the near future.
- Performance while writing to outgoing streams in such cases as file transfer
  headers and SNAC commands may not be optimal. (Most of the data in said
  commands may be copied up to three times before being sent.)
- Other performance issues exist with the Get File directory entry list class.
  This is due to defensive copying of the entry list arrays. This may be fixed
  in the future if it becomes a problem.
- Even if logging is off, many StringBuffer and String objects are created and
  passed to loggers within FlapProcessor and SnacProcessor. This will be fixed
  in a future release.
- SNAC request ID's may reach invalid SNAC request ID values. I do not know
  what these values are, but I think they are high and one should not worry
  about them too much. (If you're getting odd Connection Reset errors, this may
  be the cause.)
- Checking AOL Mail and the "Stats" SNAC families are not implemented as they
  are stupid or useless (respectively). They may be implemented in the future,
  if someone really wants them there.

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