See ClassWorlds for information about what ClassWorlds actually is.
Within Maven there are several defined realms. Although we will try to protect the core from errant plugins and classloading issues, we can't defend against everything.
root - This is the boot-classpath. Only the bare minimum of items should be placed in here. Enough to get the classloading system up and running. Typically this will be managed by MavenNGServer. By the time the core is accessed, it should be inside a properly configured minimal realm
maven.core - This is the realm for the core. Plugins (including pure Java plugins) SHALL NOT manipulate this realm.
maven.plugin.* - These realms are for plugins. Although it is tempting to place each plugin in a separate realm, it may be far too wasteful. Maven core plugins (i.e. those which the maven.apache.org project has control over may share and manipulate a shared realm. Other plugins may share this realm, but SHALL NOT manipulate it.