Load classes/resources from a side folder, so that classes of the same package can live in a single jar file.
For example, with the following jar file:
/ +- foo +- X.class +- bar +- X.class
{@link ParallelWorldClassLoader}("foo/") would load X.class from /foo/X.class (note that X is defined in the root package, not foo.X.
This can be combined with {@link MaskingClassLoader} to mask classes which are loaded by the parentclass loader so that the child class loader classes living in different folders are loaded before the parent class loader loads classes living the jar file publicly visible For example, with the following jar file:
/ +- foo +- X.class +- bar +-foo +- X.class
{@link ParallelWorldClassLoader}(MaskingClassLoader.class.getClassLoader()) would load foo.X.class from /bar/foo.X.class not the foo.X.class in the publicly visible place in the jar file, thus masking the parent classLoader from loading the class from foo.X.class (note that X is defined in the package foo, not bar.foo.X.
@author Kohsuke Kawaguchi