Catch a lot of old URL's and update them. Also remove a couple of old files that aren't used.
Tidy up of the client interface code - more commonly known as the "right hand side of the server". Right since the start the filter side of the server has been nice and tree like - every Filter sent data to another Filter. At the top of the tree there was a "special" Filter known as the RootFilter, which to the other Filters just looked like a normal Filter. This was nice, and simple, and expandable. The Client Interface on the other hand was messy. The root filter had some hacky wrapper threads which pulled from a queue and pushed to the relevant client interfaces (one for real time stuff, and the other for databases). There was no simple room for expandability - it was all hardwired to do just what was needed at the time. This commit changes that. A Client Interface now connects to another Client Interface, with a special one being found in the RootFilter (yes, maybe that needs a name change now :-). So we can chain client interfaces, and move other bits and bobs around in the server - for example, alerting no longer needs to be connected to the Client Interface, it can connect straight to the RootFilter (or, wherever the config tells it ;). Hopefully this sanitizes the underlying layout of the server a bit. As a final note, I dropped the DBInterface. This used to insert data in to a MySQL database. We've long since stopped using that, and it's fallen behind and is way out of date. For now, it's gone in to the attic.
Changed the server to use the external util package. Quite a minor change, but does affect a lot of files.
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 ;)
It seems just catching org.omg.CORBA.COMM_FAILURE wasn't enough. This used to work, so I'm putting it down to a change in JacORB. Odd though :) Without this fix, when a Corba-based client disconnected the Queue's it was associated with were not closed. This result in the Queue's overflowing and flagging up some alerts.
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.
Added finalizers to the debugging. This could be very useful to know.
When a CORBA Client disconnects it is caught in the DataHandler. But this would leave the ControlHandler just lurking about, so we now explicitly make an effort to close it down, and disconnect it from the ORB.
The whole server package structure has been changed. Old Package: uk.ac.ukc.iscream.* New Package: uk.org.iscream.*
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.
We need to shutdown the Monitor's when closing down, otherwise the Queue's never get destroyed... and just sit there idle'ing away :)
A bit of error handling. If the client closes "uncleanly" we get this exception thrown my JacORB.
Just a mental reminder really.... this class isn't finished :)
The original "all in one" class didn't work quite right, so it's been broken down into two classes; one for control, and one for sending data. The whole lot functions in a very similar way to the TCP setup, except that communication happens over CORBA.
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.