protected Package doGetPackage(String name) { return super.getPackage(name); }
protected URL doGetResource(String name) { return super.getResource(name); }
protected void doGetResources(String name, Set<URL> urls) throws IOException { super.getResources(name, urls); }
protected Class<?> doLoadClass(String className) { return super.loadClass(className); }
protected void doGetPackages(Set<Package> packages) { super.getPackages(packages); }
/** * Create a new ClassLoader with no parent. * * @param policy the policy * @throws IllegalArgumentException for a null policy * @throws IllegalStateException if the policy is already associated with a classloader */ public BaseClassLoader(ClassLoaderPolicy policy) { super(null); if (policy == null) throw new IllegalArgumentException("Null policy"); this.policy = policy; BaseClassLoaderPolicy basePolicy = policy; basePolicy.setClassLoader(this); loader = new DelegateLoader(policy); if (basePolicy.isCacheable()) resourceCache = new ConcurrentHashMap<String, URL>(); if (basePolicy.isBlackListable()) blackList = new ConcurrentHashMap<String, String>(); log.debug("Created " + this + " with policy " + policy.toLongString()); }
String[] packageNames = loader.getPackageNames(); if (packageNames != null && packageNames.length > 0) ClassFilter filter = loader.getFilter(); for (ImportType type : types)
boolean canBlackList = (policy != null && policy.isBlackListable()); ImportType type = loader.getImportType();
@Override public Class<?> loadClass(String className) { boolean trace = log.isTraceEnabled(); if (filter.matchesClassName(className)) { if (trace) log.trace(this + " " + className + " matches class filter=" + filter); return super.loadClass(className); } if (trace) log.trace(this + " " + className + " does NOT match class filter=" + filter); return null; }
public void getPackages(Set<Package> packages) { boolean trace = log.isTraceEnabled(); Set<Package> allPackages = new HashSet<Package>(); super.getPackages(allPackages); for (Package pkge : allPackages) { if (filter.matchesPackageName(pkge.getName())) { if (trace) log.trace(this + " " + pkge + " matches package filter=" + filter); packages.add(pkge); } else if (trace) log.trace(this + " pkge=" + pkge + " does NOT match package filter=" + filter); } }
/** * Create a new ClassLoader with no parent. * * @param policy the policy * @throws IllegalArgumentException for a null policy * @throws IllegalStateException if the policy is already associated with a classloader */ public BaseClassLoader(ClassLoaderPolicy policy) { super(null); if (policy == null) throw new IllegalArgumentException("Null policy"); this.policy = policy; BaseClassLoaderPolicy basePolicy = policy; basePolicy.setClassLoader(this); loader = new DelegateLoader(policy); if (basePolicy.isCacheable()) resourceCache = new ConcurrentHashMap<String, URL>(); if (basePolicy.isBlackListable()) blackList = new ConcurrentSet<String>(); log.debugf("Created %1s with policy %2s", this, policy); }
String[] packageNames = loader.getPackageNames(); if (packageNames != null && packageNames.length > 0) ClassFilter filter = loader.getFilter(); for (ImportType type : types)
boolean canBlackList = (policy != null && policy.isBlackListable()); ImportType type = loader.getImportType();
public URL getResource(String name) { boolean trace = log.isTraceEnabled(); if (filter.matchesResourcePath(name)) { if (trace) log.trace(this + " " + name + " matches resource filter=" + filter); return super.getResource(name); } if (trace) log.trace(this + " " + name + " does NOT match resource filter=" + filter); return null; }
public Package getPackage(String name) { boolean trace = log.isTraceEnabled(); if (filter.matchesPackageName(name)) { if (trace) log.trace(this + " " + name + " matches package filter=" + filter); return super.getPackage(name); } if (trace) log.trace(this + " " + name + " does NOT match package filter=" + filter); return null; }
public void getResources(String name, Set<URL> urls) throws IOException { boolean trace = log.isTraceEnabled(); if (filter.matchesResourcePath(name)) { if (trace) log.trace(this + " " + name + " matches filter=" + filter); super.getResources(name, urls); } if (trace) log.trace(this + " " + name + " does NOT match filter=" + filter); }
@Override protected Class<?> doLoadClass(String className) { DelegateLoader loader = resolve(ClassLoaderUtils.getClassPackageName(className)); return loader != null ? loader.loadClass(className) : null; }
/** * Load packages from the imports * * @param info the classloader info * @param packages the packages to add to * @param trace whether trace is enabled */ void getPackagesFromImports(ClassLoaderInformation info, Set<Package> packages, boolean trace) { List<? extends DelegateLoader> delegates = info.getDelegates(); if (delegates == null || delegates.isEmpty()) { if (trace) log.trace(this + " not getting all packages from imports it has no delegates"); return; } if (trace) log.trace(this + " trying to get all pacakges from imports " + delegates + " for " + info.getClassLoader()); for (DelegateLoader delegate : delegates) delegate.getPackages(packages); }
throw new IllegalStateException(policy + " null delegate in " + delegates); ImportType importType = delegate.getImportType(); List<DelegateLoader> loaders = temp.get(importType); if (loaders == null)
@Override protected URL doGetResource(String name) { DelegateLoader loader = resolve(ClassLoaderUtils.getResourcePackageName(name)); return loader != null ? loader.getResource(name) : null; }