Mechanisms for Secure Modular Programming in Java
We present a new module system for Java that improves upon many of the
deficiencies of the Java package system and gives the programmer more
control over dynamic linking. Our module system provides explicit
interfaces, multiple views of modules based on hierarchical nesting,
and more flexible name-space management than the Java package system.
Relationships between modules are explicitly specified in module
description files. We provide more control over dynamic linking by
allowing import statements in module description files to require that
imported modules be annotated with certain properties, which we
implement by digital signatures. Our module system is compatible
enough with standard Java that we have implemented it as a
source-to-source and bytecode-to-bytecode transformation wrapped
around a standard Java compiler.