Fix compile problems on j2se 1.5 - our Queue class conflicted with one in java.util. Also fix an API issue when running the server on Windows - the println method sends '\r\n' on Windows instead of '\n' on Unix, which confuses applications such as ihost. Patch provided by: skel
Check packet isn't null. Another one of those "shouldn't happen but did" things ;-)
Catch a lot of old URL's and update them. Also remove a couple of old files that aren't used.
Fairly major commit. This will break the current version of ihost, but this had to be done really to give Pete something to test the new ihost against. The main change here is removal of the TCP Heartbeat functionality from the filter. This meant the following features stopped working :- - Heartbeat testing - Configuration checking - Service checks The heartbeat testing, specifically the monitor, now looks at the presence of UDP packets instead. Before it just looked for the presence of a TCP heartbeat packet, so the change their is fairly negligible. Of course this means heartbeat testing now relies on the UDP working... but I don't see this as a problem. Configuration checking has been repositioned in to the filtermanager. This is a backwards compatible change - the filtermanager should still perform as it should for older hosts. But now there's an extra command to check the configuration is up-to-date, with a similar format to the old TCP protocol in the filter. (although we may optimise this soon) The service checks are broken. This isn't a major issue for us as they were pretty useless in the first place. The concept is good, but the checks are just far too primitive. I expect at some point I'll work on a seperate component that just monitors services, which will replace this function. Further changes in the server include removal of the key checking code, as this relied on a bolt on to the TCP heartbeat protocol to ship the key. This got more akward than originally planned, so I'm happy to drop the idea. In the long term we hope to replace this with a public key systems for signing and even encryption. Finally, general tidy up to remove other bits of code that check for TCP heartbeat packets when they don't need to any more.
Changed the server to use the external util package. Quite a minor change, but does affect a lot of files.
Changed to use the XMLCache.
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 ;)
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.
Implemented Queue size limiting.
The whole server package structure has been changed. Old Package: uk.ac.ukc.iscream.* New Package: uk.org.iscream.*
Now makes use of the ConfigurationProxy.
Given all the classes that extend Thread a name using Thread.setName(). It is only representative as far as it will tell us which class the Thread is, but this will go some way to aiding debugging. If time permitted, more effort could be taken to name each thread according to what it was dealing with.
Changes due to the alterations in the XML creation code. The XMLPacketMaker now only needs to be created once, and can then be called multiple times to create XML packets. This should be more efficient in the long run.
Further attempts to sort this class out. This has gone very much to the extreme now. Every access to the lists and hostmap is synchronized on this object. This means that only one of the bits may be executed at once. Whilst this may clearly solve some problems, it does open this class to becoming a major bottleneck, and could possibly lead to deadlock externally (although I think our Queue's avoid this issue).
Just for the record, Collections.synchronizedList() doesn't work :) I've now manually synchronized the methods that access the lists and map, and put the sections of the run method that do the same in synchronized blocks. This should work, I hope. A lot of hoping seems to be going on here :)
Added a try catch section for creating the XMLPacket. Hopefully fixed the JVM deadlock/crash thing. Fixed the problem with clients not receiving Queue data if they've called the SETHOSTLIST command on a Handler.
Some ClassCastExceptions going on that only just came up when the client got to 1.1 protocol :)
Changes to fix a bug where the server wouldn't send queueStat packets if the client had set a hostlist.
Oh, some nasty concurrency stuff going on in here. If I've understood the API correctly what I've done should make the Lists's and Map's thread safe, without worrying about synchronize() bits everywhere.
Modification to the Queue system; - interval of monitor is now configurable. - attempt to identify each Queue better, although this is still hard.
Now monitor the Queue here every 60 seconds, reporting back to the Queue in the PacketSorter class.
All of these classes have been javadoc'd and commented.
General bug fixing. It now works for the features it should.
Now supports "all hosts".
Initial Checkin. This class sends XML packets to those clients that have shown interest in receiving it. This should make using the client more scalable.
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.