Program: RMIWatch

Here’s a program I put together while teaching Java courses for Learning Tree (http://www.learningtree.com). In one exercise, each student starts the RMI registry on his or her machine and uses Naming.rebind( ) (as in Section 22.4) to register with it. Some students come up with interesting variations on the theme of registering. So this program contacts the RMI registry on each of a batch of machines, and shows the instructor graphically which machines have RMI running and what is registered. A red flag shows machines that don’t even have the registry program running: a black flag shows machines that are dead to the (networked) world.

This program also uses many ideas from elsewhere in the book. A Swing GUI (Chapter 13) is used. The layout is a GridLayout (discussed briefly in Section 13.3). A default list of machines to watch is loaded from a Properties object. (Section 7.8). For each host, an RMIPanel is constructed. This class is both a JComponent (Section 13.2) and a thread (Section 24.1). As a JComponent, it can be run in a panel, and as a thread, it can run independently and then sleep for 30 seconds (by default; settable in the properties file) so it isn’t continually hammering away at the RMI registry on all the machines (the network traffic could be awesome). This program combines all these elements, and comes out looking like the display in Figure 22-3 (alas, we don’t have color pages in this book).

Figure 22-3. NetWatch watching the class

Example ...

Get Java Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.