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.
Fix for upgrade to Jacorb 1.4.1. It's our fault actually, we've not been correctly using the names when binding to the Naming Service. This needs to be fixed properly at some point, but for now I've changed changed the code so it "means" the same as it did before the upgrade.
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.
Opps... if both were null it would try and start them :)
Arg.. more bugs. Need to check both independently.
Now only enforces a dependency on either the Client Interface or the Database Interface if it is configured. This ensures that the startup order is still correct (which it wouldn't if the checks were removed), but also doesn't enforce the checks when one of the interfaces is disabled.
Some debugging information, so we can closer track what's happening.
Added queue size limit. This is provisional, if it is a success it will be mirrored across the whole server.
The whole server package structure has been changed. Old Package: uk.ac.ukc.iscream.* New Package: uk.org.iscream.*
Of course, being my usual sensible self, I potentially had a situation where by I would log to the Logger than the Logger isn't running. Clever eh ? :)
We weren't grabbing a ReferenceManager reference until startup, although there is no reason (unlike the Logger) why we can't grab it on construction.
New dependency checking. The old method was to attempt to start a Component, and if it failed, it probably had a depdency problem. The approach now is to ask the Component to perform a dependency check first, then if this suceeds, have a go at actually starting it up. The actual dependency check is a bit neater and more precise than before, and should be much more fool proof. The order the components are specified in the default.properties file is now irrelevant, although the "correct" order would certainly increase booting time.
Now makes use of the ConfigurationProxy.
now doesn't worry if it can't find certain configuration options mainly if it hasn't got a configured interface as it just crashed and burned up till now if you selected NOT to start one I'm sure it used to work, but it didn't today so I changed it ;)
now only uses the reference manager on calls to start()
Modification to the Queue system; - interval of monitor is now configurable. - attempt to identify each Queue better, although this is still hard.
Now we monitor the Queue here every 60 seconds.
A tidy up of the configuration getting section.
Removed temporary code.
Best catch some exceptions... correctly.
Best catch some exceptions.
TEMPORARY: Added some temporary code to log the queue status. Messy, and will definately need to be fixed. (error in previous commit)
TEMPORARY: Added some temporary code to log the queue status. Messy, and will definately need to be fixed.
Changes to reflect move of Component, ComponentStartException, and the ReferenceManager from util to componentmanager.
Changes to reflect move of Component, ComponentStartException, and the ReferenceManager from util to componentmanager.
Implemented use of the CIWrapper class, and the Queue.
fixed naming problem by only using the static
fixed some silly bugs
fixed mistake where it creates both interfaces but should only create one
supports not starting particular interfaces.
updated code componeterized the system
Modified to use the dbinterface
modified to use the ClientInterface system
added line to redefine the toString() its temporary...but what the hell...when we do our funky class to have a standard toString() it might be better! ;-p
Fixed error of wrong class name
Updated to use the uk.ac.ukc.iscream.util.ReferenceManager
Package updates.
Made changes to fit in with the new package structure. Also made sure all files conform to the template class.
Whoops, should have changed the class header with the filename :)
Main method for a Root Filter. The Root Filter lives at the root of the filter system, and will ultimately deal with the deliver of data into the system.
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.