private synchronized void initCommonClassloader() { if (commonClassloader == null) { commonClassloader = new CommonClassLoader(); } } }
@Override public Class< ? > loadClass(String name) throws ClassNotFoundException { return CommonClassLoader.getCurrent().loadClass(name); } }
public void cleanCommonClassLoader() { if (commonClassloader != null) { commonClassloader.release(); commonClassloader = null; } }
protected synchronized Class< ? > loadClass(String name, boolean resolve) throws ClassNotFoundException { Class< ? > c = findLoadedClass(name); if (c == null) { // Check if the class is available but not yet loaded c = findClass(name); } if (c == null) { c = getParent().loadClass(name); } if (resolve) { resolveClass(c); } if (LOG.isLoggable(Level.FINE)) { LOG.fine("loadClass: " + name + ", result: " + c); } return c; }
protected synchronized Class< ? > loadClass(String name, boolean resolve) throws ClassNotFoundException { return commonClassloader.loadClass(name, resolve); }
public static CommonClassLoader getCommonClassLoader() { return CommonClassLoader.getCurrent(); }
public static void removeCommonClass(final String className) { CommonClassLoader.reset(); }
public Class< ? > findClass(String name) { if (LOG.isLoggable(Level.FINE)) { LOG.fine("Looking for class " + name + "... "); } Repository repository = EngineEnvTool.getRepository(); GlobalClassData globalClassData = repository.getGlobalClassData(name); try { if (globalClassData != null) { byte[] classData = globalClassData.getClassData(); Class< ? > clazz = defineClass(name, classData, 0, classData.length); isEmpty = false; return clazz; } if (LOG.isLoggable(Level.FINE)) { LOG.fine("class " + name + " not found."); } return null; } catch (Throwable e) { throw new BonitaRuntimeException("Problem while loading class with name : " + name, e); } }
private static Class< ? > lookIntoCommonClassLoader(final String className) { try { synchronized (CommonClassLoader.LOCK) { return load(CommonClassLoader.getCurrent(), className); } } catch (final ClassNotFoundException e) { return null; } }
public static void clear() { packageClassLoaders.clear(); CommonClassLoader.reset(); }
public static void reset() { synchronized (LOCK) { current = new CommonClassLoader(); } }