/** * For subclasses to add information for toLongString() * * @param builder the builder */ protected void toLongString(StringBuilder builder) { builder.append("name=").append(getName()); builder.append(" parentPolicy=").append(getParentPolicy()); builder.append(" parent="); Loader parent = getParent(); if (parent != null) builder.append(parent); else builder.append(getParentClassLoader()); }
@Override protected ClassLoaderDomain createDomain(String name) { return new ClassLoaderDomain(name); } }
/** * Set the parent. * * @param parent the parent. */ public void setParent(Loader parent) { this.parent = parent; fixUpParent(); }
public void preDeregister() throws Exception { // Unregister any remaining classloaders from the MBeanServer for (ClassLoader cl : getAllClassLoaders()) unregisterClassLoaderMBean(cl); }
public void postRegister(Boolean registrationDone) { if (registrationDone) { // Register any classloaders that were added before we were registered in the MBeanServer for (ClassLoader cl : getAllClassLoaders()) registerClassLoaderMBean(cl); } else { postDeregister(); } }
@Override protected void beforeGetPackages(Set<Package> packages) { ClassFilter filter = getParentPolicy().getBeforeFilter(); getPackagesFromParent(packages, filter); }
public String getParentDomainName() { if (parent == null || parent instanceof ClassLoaderDomain == false) return null; ClassLoaderDomain parentDomain = (ClassLoaderDomain) parent; return parentDomain.getName(); }
private boolean isMine(URL myURL, String resourceName) { if (myURL == null) { return false; } ClassLoaderDomain domain = domainRef.get(); Loader parent = domain.getParent(); URL parentURL = parent.getResource(resourceName); if (parentURL == null) { return true; } if (!myURL.equals(parentURL)) { return true; } return false; }
Loader parentLoader = getParent(); if (parentLoader instanceof ClassNotFoundHandler) parent = (ClassNotFoundHandler) parentLoader; else ClassLoaderPolicy parentPolicy = getClassLoaderPolicy(parentLoader); if (parentPolicy != null) parent = parentPolicy; if (parentResult && getParentPolicy().getBeforeFilter().matchesClassName(className)) return true; if (parentResult && getParentPolicy().getAfterFilter().matchesClassName(className)) return true; ClassLoaderSystem system = (ClassLoaderSystem) getClassLoaderSystem(); return system != null && system.classNotFound(event);
/** * Create and register a domain with the given parent classloading policy * * @param name the name of the domain * @param parentPolicy the parent classloading policy * @param parent the parent * @param shutdownPolicy the shutdown policy * @param useLoadClassForParent the use classloader for parent flag * @return the domain * @throws IllegalArgumentException for a null argument * @throws IllegalStateException if there already is a domain with that name */ public ClassLoaderDomain createAndRegisterDomain(String name, ParentPolicy parentPolicy, Loader parent, ShutdownPolicy shutdownPolicy, Boolean useLoadClassForParent) { ClassLoaderDomain result = createDomain(name); if (result == null) throw new IllegalArgumentException("Created null domain: " + name); if (useLoadClassForParent != null) result.setUseLoadClassForParent(useLoadClassForParent); result.setParentPolicy(parentPolicy); result.setParent(parent); if (shutdownPolicy != null) result.setShutdownPolicy(shutdownPolicy); registerDomain(result); return result; }
@Override protected void afterGetResources(String name, Set<URL> urls) throws IOException { boolean trace = log.isTraceEnabled(); ClassFilter filter = getParentPolicy().getAfterFilter(); if (filter.matchesResourcePath(name)) { if (trace) log.trace(this + " " + name + " matches parent afterFilter=" + filter); getResourcesFromParent(name, urls); } else if (trace) log.trace(this + " " + name + " does NOT match parent afterFilter=" + filter); }
@Override protected Loader findAfterLoader(String name) { boolean trace = log.isTraceEnabled(); ClassFilter filter = getParentPolicy().getAfterFilter(); if (filter.matchesResourcePath(name)) { if (trace) log.trace(this + " " + name + " matches parent afterFilter=" + filter); return findLoaderFromParent(name); } if (trace) log.trace(this + " " + name + " does NOT match parent afterFilter=" + filter); return null; }
@Override protected Package beforeGetPackage(String name) { boolean trace = log.isTraceEnabled(); ClassFilter filter = getParentPolicy().getBeforeFilter(); if (filter.matchesPackageName(name)) { if (trace) log.trace(this + " " + name + " matches parent beforeFilter=" + filter); return getPackageFromParent(name); } if (trace) log.trace(this + " " + name + " does NOT match parent beforeFilter=" + filter); return null; }
@Override protected URL afterGetResource(String name) { boolean trace = log.isTraceEnabled(); ClassFilter filter = getParentPolicy().getAfterFilter(); if (filter.matchesResourcePath(name)) { if (trace) log.trace(this + " " + name + " matches parent afterFilter=" + filter); return getResourceFromParent(name); } if (trace) log.trace(this + " " + name + " does NOT match parent afterFilter=" + filter); return null; }
@Override protected Class<?> loadClassBefore(String name) { boolean trace = log.isTraceEnabled(); ClassFilter filter = getParentPolicy().getBeforeFilter(); if (filter.matchesClassName(name)) { if (trace) log.trace(this + " " + name + " matches parent beforeFilter=" + filter); return loadClassFromParent(name); } if (trace) log.trace(this + " " + name + " does NOT match parent beforeFilter=" + filter); return null; }
if (poolDomain == null) String parentDomainName = domain.getParentDomainName(); if (parentDomainName != null) poolDomain = new JBossClClassPoolDomain(domain.getName(), parentPoolDomain, domain.getParentPolicy(), registry); if (parentUnitPool == null) poolDomain = new JBossClClassPoolDomain(domain.getName(), domain.getParentPolicy(), registry); poolDomain = new JBossClClassPoolDomain(domain.getName(), parentUnitPool, domain.getParentPolicy(), registry);
public void classFound(ClassFoundEvent event) Loader parentLoader = getParent(); if (parentLoader instanceof ClassFoundHandler) parent = (ClassFoundHandler) parentLoader; else ClassLoaderPolicy parentPolicy = getClassLoaderPolicy(parentLoader); if (parentPolicy != null) parent = parentPolicy; ClassLoaderSystem system = (ClassLoaderSystem) getClassLoaderSystem(); if (system != null) system.classFound(event);
/** * Unregister a domain * * @param domain the domain * @throws IllegalArgumentException for a null domain or if you attempt to unregister the default domain * @throws IllegalStateException if a domain is not registered */ private synchronized void internalUnregisterDomain(ClassLoaderDomain domain) { unregisterDomainMBean(domain); registeredDomains.remove(domain.getName()); super.unregisterDomain(domain); log.debug(this + " unregistered domain=" + domain.toLongString()); }
Loader parentLoader = getParent(); return parentDomain.findLoader(name);