A class loader that combines multiple class loaders into one.
The classes loaded by this class loader are associated with this class
loader, i.e. Class.getClassLoader() points to this class loader.
In the case of LivingDoc, you may need this mechanism if you want to include
external class paths to use your own components (since LivingDoc itself is
build extremely extensible). This component is also mainly used by the
SpecificationRunnerBuilder#classLoader(ClassLoader) and the
SpecificationRunnerExecutor to inject classes from external jars into the
executing class loader.
Original code author: Christian d'Heureuse, Inventec Informatik AG, Zurich,
Switzerland, www.source-code.biz
http://www.source-code.biz/snippets/java/12.htm
Modified version: Frantisek Mantlik <frantisek at mantlik.cz>
https://code.google.com/p/swingbox-javahelp-viewer/source/browse/src/main/
java/org/mantlik/swingboxjh/JoinClassLoader.java
Note: This classloader should be improved using different sources like
https://github.com/nurkiewicz/spring-js/blob/master/src/main/java/org/
springframework/instrument/classloading/ShadowingClassLoader.java or
http://yiyujia.blogspot.de/2011/10/java-class-loader-and-static-variable.html