Dunno how Adrian did it for MC, but I suppose it just
sweeps trough some given .jar list on deployment and loads
those classes.
The basic details of classloading (cl) are hidden in BaseClassLoader,
where the spi / user api is defined as a classloading policy.
Meaning users don't touch / manage cl details,
they only provide appropriate cl policy(-ies).
It's the policy that determines delegation, resource filtering, caching,
blacklisting, ...
The actual - used in JBoss5 - cl policy is based on VFS.
Afaik classes are loaded on demand.
e.g. when MC starts some bean/service MyFooBar in foobar-jboss-beans.xml
A very short and simplistic explanation of what we do in new cl layer. ;-)