Catch a lot of old URL's and update them. Also remove a couple of old files that aren't used.
Util package has been pulled out of the server. Next step will be to modify the server and conient (and anything else?) to use this instead. New package name is uk.org.iscream.cms.util. All the java files were moved with a repo copy, so they retain their history.
Added URL to GPL headers.
i-scream is now licensed under the GPL. I've added the GPL headers to every source file, and put a full copy of the license in the appropriate places. I think I've covered everything. This is going to be a mad commit ;)
Some minor javadoc tweaks. The first sentence is now more obvious to the javadoc parser.
Major change in the java package naming. This has been held off for some time now, but it really needed doing. The future packaging of all i-scream products will be; uk.org.iscream.<product>.<subpart>.* In the case of the central monitoring system server this will be; uk.org.iscream.cms.server.* The whole server has been changed to follow this structure, and tested to a smallish extent. Further changes in other parts of the CMS will follow.
More changes to attempt to lock down the Queue problems.
Some further checking to solve deadlock issues. Firstly when checking if the queue is "full", we now do a check for "greater than or equal" to the limit, rather than just "equal". If for any reason it does get over the limit, it'll still get caught. Secondly we no longer check if the queue is of size 0 to do the notify, we just do it anyway. We figure this is probably more efficient than trying to do a massive synchronization block.
These might be better synchronized :)
This changes alieviates a problem whereby the queue state could change between the two lines changed, and result in waiting forever.
This allows another class to specify "RANDOM", and work out what integer value it actually is. This works well in situations where the algorithm is specified in a configuration file, rather than hardcoded.
The whole server package structure has been changed. Old Package: uk.ac.ukc.iscream.* New Package: uk.org.iscream.*
A missed > resulted in naff XML, which resulted in null packets, which resulted in the whole server crashing. This can't be right..... :)
Finally implemented maximum size on Queue's. This is an optional feature, and is only used if the correct constructor is called. For normal use (with no limit), just use the empty constructor; new Queue() For using a limit, use the following constructor; new Queue(int maxSize, int removeAlgorithm) Where; maxSize = the maximum size of a queue removeAlgorithm = Queue.RANDOM, Queue.FIRST, Queue.LAST, or Queue.DROP Queue.RANDOM = Remove a RANDOM item from a full queue when adding. Queue.FIRST = Remove the FIRST item from a full queue when adding. Queue.LAST = Remove the LAST item from a full queue when adding. Queue.DROP = Don't remove, just drop the new item when adding.
Oh, seems you can't escape in XML like that. This is annoying me now !
Oh, got to do some batty stuff.
Oh bugger, that doesn't work with XML.. :) And you don't want to know how long it took me to find that bug !
Deleted "queues" will now be stat'd as "<deleted>" instead of "null".
Added methods to "start a monitor" and "stop a monitor". Also modified the somewhat redundant status() method to give XML status.
Just added a few javadoc comments that were missed.
Added a method to erase the contents of a queue.
Added a releaseQueue() method that will "nudge" a get() method that's blocking.
Some formatting went amiss - blame xemacs !
Added two methods to get the size of a queue.
Uncommented some of the naming stuff, which should have been done already.
Needs to be a public class....
Moved Queue to main source.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.