if( null == classpath ) { return anchor; }  ClassLoader base = anchor; Logger logger = getLogger(); Class root = ComponentDirective.class.getName();  try { base.loadClass( root ); } catch( ClassNotFoundException e ) { ClassLoader management = root.getClassLoader(); base = new CompositionClassLoader( logger, name, Category.PROTECTED, management, anchor ); }  URI[] apis = classpath.getDependencies( Category.PUBLIC ); ClassLoader api = StandardClassLoader.buildClassLoader( logger, name, Category.PUBLIC, base, apis ); URI[] spis = classpath.getDependencies( Category.PROTECTED ); ClassLoader spi = StandardClassLoader.buildClassLoader( logger, name, Category.PROTECTED, api, spis ); URI[] imps = classpath.getDependencies( Category.PRIVATE ); ClassLoader impl = StandardClassLoader.buildClassLoader( logger, name, Category.PRIVATE, spi, imps ); return impl;
return getClassLoader( name, anchor, classpath, true );
    public ClassLoader getClassLoader( String name, ClassLoader anchor, Classpath classpath ) throws IOException    {        if( null == classpath )        {            return anchor;        }                ClassLoader base = anchor;        Logger logger = getLogger();        Class root = ComponentDirective.class.getName();                try        {            base.loadClass( root );        }        catch( ClassNotFoundException e )        {            ClassLoader management = root.getClassLoader();            base = new CompositionClassLoader( logger, name, Category.PROTECTED, management, anchor );        }                URI[] apis = classpath.getDependencies( Category.PUBLIC );        ClassLoader api = StandardClassLoader.buildClassLoader( logger, name, Category.PUBLIC, base, apis );        URI[] spis = classpath.getDependencies( Category.PROTECTED );        ClassLoader spi = StandardClassLoader.buildClassLoader( logger, name, Category.PROTECTED, api, spis );        URI[] imps = classpath.getDependencies( Category.PRIVATE );        ClassLoader impl = StandardClassLoader.buildClassLoader( logger, name, Category.PRIVATE, spi, imps );        return impl;    }