/** * Sets the current thread context class loader to the specific appropriate class loader for the given * component. If the component requires per-instance class loading then the class loader will be the * specific class loader for instance with the given identifier, otherwise the class loader will be * the NARClassLoader. * * @param componentClass the component class * @param componentIdentifier the identifier of the component * @return NarCloseable with the current thread context classloader jailed to the Nar * or instance class loader of the component */ public static NarCloseable withComponentNarLoader(final ExtensionManager extensionManager, final Class componentClass, final String componentIdentifier) { final ClassLoader current = Thread.currentThread().getContextClassLoader(); ClassLoader componentClassLoader = extensionManager.getInstanceClassLoader(componentIdentifier); if (componentClassLoader == null) { componentClassLoader = componentClass.getClassLoader(); } Thread.currentThread().setContextClassLoader(componentClassLoader); return new NarCloseable(current); }
private ClassLoaderDiagnosticsDTO createClassLoaderDiagnosticsDto(final ControllerServiceNode serviceNode) { ClassLoader componentClassLoader = extensionManager.getInstanceClassLoader(serviceNode.getIdentifier()); if (componentClassLoader == null) { componentClassLoader = serviceNode.getControllerServiceImplementation().getClass().getClassLoader(); } return createClassLoaderDiagnosticsDto(componentClassLoader); }
private ClassLoaderDiagnosticsDTO createClassLoaderDiagnosticsDto(final ProcessorNode procNode) { ClassLoader componentClassLoader = extensionManager.getInstanceClassLoader(procNode.getIdentifier()); if (componentClassLoader == null) { componentClassLoader = procNode.getProcessor().getClass().getClassLoader(); } return createClassLoaderDiagnosticsDto(componentClassLoader); }
final ClassLoader existingInstanceClassLoader = extensionManager.getInstanceClassLoader(id);
final ClassLoader existingInstanceClassLoader = extensionManager.getInstanceClassLoader(id);
final ClassLoader existingInstanceClassLoader = extensionManager.getInstanceClassLoader(id);
/** * Sets the current thread context class loader to the specific appropriate class loader for the given * component. If the component requires per-instance class loading then the class loader will be the * specific class loader for instance with the given identifier, otherwise the class loader will be * the NARClassLoader. * * @param componentClass the component class * @param componentIdentifier the identifier of the component * @return NarCloseable with the current thread context classloader jailed to the Nar * or instance class loader of the component */ public static NarCloseable withComponentNarLoader(final Class componentClass, final String componentIdentifier) { final ClassLoader current = Thread.currentThread().getContextClassLoader(); ClassLoader componentClassLoader = ExtensionManager.getInstanceClassLoader(componentIdentifier); if (componentClassLoader == null) { componentClassLoader = componentClass.getClassLoader(); } Thread.currentThread().setContextClassLoader(componentClassLoader); return new NarCloseable(current); }
/** * Sets the current thread context class loader to the specific appropriate class loader for the given * component. If the component requires per-instance class loading then the class loader will be the * specific class loader for instance with the given identifier, otherwise the class loader will be * the NARClassLoader. * * @param componentClass the component class * @param componentIdentifier the identifier of the component * @return NarCloseable with the current thread context classloader jailed to the Nar * or instance class loader of the component */ public static NarCloseable withComponentNarLoader(final Class componentClass, final String componentIdentifier) { final ClassLoader current = Thread.currentThread().getContextClassLoader(); ClassLoader componentClassLoader = ExtensionManager.getInstanceClassLoader(componentIdentifier); if (componentClassLoader == null) { componentClassLoader = componentClass.getClassLoader(); } Thread.currentThread().setContextClassLoader(componentClassLoader); return new NarCloseable(current); }