}
private ClassPoolDomain getDomain(RepositoryClassLoader cl)
{
LoaderRepository loaderRepository = cl.getLoaderRepository();
ClassPoolDomainRegistry registry = ClassPoolDomainRegistry.getInstance();
ClassPoolDomain domain = registry.getDomain(loaderRepository);
if (domain == null)
{
if (loaderRepository instanceof HeirarchicalLoaderRepository3)
{
boolean parentFirst = ((HeirarchicalLoaderRepository3)loaderRepository).getUseParentFirst();
domain = new BaseClassPoolDomain("Scoped" + System.identityHashCode(loaderRepository), mainDomain, parentFirst);
}
else
{
if (mainDomain == null)
{
domain = new BaseClassPoolDomain(ServerConstants.DEFAULT_LOADER_NAME, null, false);
mainDomain = domain;
}
else
{
domain = mainDomain;
}
registry.addClassPoolDomain(loaderRepository, domain);
}
}
return domain;
}