updateSystemClassLoader( sysUrls );
updateSystemClassLoader( plugin, sysUrls );
    private ClassLoader createClassLoader( ClassLoader base, Plugin descriptor )        throws IOException, NullArgumentException    {        if( null == descriptor )        {            throw new NullArgumentException( "descriptor" );        }        if( null == base )        {            throw new NullArgumentException( "base" );        }        URI plugin = descriptor.getURI();        URI[] systemArtifacts = descriptor.getDependencies( Category.SYSTEM );        URL[] sysUrls = getURLs( systemArtifacts );        updateSystemClassLoader( sysUrls );        URI[] apiArtifacts = descriptor.getDependencies( Category.PUBLIC );        URL[] apis = getURLs( apiArtifacts  );        ClassLoader api = buildClassLoader( plugin, Category.PUBLIC, base, apis );        URI[] spiArtifacts = descriptor.getDependencies( Category.PROTECTED );        URL[] spis = getURLs( spiArtifacts );        ClassLoader spi = buildClassLoader( plugin, Category.PROTECTED, api, spis );        URI[] impArtifacts = descriptor.getDependencies( Category.PRIVATE );        URL[] imps = getURLs( impArtifacts );        ClassLoader classloader = buildClassLoader( plugin, Category.PRIVATE, spi, imps );        return classloader;    }