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 ;)
Some error checking to handle client interfaces disconnecting without any warning. In fact, this shouldn't happen, but it'd be nice if it was cleanly dealt with :)
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.
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.
Made a mistake in the last commit, it's late :/
Moved the queue assignment to the constructor.
Changes to reflect move of Component, ComponentStartException, and the ReferenceManager from util to componentmanager.
Just an efficiency change.
What can I say ? I should compile prior to checkins....
A temporary class. Sits between a Queue and a ClientInterface. The CI needs to be altered to pull data from a Queue, and when this happens this class can be removed.
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.