protected Class<?> loadClass(String name, Set<ClassLoader> c) throws ClassNotFoundException { Class<?> clazz = findClassInBundles(name, c); if (clazz != null) { return clazz; } return super.loadClass(name); }
@Override public InputStream getResourceAsStream(String name) { InputStream inputStream = findResourceAsStreamInBundleClassLoader(name); if (inputStream != null) { return inputStream; } return super.getResourceAsStream(name); }
@Override public URL getResource(String name) { URL url = findResourceInBundleClassLoader(name); if (url != null) { return url; } return super.getResource(name); }
public void destroy() { if (classLoader != null){ ClassLoaderUtils.close(classLoader); } }
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; }
protected Class<?> findLoadedClassInBundle(String name) { return findLoadedClass(name); }
private InputStream findResourceAsStreamInBundleClassLoader(String name) { for (ClassLoader bundleClassLoader : bundleClassLoaders) { InputStream inputStream = null; if (bundleClassLoader instanceof SimpleBundleClassLoader && bundleClassLoader.getParent() == this) { SimpleBundleClassLoader sbcl = (SimpleBundleClassLoader) bundleClassLoader; inputStream = sbcl.findResourceAsStreamInBundleClassLoader(name); } else { inputStream = bundleClassLoader.getResourceAsStream(name); } if (inputStream != null) { return inputStream; } } return null; }
private URL findResourceInBundleClassLoader(String name) { for (ClassLoader bundleClassLoader : bundleClassLoaders) { URL url = null; if (bundleClassLoader instanceof SimpleBundleClassLoader && bundleClassLoader.getParent() == this) { SimpleBundleClassLoader sbcl = (SimpleBundleClassLoader) bundleClassLoader; url = sbcl.findResourceInBundleClassLoader(name); } else { url = bundleClassLoader.getResource(name); } if (url != null) { return url; } } return null; }
/** * Searches for class in bundle classLoaders. */ protected Class<?> findClassInBundles(String name) { Set<ClassLoader> c = Collections.newSetFromMap(new IdentityHashMap<ClassLoader, Boolean>()); return findClassInBundles(name, c); }
public void destroy() { if (classLoader != null){ ClassLoaderUtils.close(classLoader); } }
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; }
protected Class<?> loadClass(String name, Set<ClassLoader> c) throws ClassNotFoundException { Class<?> clazz = findClassInBundles(name, c); if (clazz != null) { return clazz; } return super.loadClass(name); }
@Override public InputStream getResourceAsStream(String name) { InputStream inputStream = findResourceAsStreamInBundleClassLoader(name); if (inputStream != null) { return inputStream; } return super.getResourceAsStream(name); }
@Override public URL getResource(String name) { URL url = findResourceInBundleClassLoader(name); if (url != null) { return url; } return super.getResource(name); }
protected Class<?> findLoadedClassInBundle(String name) { return findLoadedClass(name); }
private InputStream findResourceAsStreamInBundleClassLoader(String name) { for (ClassLoader bundleClassLoader : bundleClassLoaders) { InputStream inputStream = null; if (bundleClassLoader instanceof SimpleBundleClassLoader && bundleClassLoader.getParent() == this) { SimpleBundleClassLoader sbcl = (SimpleBundleClassLoader) bundleClassLoader; inputStream = sbcl.findResourceAsStreamInBundleClassLoader(name); } else { inputStream = bundleClassLoader.getResourceAsStream(name); } if (inputStream != null) { return inputStream; } } return null; }
private URL findResourceInBundleClassLoader(String name) { for (ClassLoader bundleClassLoader : bundleClassLoaders) { URL url = null; if (bundleClassLoader instanceof SimpleBundleClassLoader && bundleClassLoader.getParent() == this) { SimpleBundleClassLoader sbcl = (SimpleBundleClassLoader) bundleClassLoader; url = sbcl.findResourceInBundleClassLoader(name); } else { url = bundleClassLoader.getResource(name); } if (url != null) { return url; } } return null; }
public static void releaseClassLoader(ClassLoader classloader) { if (classloader != null) { JavaOpenClassCache.getInstance().resetClassloader(classloader); String2DataConvertorFactory.unregisterClassLoader(classloader); ClassLoaderUtils.close(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 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); }