private ClassLoaderDiagnosticsDTO createClassLoaderDiagnosticsDto(final ProcessorNode procNode) { ClassLoader componentClassLoader = extensionManager.getInstanceClassLoader(procNode.getIdentifier()); if (componentClassLoader == null) { componentClassLoader = procNode.getProcessor().getClass().getClassLoader(); } return createClassLoaderDiagnosticsDto(componentClassLoader); }
private ClassLoaderDiagnosticsDTO createClassLoaderDiagnosticsDto(final ControllerServiceNode serviceNode) { ClassLoader componentClassLoader = extensionManager.getInstanceClassLoader(serviceNode.getIdentifier()); if (componentClassLoader == null) { componentClassLoader = serviceNode.getControllerServiceImplementation().getClass().getClassLoader(); } return createClassLoaderDiagnosticsDto(componentClassLoader); }
/** * Creates a ControllerServiceDiagnosticsDTO from the given Controller Service with some additional supporting information * * @param serviceNode the controller service to create diagnostics for * @param serviceEntityFactory a function to convert a controller service id to a controller service entity * @param serviceProvider the controller service provider * @return ControllerServiceDiagnosticsDTO for the given Controller Service */ public ControllerServiceDiagnosticsDTO createControllerServiceDiagnosticsDto(final ControllerServiceNode serviceNode, final Function<String, ControllerServiceEntity> serviceEntityFactory, final ControllerServiceProvider serviceProvider) { final ControllerServiceDiagnosticsDTO serviceDiagnostics = new ControllerServiceDiagnosticsDTO(); final ControllerServiceEntity serviceEntity = serviceEntityFactory.apply(serviceNode.getIdentifier()); serviceDiagnostics.setControllerService(serviceEntity); serviceDiagnostics.setClassLoaderDiagnostics(createClassLoaderDiagnosticsDto(serviceNode)); return serviceDiagnostics; }
private ClassLoaderDiagnosticsDTO createClassLoaderDiagnosticsDto(final ClassLoader classLoader) { final ClassLoaderDiagnosticsDTO dto = new ClassLoaderDiagnosticsDTO(); final Bundle bundle = extensionManager.getBundle(classLoader); if (bundle != null) { dto.setBundle(createBundleDto(bundle.getBundleDetails().getCoordinate())); } final ClassLoader parentClassLoader = classLoader.getParent(); if (parentClassLoader != null) { dto.setParentClassLoader(createClassLoaderDiagnosticsDto(parentClassLoader)); } return dto; }
/** * Creates a ProcessorDiagnosticsDTO from the given Processor and status information with some additional supporting information * * @param procNode the processor to create diagnostics for * @param procStatus the status of given processor * @param bulletinRepo the bulletin repository * @param flowController flowController * @param serviceEntityFactory function for creating a ControllerServiceEntity from a given ID * @return ProcessorDiagnosticsDTO for the given Processor */ public ProcessorDiagnosticsDTO createProcessorDiagnosticsDto(final ProcessorNode procNode, final ProcessorStatus procStatus, final BulletinRepository bulletinRepo, final FlowController flowController, final Function<String, ControllerServiceEntity> serviceEntityFactory) { final ProcessorDiagnosticsDTO procDiagnostics = new ProcessorDiagnosticsDTO(); procDiagnostics.setClassLoaderDiagnostics(createClassLoaderDiagnosticsDto(procNode)); procDiagnostics.setIncomingConnections(procNode.getIncomingConnections().stream() .map(this::createConnectionDiagnosticsDto) .collect(Collectors.toSet())); procDiagnostics.setOutgoingConnections(procNode.getConnections().stream() .map(this::createConnectionDiagnosticsDto) .collect(Collectors.toSet())); procDiagnostics.setJvmDiagnostics(createJvmDiagnosticsDto(flowController)); procDiagnostics.setProcessor(createProcessorDto(procNode)); procDiagnostics.setProcessorStatus(createProcessorStatusDto(procStatus)); procDiagnostics.setThreadDumps(createThreadDumpDtos(procNode)); final Set<ControllerServiceDiagnosticsDTO> referencedServiceDiagnostics = createReferencedServiceDiagnostics(procNode.getProperties(), flowController.getControllerServiceProvider(), serviceEntityFactory); procDiagnostics.setReferencedControllerServices(referencedServiceDiagnostics); return procDiagnostics; }