The persistent RMI activation daemon, support RMI object activation
(package java.rmi.activation.*).

Copyright 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Please report bugs at http://www.gnu.org/software/classpath/bugs.html

Usage: rmid <options>

 where <options> includes:
  -port N        Start the service on the given local port. If this key
                 is not specified, the service starts on the port 1098.
  -verbose       Log registration events to stdout.                
  -stop          Stop the running  activation service at the given port.
  
  -transient     Start transient activation service that does not write any
                 data to the disk. Such service looses the stored activation
                 descriptors, if restarted. If this key is not specified, the 
                 persistent naming service is started.
  -restart       "Cold start:, clear the activation descriptor database, if any.
  -folder Folder Store the persistent descriptor file in the given folder. If this
                 key is not specified, the file with persistent activation 
                 information is stored into the current folder.
                 
All activation groups are activated on the same virtual machine, where the
daemon is running. For security reasons, all the classes, required for 
activation, must be available in the classpath of that machine. 
                 