public boolean matchesClassName(String className) { for (ClassFilter filter : filters) { if (filter.matchesClassName(className)) return true; else if (and) return false; } return false; }
public boolean matchesClassName(String className) { for (ClassFilter filter : filters) { if (filter.matchesClassName(className)) return true; else if (and) return false; } return false; }
public boolean matchesClassName(String className) { return filter.matchesClassName(className) == false; }
@Override protected ClassLoader isJDKRequest(String name) { if (nonJDKFilter.matchesClassName(name)) return null; return super.isJDKRequest(name); }
@Override protected ClassLoader isJDKRequest(String name) { if (nonJDKFilter.matchesClassName(name)) return null; return super.isJDKRequest(name); }
@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 doLoadClass(className); } if (trace) log.trace(this + " " + className + " does NOT match class filter=" + filter); return null; }
@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 boolean isParentBefore(String classname) { ClassFilter filter = parentPolicy.getBeforeFilter(); boolean isParentBefore = filter.matchesClassName(ClassLoaderUtils.stripArrayFromClassName(classname)); if (logger.isTraceEnabled()) logger.trace(this + " " + getDomain() + " isParentBefore " + isParentBefore); return isParentBefore; } }
public boolean isParentAfter(String classname) { ClassFilter filter = parentPolicy.getAfterFilter(); boolean isParentAfter = filter.matchesClassName(ClassLoaderUtils.stripArrayFromClassName(classname)); if (logger.isTraceEnabled()) logger.trace(this + " " + getDomain() + " isParentAfter " + isParentAfter); return isParentAfter; }
@Override protected Class<?> loadClassAfter(String name) { boolean trace = log.isTraceEnabled(); ClassFilter filter = getParentPolicy().getAfterFilter(); if (filter.matchesClassName(name)) { if (trace) log.trace(this + " " + name + " matches parent afterFilter=" + filter); return loadClassFromParent(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; }
@Override protected Class<?> loadClassAfter(String name) { boolean trace = log.isTraceEnabled(); ClassFilter filter = getParentPolicy().getAfterFilter(); if (filter.matchesClassName(name)) { if (trace) log.trace(this + " " + name + " matches parent afterFilter=" + filter); return loadClassFromParent(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; }
@Override protected Class<?> checkCacheBefore(BaseClassLoader classLoader, String name, String path, boolean allExports) { if (parent == null || parent instanceof CacheLoader == false) return null; ClassFilter filter = getParentPolicy().getBeforeFilter(); if (filter.matchesClassName(name)) { CacheLoader loader = (CacheLoader) parent; return loader.checkClassCache(classLoader, name, path, allExports); } return null; }
/** * Find file. * * @param className the classname we're looking for * @return virtual file or null if not found * @throws IOException for any exception */ protected VirtualFile findFile(String className) throws IOException { if (excludeFilter != null && excludeFilter.matchesClassName(className)) return null; VirtualFile file = cache.get(className); if (file != null) return file; List<VirtualFile> classPath = unit.getClassPath(); if (classPath != null && classPath.isEmpty() == false) { String path = ClassLoaderUtils.classNameToPath(className); for (VirtualFile cp : classPath) { file = cp.getChild(path); if (file.exists()) { cache.put(className, file); return file; } } } return null; }
public void classFound(ClassFoundEvent event) { if (getLazyStartFilter().matchesClassName(event.getClassName()) == false) return; removeLazyStart(); if (isStarted() == false) { try { start(); } catch (Throwable t) { log.warn("Error in lazy start for " + this, t); } } }
/** * Only check parent after if we already blacklisted this resource. * * @param classLoader the classloader (possibly null) * @param name the name * @param path the path of the class resource * @param allExports whether to look at all exports * @return cached result if found in parent */ @Override protected Class<?> checkCacheAfter(BaseClassLoader classLoader, String name, String path, boolean allExports) { if (parent == null || parent instanceof CacheLoader == false || isBlackListedClass(path) == false) return null; ClassFilter filter = getParentPolicy().getAfterFilter(); if (filter.matchesClassName(name)) { CacheLoader loader = (CacheLoader) parent; return loader.checkClassCache(classLoader, name, path, allExports); } return null; } }
if (result == null && (ClassFilterUtils.JAVA_ONLY.matchesClassName(name) || basePolicy.isJDKRequest(name) != null)) result = getSystemClassLoader().loadClass(name);
if (parentResult && getParentPolicy().getBeforeFilter().matchesClassName(className)) return true; if (parentResult && getParentPolicy().getAfterFilter().matchesClassName(className)) return true;