--------------------
What is the "Juicer"
--------------------

The "Juicer" is a simple application for stressing a Remote Method Invocation (RMI)
implementation.  It consists of an applet and a server component.  Feedback is displayed in 
a text area on the applet and through the standard output and error streams on the server.  Upon 
pressing the Start button on the applet, the following will happen...

	1.  A certain number of apple objects will be passed as parameters to a remote
	method on the server.  Each apple object will be passed in a separate remote call to 
	this method.

	2.  On the server, the remote method that is called, spawns a new thread.  Thus the
	number of apple objects is directly related to the number of threads that are
	spawned on the server.  (The number of threads that are specified in the configuration
	of the applet determines the number of apple objects that are created.)

	3.  Within each thread, the following will happen...

		a.  An array of AppleEvent objects is created and sent as a parameter
		to the apple object's notify() method.

		b.  Another remote method, newOrange(), is called on the apple object.
		This method returns an Orange object.

		c.  An array of random integers is created, an OrangeEcho object is created.

		d.  The remote method. recurse(), is then called on the orange object.  The
		array of integers and the OrangeEcho object are passed as parameters.  Within
		this method, the echo object's recurse() method is called which decrements
		the level (of recursion) parameter by 1 and calls the orange object's recurse
		method again.  These remote recursive calls continue until orange.recurse()
		receives a recursion level of 0.  Once the recursive calls return, the 
		bits of the integers in the array that was passed in, are inverted and the 
		result is returned to the initial recurse call in the thread on the
		server.  The inverted array is then compared with the original array to verify
		that it was inverted correctly.  If no exception was thrown, and if the 
		# of iterations was set to "forever", then steps (a.) through (d.) are repeated.
