Added a method to allow the UDPReader to handle XML Strings from other UDPReaders.
Added logging features.
Placed the creating of a UDPReaderThread back into the main loop.
Modified the UDPReader class to accept a Logger and port number as a constructor argument (as opposed to command line parameters). The main method has been replaced with a run() method so that the gubbins of this program can be run as a thread from a Filter class.
Removed the System.gc(); - no need for explicit GC.
UDPReader and UDPReaderThread have been altered to prevent a serious problem whereby the system ran out of free memory after a certain amount of UDP packets had been received. Testing with XMLSender2 has revealed that this problem has been solved. There is now little chance of the UDPReader rejecting packets as it queues each arrival straight to the UDPReaderThread, thus making "event storms" managable. In fact, the queuing nature may even assist in quenching such problems.
Wrapped the DatagramSocket part in a try { } so that a warning is given when some other process is already listening on the same port.
Changed a lot of parts of UDPReader, UDPReaderThread, XMLPacketMaker, XMLPacketParser and XMLSender so that they all work together. XMLSender is just a summy program to send UDP data to the UDPReader.
The UDPReader class contains a main method for running on a machine to accept the UDP XML data coming in. Once it receives something, it passes it on to a separate UDPReaderThread class to try and prevent the loss of packets.
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.