return new NonDelegatingClassPool(cl, parent, repository, true);
}
private synchronized ClassPoolDomain getDomain(Module module, ClassLoader cl)
{
ClassLoaderDomain domain = null;
ClassLoaderSystem sys = registry.getSystem();
if (module != null && module.getDeterminedParentDomainName() != null)
{
//It is scoped
domain = sys.getDomain(module.getDeterminedDomainName());
}
if (domain == null)
{
domain = registry.getDefaultDomain();
}
ClassPoolDomain poolDomain = ClassPoolDomainRegistry.getInstance().getDomain(domain);
if (poolDomain == null)
{
String parentDomainName = domain.getParentDomainName();
ClassPoolDomain parentPoolDomain = null;
if (parentDomainName != null)
{
ClassLoaderDomain parentDomain = sys.getDomain(parentDomainName);
if (parentDomain == null)
{
throw new RuntimeException("No domain found called: " + parentDomainName);
}
parentPoolDomain = ClassPoolDomainRegistry.getInstance().getDomain(parentDomain);