@Override public void cleanUpResources() { extensionManager.removeInstanceClassLoader(configurableComponent.getIdentifier()); } }
@Override public void cleanUpResources() { extensionManager.removeInstanceClassLoader(processorNode.getIdentifier()); } }
@Override public void cleanUpResources() { extensionManager.removeInstanceClassLoader(reportingTaskNode.getIdentifier()); } }
@Override public void cleanUpResources() { extensionManager.removeInstanceClassLoader(controllerServiceNode.getIdentifier()); } }
@Override public void teardown(ConfigurableComponent component) { try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(extensionManager, component.getClass(), component.getIdentifier())) { ControllerService controllerService = (ControllerService) component; final ComponentLog logger = new MockComponentLogger(); final MockConfigurationContext context = new MockConfigurationContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, controllerService, logger, context); } finally { extensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void teardown(ConfigurableComponent component) { ReportingTask reportingTask = (ReportingTask) component; try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(extensionManager, component.getClass(), component.getIdentifier())) { final MockConfigurationContext context = new MockConfigurationContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, reportingTask, new MockComponentLogger(), context); } finally { extensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void teardown(ConfigurableComponent component) { Processor processor = (Processor) component; try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(extensionManager, component.getClass(), component.getIdentifier())) { final ComponentLog logger = new MockComponentLogger(); final MockProcessContext context = new MockProcessContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, processor, logger, context); } finally { extensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void removeControllerService(final ControllerServiceNode serviceNode) { final ProcessGroup group = requireNonNull(serviceNode).getProcessGroup(); if (group == null) { flowManager.removeRootControllerService(serviceNode); return; } group.removeControllerService(serviceNode); LogRepositoryFactory.removeRepository(serviceNode.getIdentifier()); final ExtensionManager extensionManager = flowController.getExtensionManager(); extensionManager.removeInstanceClassLoader(serviceNode.getIdentifier()); serviceCache.remove(serviceNode.getIdentifier()); }
public void removeRootControllerService(final ControllerServiceNode service) { final ControllerServiceNode existing = rootControllerServices.get(requireNonNull(service).getIdentifier()); if (existing == null) { throw new IllegalStateException(service + " is not a member of this Process Group"); } service.verifyCanDelete(); final ExtensionManager extensionManager = flowController.getExtensionManager(); final VariableRegistry variableRegistry = flowController.getVariableRegistry(); try (final NarCloseable x = NarCloseable.withComponentNarLoader(extensionManager, service.getControllerServiceImplementation().getClass(), service.getIdentifier())) { final ConfigurationContext configurationContext = new StandardConfigurationContext(service, flowController.getControllerServiceProvider(), null, variableRegistry); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnRemoved.class, service.getControllerServiceImplementation(), configurationContext); } for (final Map.Entry<PropertyDescriptor, String> entry : service.getProperties().entrySet()) { final PropertyDescriptor descriptor = entry.getKey(); if (descriptor.getControllerServiceDefinition() != null) { final String value = entry.getValue() == null ? descriptor.getDefaultValue() : entry.getValue(); if (value != null) { final ControllerServiceNode referencedNode = getRootControllerService(value); if (referencedNode != null) { referencedNode.removeReference(service); } } } } rootControllerServices.remove(service.getIdentifier()); flowController.getStateManagerProvider().onComponentRemoved(service.getIdentifier()); extensionManager.removeInstanceClassLoader(service.getIdentifier()); logger.info("{} removed from Flow Controller", service, this); }
if (removed) { try { flowController.getExtensionManager().removeInstanceClassLoader(service.getIdentifier()); } catch (Throwable t) {
@Override public void removeReportingTask(final ReportingTaskNode reportingTaskNode) { final ReportingTaskNode existing = allReportingTasks.get(reportingTaskNode.getIdentifier()); if (existing == null || existing != reportingTaskNode) { throw new IllegalStateException("Reporting Task " + reportingTaskNode + " does not exist in this Flow"); } reportingTaskNode.verifyCanDelete(); final Class<?> taskClass = reportingTaskNode.getReportingTask().getClass(); try (final NarCloseable x = NarCloseable.withComponentNarLoader(flowController.getExtensionManager(), taskClass, reportingTaskNode.getReportingTask().getIdentifier())) { ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnRemoved.class, reportingTaskNode.getReportingTask(), reportingTaskNode.getConfigurationContext()); } for (final Map.Entry<PropertyDescriptor, String> entry : reportingTaskNode.getProperties().entrySet()) { final PropertyDescriptor descriptor = entry.getKey(); if (descriptor.getControllerServiceDefinition() != null) { final String value = entry.getValue() == null ? descriptor.getDefaultValue() : entry.getValue(); if (value != null) { final ControllerServiceNode serviceNode = flowController.getControllerServiceProvider().getControllerServiceNode(value); if (serviceNode != null) { serviceNode.removeReference(reportingTaskNode); } } } } allReportingTasks.remove(reportingTaskNode.getIdentifier()); LogRepositoryFactory.removeRepository(reportingTaskNode.getIdentifier()); processScheduler.onReportingTaskRemoved(reportingTaskNode); flowController.getExtensionManager().removeInstanceClassLoader(reportingTaskNode.getIdentifier()); }
try { LogRepositoryFactory.removeRepository(processor.getIdentifier()); flowController.getExtensionManager().removeInstanceClassLoader(id); } catch (Throwable t) {
@Override public void teardown(ConfigurableComponent component) { Processor processor = (Processor) component; try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), component.getIdentifier())) { final ComponentLog logger = new MockComponentLogger(); final MockProcessContext context = new MockProcessContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, processor, logger, context); } finally { ExtensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void teardown(ConfigurableComponent component) { Processor processor = (Processor) component; try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), component.getIdentifier())) { final ComponentLog logger = new MockComponentLogger(); final MockProcessContext context = new MockProcessContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, processor, logger, context); } finally { ExtensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void teardown(ConfigurableComponent component) { try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), component.getIdentifier())) { ControllerService controllerService = (ControllerService) component; final ComponentLog logger = new MockComponentLogger(); final MockConfigurationContext context = new MockConfigurationContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, controllerService, logger, context); } finally { ExtensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void teardown(ConfigurableComponent component) { ReportingTask reportingTask = (ReportingTask) component; try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), component.getIdentifier())) { final MockConfigurationContext context = new MockConfigurationContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, reportingTask, new MockComponentLogger(), context); } finally { ExtensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void teardown(ConfigurableComponent component) { try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), component.getIdentifier())) { ControllerService controllerService = (ControllerService) component; final ComponentLog logger = new MockComponentLogger(); final MockConfigurationContext context = new MockConfigurationContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, controllerService, logger, context); } finally { ExtensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }
@Override public void teardown(ConfigurableComponent component) { ReportingTask reportingTask = (ReportingTask) component; try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), component.getIdentifier())) { final MockConfigurationContext context = new MockConfigurationContext(); ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, reportingTask, new MockComponentLogger(), context); } finally { ExtensionManager.removeInstanceClassLoader(component.getIdentifier()); } } }