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. Be nice if I tried to resolve the NEW name :)
An efficiency gain hopefully. Doing a CORBA lookup every time is a bit OTT. Now we just lookup the name from the config, and only get the CORBA ref if it's been changed.
The whole server package structure has been changed. Old Package: uk.ac.ukc.iscream.* New Package: uk.org.iscream.*
Modified to use the ConfigurationProxy. Also took the opportunity to fix some of the issues with TCP communicates - specifically checking for nulls. This makes the configuration more dynamic, but do note that the TCP/UDP ports are only set on startup. This is because it would require lots of extra work to "change" the ports that the Filter is bound to on the fly.
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.
Added a try catch section for creating the XMLPacket.
eek... grammer boy !
Obviously it wasn't XML ....
made it FAR more understandable for a developer to code something which sends packets through the system! (though I couldn't compile here, so there maybe syntax errors) ;p
Pah... changed it and it was still wrong :P
Removed the ambiguity of 'filtering' and 'rejecting' packets.
General tidy up, specifically focussing on the verbosity of logging messages.
Some tidying up.
Changes to reflect move of Component, ComponentStartException, and the ReferenceManager from util to componentmanager.
Each XML String now has linefeed characters removed from it. This results in a simplified protocol between the clientinterface and client, as well as potentially reducing the size of each XML String.
A structural change to the Filter. The old setup looked like this; UDPReader ------> FilterThread (thread) --> (parent) TCPReader ------> FilterThread (thread) --> (parent) FilterServant --> FilterThread (thread) --> (parent) Seeing this from a threaded point of view, each time a packet came in (through whatever means - UDP, TCP or CORBA), a FilterThread instance was created to deal with it. If the link to the parent was slow this resulting in a build-up of FilterThreads all waiting to talk to the parent - and there is only one actual parent object, with a synchronised thread, so they have to queue up anyway. As a result of this, the following change has been made. UDPReader -------\ TCPReader ----------> Queue (single) >-- FilterThread --> (parent) FilterServant ---/ In this setup, each of the three objects that generate packets only see the single instance of a Queue. They all add their data to this Queue, and then carry on with the task of listening. The FilterThread (having it's role changed slightly) now acts as a consumer of the Queue, in that it grabs data from the Queue and deals with passing it on to the parent. This setup should be more efficient in the long run, especially under a high load situation. The only problem could be the Queue growing to an unlimited size, but this is a Queue design issue.
componenterized the filter and tidied all child classes, no all conform to toString standard
Added the new Plugin Manager bits.
removed some silly debug line that was annoying the pants off Tim!
Changed package structure uk.ac.ukc.iscream.refman and xml -> uk.ac.ukc.iscream.util
Changed all classes so that references to the Logger and ConfigurationManager are no longer passed around between classes. All of the classes now utilise the new ReferenceManager, which makes life much easier. Also tidied everything so that they all use the same conventions for attributes, namely the _ prefix to the name.
Update for package move. Fixed bug in constructors.
Made changes to fit into the new package structure. Also made all classes, namely the UDPReader and FilterThread, conform to the Template class specification.
Yuck, a System.out.println() :)
Altered the printAll() method in the XMLPacket. Added logging facilities to XMLPacketMaker.
Altered both UDPReader and FilterThread such that a reference to a Logger is passed to the FilterThread when it is constructed.
Modified the verbosity of the Logger messages that may occur in the UDPReader thread.
Altered UDPReader and FilterThread so that the UDP packet data is now passed via the FilterThread's constructor.
Added parent filter passing, so the packet can be passed on. Also had to make a quick fix because a null pointer exception was being thrown on the substring() part. I think this was because when a message came in over CORBA rather than UDP it didn't have the 0 (byte 0 that is) at the end.
Gave the UDP and XML processing classes a new home with the filter. UDPReaderThread has been renamed to FilterThread XMLPacketParser has been renamed to XMLStringParser (as that's what it does!)
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.