The main change in this release is that there is a central alarm cache now, instead of having each channel manage a cache to determine if alarms are to be resent or not.
There is a default implementation of this cache which uses a Map to store the last time each alarm message was sent, similar to how AbstractAlarmChannel was handling it. Now the AlarmSender uses the cache to determine if the alarm should be sent through each channel. This eliminates the need for the getLastTimeSent() method and the "record" parameter in the send() method. So now it's simpler to create channels that don't extend AbstractAlarmChannel.
I have also included another cache implementation that uses memcached to store a key for every alarm message sent, with the channel's minimum resend interval as its expiration time. This can be very useful in environments with several applications using jAlarms in case two or more apps send the exact same message and you don't want the alarm to be sent from every app, but rather have all the apps respect the minimum resend intervals (but you do have to set all intervals equally in every app, for every channel that's repeated).
This is the first release made using the mavenized version of the project, which will be the one I maintain from now on.
November 13, 2010 @chochosmx