A system and method for providing dynamic class reloading using a modular, pluggable
and maintainable class loader is described. Each application in an application
server (or alternatively in any implementation) may include a dynamic class loader
module. The class loader module may include a hierarchical stack of class loaders.
Each module in the application may be associated with its own class loader. Each
class loader may be responsible for loading one or more classes. When a class is
changed, the changed class may be detected by the class loader module. Any notification
for a class change may come to the class loader controller so that the concerned
class loader can be replaced. The class loaders for all classes that depend on
the changed class may also be replaced. The replaced class loaders may then reload
the affected classes.