The purpose of the JBoss ClassLoader subproject is to provide the actual runtime ClassLoading mechanism. It provides the ClassLoader implementation, but this has largely been designed to be invisible.
Instead people that want to write their own ClassLoader implementations will write a ClassLoaderPolicy which provides a simpler api for locating classes and resources and specifying other rules associated with the classloader.
Direct users of this level of abstraction instantiate a ClassLoaderPolicy and register it with a ClassLoaderSystem to create a ClassLoader. They may also create a ClassLoaderDomain to partition theClassLoaderSystem.
This layer also includes the implementation of things like the DelegateLoader model, classloading or resource filters and parent-child delegation policies.
The runtime is JMX enabled to expose what exists, what policy is getting used for each classloader along with classloading statistics and debugging methods to help determine where things are loaded from.