Centralization combines multiple processes into a single process. RMI removal replaces remote method invocations (RMIs) with local method invocations that simulate RMIs. These transformations facilitate testing, debugging, and model-checking of distributed Java programs. This distribution is a re-implementation of ideas described in the SPIN 2001 paper listed below. The main change in the new implementation is that it is done at source level (instead of bytecode level). The implementation uses the Kopi compiler, which is included in this distribution (that's why the files are relatively large, roughly 2MB). Two packages are available: centralization alone, or centralization + RMI removal. (RMI removal is not available by itself, because it doesn't make sense to peform RMI removal without first performing centralization). Please see the README files for instructions.
Centralization (size: 2.3 MB)
Centralization and RMI Removal (size: 3.1 MB)