Java Class Seperation for Multi- Application Hosting

Java applications are usually executed within a Java Virtual Machine (JVM), which is part of the Java Runtime Environment (JRE). In this scenario, hosting more than one application at the same time within a JVM is not originally supported, and customizable mechanisms to manage different application classes and related byte codes with the same class name concurrently are still lacking. In this paper, we present a novel approach to Java class separation used to transform the native JVM into a multi-application environment. Our proposal is based on introducing so called class spaces, which enable class selection using properties other than the class name and which arrange also loaded classes within a JVM in a customizable manner. The feasibility of the approach is demonstrated by presenting a middleware framework in which applications needing the same classes in different versions are configured dynamically and hosted concurrently.