A Java Framework for Building and Integrating Runtime Module Systems

  • Olivier Gruber
  • Richard S. Hall
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4276)


We present the design of core mechanisms for building interoperable runtime module systems. Runtime modules are the cornerstone of component platforms, such as Eclipse Rich Client Platform or Apache Geronimo, since they provide components with their namespace for Java classes and resources. Unfortunately, much diversity exists today regarding module systems, thereby hindering the creation of a global Java ecosystem for components. Our approach proposes a first step towards a solution since our design can model and integrate different module systems such as traditional Java class loaders, Geronimo Beans, or the OSGi framework. We propose low-level core mechanisms, both modular and flexible, that enables building such module systems from reusable and adaptable mechanisms. Furthermore, once module systems are built with our core mechanisms, our approach enables their integration within a single runtime environment. This is especially important at a time where different open-source component platforms, as well as the products built upon them, are facing the integration challenges between heterogeneous module systems. Our design is the basis of the current implementation of Felix, within the Apache community; it illustrates an integration path towards a global Java ecosystem for components.


Module System Content Loader Resolution Process Module Content Core Mechanism 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    OSGi Alliance. Osgi service platform core specification release 4 (2005), http://www.osgi.org
  2. 2.
    Apache Software Foundation. Apache geronimo (2005), http://geronimo.apache.org/
  3. 3.
    Apache Software Foundation. Apache maven project (2005), http://maven.apache.org/
  4. 4.
    Apache Software Foundation. Xbean framework (2005), http://www.xbean.org
  5. 5.
    Apache Software Foundation. Geronimo beans wiki (2006), http://wiki.apache.org/geronimo/GBeans
  6. 6.
    Eclipse Foundation. Eclipse platform (2004), http://www.eclipse.org
  7. 7.
    Gruber, O., Hall, R.S.: A java framework for runtime modules. In: Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (2006)Google Scholar
  8. 8.
    Hall, R.S.: A policy-driven class loader to support deployment in extensible frameworks. In: Emmerich, W., Wolf, A.L. (eds.) CD 2004. LNCS, vol. 3083, pp. 81–96. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  9. 9.
    NetBeans. Netbeans module (plug-in) and rich client application development (2006), http://platform.netbeans.org
  10. 10.
    Java Community Process. Jsr 277: Java module system (2005), http://www.jcp.org/en/jsr/detail?id=277
  11. 11.
    Java Community Process. Jsr 291: Dynamic component support for java se. (2006), http://www.jcp.org/en/jsr/detail?id=291

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Olivier Gruber
    • 1
  • Richard S. Hall
    • 2
  1. 1.IBM Watson Research CenterHawthorneUSA
  2. 2.Laboratoire LSRGrenoble UniversityGrenobleFrance

Personalised recommendations