public boolean containsClassLoader(ClassLoader classLoader) { if (bundleClassLoaders.contains(classLoader)) { return true; } for (ClassLoader bundleClassLoader : bundleClassLoaders) { if (bundleClassLoader instanceof OpenLBundleClassLoader) { if (((OpenLBundleClassLoader) bundleClassLoader).containsClassLoader(classLoader)) { return true; } } } return false; }
@Override public URL getResource(String name) { URL url = findResourceInBundleClassLoader(name); if (url != null) { return url; } return super.getResource(name); }
@Override public InputStream getResourceAsStream(String name) { InputStream inputStream = findResourceAsStreamInBundleClassLoader(name); if (inputStream != null) { return inputStream; } return super.getResourceAsStream(name); }
protected Class<?> loadClass(String name, Set<ClassLoader> c) throws ClassNotFoundException { Class<?> clazz = findClassInBundles(name, c); if (clazz != null) { return clazz; } return super.loadClass(name); }
.getContextClassLoader(); if (loadedDependency.getClassLoader() != currentClassLoader) { currentClassLoader.addClassLoader(loadedDependency.getClassLoader());
protected Class<?> loadClass(String name, Set<ClassLoader> c) throws ClassNotFoundException { Class<?> clazz = findClassInBundles(name, c); if (clazz != null) { return clazz; } return super.loadClass(name); }
.getContextClassLoader(); if (loadedDependency.getClassLoader() != currentClassLoader) { currentClassLoader.addClassLoader(loadedDependency.getClassLoader());
public boolean containsClassLoader(ClassLoader classLoader) { if (bundleClassLoaders.contains(classLoader)) { return true; } for (ClassLoader bundleClassLoader : bundleClassLoaders) { if (bundleClassLoader instanceof OpenLBundleClassLoader) { if (((OpenLBundleClassLoader) bundleClassLoader).containsClassLoader(classLoader)) { return true; } } } return false; }
@Override public URL getResource(String name) { URL url = findResourceInBundleClassLoader(name); if (url != null) { return url; } return super.getResource(name); }
@Override public InputStream getResourceAsStream(String name) { InputStream inputStream = findResourceAsStreamInBundleClassLoader(name); if (inputStream != null) { return inputStream; } return super.getResourceAsStream(name); }
public void addClassLoader(ClassLoader classLoader) { if (classLoader == null) { throw new IllegalArgumentException("Bundle class loader cannot be null"); } if (classLoader == this) { throw new IllegalArgumentException("Bundle class loader cannot register himself"); } if (classLoader instanceof OpenLBundleClassLoader && ((OpenLBundleClassLoader) classLoader).containsClassLoader(this)) { throw new IllegalArgumentException("Bundle class loader cannot register class loader containing himself"); } bundleClassLoaders.add(classLoader); }
public void addClassLoader(ClassLoader classLoader) { if (classLoader == null) { throw new IllegalArgumentException("Bundle class loader cannot be null"); } if (classLoader == this) { throw new IllegalArgumentException("Bundle class loader cannot register himself"); } if (classLoader instanceof OpenLBundleClassLoader && ((OpenLBundleClassLoader) classLoader).containsClassLoader(this)) { throw new IllegalArgumentException("Bundle class loader cannot register class loader containing himself"); } bundleClassLoaders.add(classLoader); }
public void resetClassloader(ClassLoader cl) { final Lock lock = readWriteLock.writeLock(); try { lock.lock(); List<Class<?>> toRemove = new ArrayList<>(); for (Class<?> c : cache.keySet()) { ClassLoader classLoader = c.getClassLoader(); if (classLoader == cl) { toRemove.add(c); } if (cl instanceof OpenLBundleClassLoader) { if (((OpenLBundleClassLoader) cl).containsClassLoader(classLoader)) { toRemove.add(c); } } } for (Class<?> c : toRemove) { if (getJavaClassCache().containsKey(c)) { continue; } cache.remove(c); } } finally { lock.unlock(); } }
public void resetClassloader(ClassLoader cl) { final Lock lock = readWriteLock.writeLock(); try { lock.lock(); List<Class<?>> toRemove = new ArrayList<>(); for (Class<?> c : cache.keySet()) { ClassLoader classLoader = c.getClassLoader(); if (classLoader == cl) { toRemove.add(c); } if (cl instanceof OpenLBundleClassLoader) { if (((OpenLBundleClassLoader) cl).containsClassLoader(classLoader)) { toRemove.add(c); } } } for (Class<?> c : toRemove) { if (getJavaClassCache().containsKey(c)) { continue; } cache.remove(c); } } finally { lock.unlock(); } }
if (((OpenLBundleClassLoader) classLoader).containsClassLoader(cl)) { toRemove.add(clazz);