Introduction

The ClassMan toolkit is a set of utility classes that enable ClassLoader hierarchies to be constructed from xml configurations. The toolkit supports hierarchial ClassLoaders and ClassLoaders defined by directed graphs via the use of "Join" ClassLoaders that can have multiple parents. This results in construction of a ClassLoader lattice.

Each non-Join ClassLoader can be defined in terms of;

  • Entrys: URLs designating either a directory or a file
  • FileSets : Sets of files defined in a manner similar to Ants Filests.
  • Extensions : Definitions of Extensions, aka "Optional Packages".

Each ClassLoader also has a name and a parent. The parent is the name of the parent ClassLoader. Usually the parent ClassLoaders are one of the predefined ClassLoaders. The predefined are passed into the ClassMan toolkit from external application code.

The predefined ClassLoaders are generally named according to a pattern that places the '*' at start and end of name. ie "*myPredefinedClassLoader*". Many containers pass in the following predefined Classloaders.

  • *system*: The System ClassLoader.
  • *common*: Common between container and client code.
  • *shared*: Shared between all client code.

For an example ClassLoader hierarchy see the website for Myrmidon , an Ant2 proposal.

The commented DTD describes the descriptor format explicitly. However if you prefer to learn by example then you can look at a sample descriptor and its explanation.

If you need to embed the Toolkit in your own application it is recomended that you look over the Embedding HOWTO .