@Test(expected = UninheritableFlowException.class) public void testSynchronizeFlowWhenAuthorizationsAreDifferent() { final FlowSynchronizer standardFlowSynchronizer = new StandardFlowSynchronizer(StringEncryptor.createEncryptor(nifiProperties), nifiProperties); final String authFingerprint = "<authorizations></authorizations>"; final DataFlow proposedDataFlow = Mockito.mock(DataFlow.class); when(proposedDataFlow.getAuthorizerFingerprint()).thenReturn(authFingerprint.getBytes(StandardCharsets.UTF_8)); controller.synchronize(standardFlowSynchronizer, proposedDataFlow); assertNotEquals(authFingerprint, authorizer.getFingerprint()); }
public void synchronize(final FlowSynchronizer synchronizer, final DataFlow dataFlow) throws FlowSerializationException, FlowSynchronizationException, UninheritableFlowException, MissingBundleException { writeLock.lock(); try { LOG.debug("Synchronizing controller with proposed flow"); synchronizer.sync(this, dataFlow, encryptor); flowSynchronized.set(true); LOG.info("Successfully synchronized controller with proposed flow"); } finally { writeLock.unlock("synchronize"); } }
FlowController implements EventAccess, ControllerServiceProvider, ReportingTaskProvider,
    QueueProvider, Authorizable, ProvenanceAuthorizableFactory, NodeTypeProvider, IdentifierLookup, ReloadComponent { public void synchronize(final FlowSynchronizer synchronizer, final DataFlow dataFlow) throws FlowSerializationException, FlowSynchronizationException, UninheritableFlowException, MissingBundleException { writeLock.lock(); try { LOG.debug("Synchronizing controller with proposed flow"); synchronizer.sync(this, dataFlow, encryptor); flowSynchronized.set(true); LOG.info("Successfully synchronized controller with proposed flow"); } finally { writeLock.unlock("synchronize"); } } }
FlowController implements EventAccess, ControllerServiceProvider, ReportingTaskProvider,
    QueueProvider, Authorizable, ProvenanceAuthorizableFactory, NodeTypeProvider, IdentifierLookup, ReloadComponent { public void synchronize(final FlowSynchronizer synchronizer, final DataFlow dataFlow) throws FlowSerializationException, FlowSynchronizationException, UninheritableFlowException, MissingBundleException { writeLock.lock(); try { LOG.debug("Synchronizing controller with proposed flow"); synchronizer.sync(this, dataFlow, encryptor); flowSynchronized.set(true); LOG.info("Successfully synchronized controller with proposed flow"); } finally { writeLock.unlock("synchronize"); } } @SuppressWarnings("deprecation") private  FlowController(
            final FlowFileEventRepository flowFileEventRepo,
            final NiFiProperties nifiProperties,
            final Authorizer authorizer,
            final AuditService auditService,
            final StringEncryptor encryptor,
            final boolean configuredForClustering,
            final NodeProtocolSender protocolSender,
            final BulletinRepository bulletinRepo,
            final ClusterCoordinator clusterCoordinator,
            final HeartbeatMonitor heartbeatMonitor,
            final LeaderElectionManager leaderElectionManager,
            final VariableRegistry variableRegistry,
            final FlowRegistryClient flowRegistryClient); }
FlowController implements EventAccess, ControllerServiceProvider, ReportingTaskProvider,
    QueueProvider, Authorizable, ProvenanceAuthorizableFactory, NodeTypeProvider, IdentifierLookup, ReloadComponent { public void synchronize(final FlowSynchronizer synchronizer, final DataFlow dataFlow) throws FlowSerializationException, FlowSynchronizationException, UninheritableFlowException, MissingBundleException { writeLock.lock(); try { LOG.debug("Synchronizing controller with proposed flow"); synchronizer.sync(this, dataFlow, encryptor); flowSynchronized.set(true); LOG.info("Successfully synchronized controller with proposed flow"); } finally { writeLock.unlock("synchronize"); } } @SuppressWarnings("deprecation") private  FlowController(
            final FlowFileEventRepository flowFileEventRepo,
            final NiFiProperties nifiProperties,
            final Authorizer authorizer,
            final AuditService auditService,
            final StringEncryptor encryptor,
            final boolean configuredForClustering,
            final NodeProtocolSender protocolSender,
            final BulletinRepository bulletinRepo,
            final ClusterCoordinator clusterCoordinator,
            final HeartbeatMonitor heartbeatMonitor,
            final LeaderElectionManager leaderElectionManager,
            final VariableRegistry variableRegistry,
            final FlowRegistryClient flowRegistryClient); static FlowController createStandaloneInstance(
            final FlowFileEventRepository flowFileEventRepo,
            final NiFiProperties properties,
            final Authorizer authorizer,
            final AuditService auditService,
            final StringEncryptor encryptor,
            final BulletinRepository bulletinRepo,
            final VariableRegistry variableRegistry,
            final FlowRegistryClient flowRegistryClient); static FlowController createClusteredInstance(
            final FlowFileEventRepository flowFileEventRepo,
            final NiFiProperties properties,
            final Authorizer authorizer,
            final AuditService auditService,
            final StringEncryptor encryptor,
            final NodeProtocolSender protocolSender,
            final BulletinRepository bulletinRepo,
            final ClusterCoordinator clusterCoordinator,
            final HeartbeatMonitor heartbeatMonitor,
            final LeaderElectionManager leaderElectionManager,
            final VariableRegistry variableRegistry,
            final FlowRegistryClient flowRegistryClient); @Override Authorizable getParentAuthorizable(); @Override Resource getResource(); void initializeFlow(); void onFlowInitialized(final boolean startDelayedComponents); Connection createConnection(final String id, final String name, final Connectable source, final Connectable destination, final Collection<String> relationshipNames); Label createLabel(final String id, final String text); Funnel createFunnel(final String id); Port createLocalInputPort(String id, String name); Port createLocalOutputPort(String id, String name); ProcessGroup createProcessGroup(final String id); ProcessorNode createProcessor(final String type, final String id, final BundleCoordinate coordinate); ProcessorNode createProcessor(final String type, String id, final BundleCoordinate coordinate, final boolean firstTimeAdded); ProcessorNode createProcessor(final String type, String id, final BundleCoordinate coordinate, final Set<URL> additionalUrls,
                                         final boolean firstTimeAdded, final boolean registerLogObserver); @Override void reload(final ProcessorNode existingNode, final String newType, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls); ExtensionManager getExtensionManager(); String getInstanceId(); Heartbeater getHeartbeater(); BulletinRepository getBulletinRepository(); SnippetManager getSnippetManager(); StateManagerProvider getStateManagerProvider(); Authorizer getAuthorizer(); Port createRemoteInputPort(String id, String name); Port createRemoteOutputPort(String id, String name); RemoteProcessGroup createRemoteProcessGroup(final String id, final String uris); ProcessGroup getRootGroup(); String getName(); void setName(final String name); String getComments(); void setComments(final String comments); boolean isTerminated(); void shutdown(final boolean kill); synchronized void serialize(final FlowSerializer<T> serializer, final OutputStream os); void synchronize(final FlowSynchronizer synchronizer, final DataFlow dataFlow); int getMaxTimerDrivenThreadCount(); int getMaxEventDrivenThreadCount(); int getActiveEventDrivenThreadCount(); int getActiveTimerDrivenThreadCount(); void setMaxTimerDrivenThreadCount(final int maxThreadCount); void setMaxEventDrivenThreadCount(final int maxThreadCount); String getRootGroupId(); SystemDiagnostics getSystemDiagnostics(); String getContentRepoFileStoreName(final String containerName); String getFlowRepoFileStoreName(); String getProvenanceRepoFileStoreName(final String containerName); void updateProcessGroup(final ProcessGroupDTO dto); void instantiateSnippet(final ProcessGroup group, final FlowSnippetDTO dto); void verifyComponentTypesInSnippet(final FlowSnippetDTO templateContents); void verifyComponentTypesInSnippet(final VersionedProcessGroup versionedFlow); boolean areGroupsSame(final String id1, final String id2); FlowFilePrioritizer createPrioritizer(final String type); PortDTO updateInputPort(final String parentGroupId, final PortDTO dto); PortDTO updateOutputPort(final String parentGroupId, final PortDTO dto); @SuppressWarnings("rawtypes") Set<Class> getFlowFileProcessorClasses(); @SuppressWarnings("rawtypes") Set<Class> getFlowFileComparatorClasses(); ProcessGroup getGroup(final String id); void onProcessGroupAdded(final ProcessGroup group); void onProcessGroupRemoved(final ProcessGroup group); void onProcessorAdded(final ProcessorNode procNode); void onProcessorRemoved(final ProcessorNode procNode); ProcessorNode getProcessorNode(final String id); void onConnectionAdded(final Connection connection); void onConnectionRemoved(final Connection connection); Connection getConnection(final String id); void onInputPortAdded(final Port inputPort); void onInputPortRemoved(final Port inputPort); Port getInputPort(final String id); void onOutputPortAdded(final Port outputPort); void onOutputPortRemoved(final Port outputPort); Port getOutputPort(final String id); void onFunnelAdded(final Funnel funnel); void onFunnelRemoved(final Funnel funnel); Funnel getFunnel(final String id); List<GarbageCollectionStatus> getGarbageCollectionStatus(); GarbageCollectionHistory getGarbageCollectionHistory(); @Override ProcessGroupStatus getControllerStatus(); @Override ProcessGroupStatus getGroupStatus(final String groupId); ProcessGroupStatus getGroupStatus(final String groupId, final NiFiUser user); ProcessGroupStatus getGroupStatus(final String groupId, final NiFiUser user, final int recursiveStatusDepth); ProcessGroupStatus getGroupStatus(final String groupId, final RepositoryStatusReport statusReport); ProcessGroupStatus getGroupStatus(final String groupId, final RepositoryStatusReport statusReport, final NiFiUser user); ProcessGroupStatus getGroupStatus(final String groupId, final RepositoryStatusReport statusReport, final NiFiUser user, final int recursiveStatusDepth); void startProcessor(final String parentGroupId, final String processorId); void startProcessor(final String parentGroupId, final String processorId, final boolean failIfStopping); boolean isInitialized(); boolean isFlowSynchronized(); void startConnectable(final Connectable connectable); void stopConnectable(final Connectable connectable); void startTransmitting(final RemoteGroupPort remoteGroupPort); void stopProcessor(final String parentGroupId, final String processorId); void stopAllProcessors(); void startProcessGroup(final String groupId); void stopProcessGroup(final String groupId); ReportingTaskNode createReportingTask(final String type, final BundleCoordinate bundleCoordinate); ReportingTaskNode createReportingTask(final String type, final BundleCoordinate bundleCoordinate, final boolean firstTimeAdded); @Override ReportingTaskNode createReportingTask(final String type, final String id, final BundleCoordinate bundleCoordinate,final boolean firstTimeAdded); ReportingTaskNode createReportingTask(final String type, final String id, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls,
                                                 final boolean firstTimeAdded, final boolean register); @Override void reload(final ReportingTaskNode existingNode, final String newType, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls); @Override ReportingTaskNode getReportingTaskNode(final String taskId); @Override void startReportingTask(final ReportingTaskNode reportingTaskNode); @Override void stopReportingTask(final ReportingTaskNode reportingTaskNode); @Override void removeReportingTask(final ReportingTaskNode reportingTaskNode); @Override Set<ReportingTaskNode> getAllReportingTasks(); FlowRegistryClient getFlowRegistryClient(); @Override ControllerServiceNode createControllerService(final String type, final String id, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls, final boolean firstTimeAdded); @Override void reload(final ControllerServiceNode existingNode, final String newType, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls); @Override void enableReportingTask(final ReportingTaskNode reportingTaskNode); @Override void disableReportingTask(final ReportingTaskNode reportingTaskNode); @Override Set<ComponentNode> disableReferencingServices(final ControllerServiceNode serviceNode); @Override Set<ComponentNode> enableReferencingServices(final ControllerServiceNode serviceNode); @Override Set<ComponentNode> scheduleReferencingComponents(final ControllerServiceNode serviceNode); @Override Set<ComponentNode> unscheduleReferencingComponents(final ControllerServiceNode serviceNode); @Override CompletableFuture<Void> enableControllerService(final ControllerServiceNode serviceNode); @Override void enableControllerServices(final Collection<ControllerServiceNode> serviceNodes); @Override Future<Void> enableControllerServicesAsync(final Collection<ControllerServiceNode> serviceNodes); @Override CompletableFuture<Void> disableControllerService(final ControllerServiceNode serviceNode); @Override Future<Void> disableControllerServicesAsync(final Collection<ControllerServiceNode> serviceNodes); @Override void verifyCanEnableReferencingServices(final ControllerServiceNode serviceNode); @Override void verifyCanScheduleReferencingComponents(final ControllerServiceNode serviceNode); @Override void verifyCanDisableReferencingServices(final ControllerServiceNode serviceNode); @Override void verifyCanStopReferencingComponents(final ControllerServiceNode serviceNode); @Override ControllerService getControllerService(final String serviceIdentifier); @Override ControllerService getControllerServiceForComponent(final String serviceIdentifier, final String componentId); @Override Set<String> getControllerServiceIdentifiers(final Class<? extends ControllerService> serviceType); @Override ControllerServiceNode getControllerServiceNode(final String serviceIdentifier); Set<ControllerServiceNode> getRootControllerServices(); void addRootControllerService(final ControllerServiceNode serviceNode); ControllerServiceNode getRootControllerService(final String serviceIdentifier); void removeRootControllerService(final ControllerServiceNode service); @Override boolean isControllerServiceEnabled(final ControllerService service); @Override boolean isControllerServiceEnabled(final String serviceIdentifier); @Override boolean isControllerServiceEnabling(final String serviceIdentifier); @Override String getControllerServiceName(final String serviceIdentifier); @Override void removeControllerService(final ControllerServiceNode serviceNode); @Override Set<ControllerServiceNode> getAllControllerServices(); List<Counter> getCounters(); Counter resetCounter(final String identifier); QueueSize getTotalFlowFileCount(final ProcessGroup group); GroupStatusCounts getGroupStatusCounts(final ProcessGroup group); int getActiveThreadCount(); void startHeartbeating(); void suspendHeartbeats(); void resumeHeartbeats(); void stopHeartbeating(); boolean isHeartbeating(); int getHeartbeatDelaySeconds(); NodeIdentifier getNodeId(); void setNodeId(final NodeIdentifier nodeId); @Override boolean isClustered(); boolean isConfiguredForClustering(); void setClustered(final boolean clustered, final String clusterInstanceId); @Override boolean isPrimary(); boolean isClusterCoordinator(); void setPrimary(final boolean primary); ContentAvailability getContentAvailability(final ProvenanceEventRecord event); InputStream getContent(final ProvenanceEventRecord provEvent, final ContentDirection direction, final String requestor, final String requestUri); InputStream getContent(final FlowFileRecord flowFile, final String requestor, final String requestUri); ProvenanceEventRecord replayFlowFile(final long provenanceEventRecordId, final NiFiUser user); ProvenanceEventRecord replayFlowFile(final ProvenanceEventRecord event, final NiFiUser user); @Override List<String> getComponentIdentifiers(); @Override @SuppressWarnings("rawtypes") List<String> getComponentTypes(); @Override List<String> getQueueIdentifiers(); boolean isConnected(); void setConnectionStatus(final NodeConnectionStatus connectionStatus); void heartbeat(); @Override List<ProvenanceEventRecord> getProvenanceEvents(final long firstEventId, final int maxRecords); @Override Authorizable createLocalDataAuthorizable(final String componentId); @Override Authorizable createRemoteDataAuthorizable(String remoteGroupPortId); @Override Authorizable createProvenanceDataAuthorizable(String componentId); @Override List<Action> getFlowChanges(final int firstActionId, final int maxActions); Integer getRemoteSiteListeningPort(); Integer getRemoteSiteListeningHttpPort(); Boolean isRemoteSiteCommsSecure(); ProcessScheduler getProcessScheduler(); @Override Set<String> getControllerServiceIdentifiers(final Class<? extends ControllerService> serviceType, final String groupId); @Override ProvenanceRepository getProvenanceRepository(); StatusHistoryDTO getConnectionStatusHistory(final String connectionId); StatusHistoryDTO getConnectionStatusHistory(final String connectionId, final Date startTime, final Date endTime, final int preferredDataPoints); StatusHistoryDTO getProcessorStatusHistory(final String processorId, final boolean includeCounters); StatusHistoryDTO getProcessorStatusHistory(final String processorId, final Date startTime, final Date endTime, final int preferredDataPoints, final boolean includeCounters); StatusHistoryDTO getProcessGroupStatusHistory(final String processGroupId); StatusHistoryDTO getProcessGroupStatusHistory(final String processGroupId, final Date startTime, final Date endTime, final int preferredDataPoints); StatusHistoryDTO getRemoteProcessGroupStatusHistory(final String remoteGroupId); StatusHistoryDTO getRemoteProcessGroupStatusHistory(final String remoteGroupId, final Date startTime, final Date endTime, final int preferredDataPoints); @Override Collection<FlowFileQueue> getAllQueues(); }
FlowController implements EventAccess, ControllerServiceProvider, ReportingTaskProvider,
    QueueProvider, Authorizable, ProvenanceAuthorizableFactory, NodeTypeProvider, IdentifierLookup, ReloadComponent { public void synchronize(final FlowSynchronizer synchronizer, final DataFlow dataFlow) throws FlowSerializationException, FlowSynchronizationException, UninheritableFlowException, MissingBundleException { writeLock.lock(); try { LOG.debug("Synchronizing controller with proposed flow"); synchronizer.sync(this, dataFlow, encryptor); flowSynchronized.set(true); LOG.info("Successfully synchronized controller with proposed flow"); } finally { writeLock.unlock("synchronize"); } } @SuppressWarnings("deprecation") private  FlowController(
            final FlowFileEventRepository flowFileEventRepo,
            final NiFiProperties nifiProperties,
            final Authorizer authorizer,
            final AuditService auditService,
            final StringEncryptor encryptor,
            final boolean configuredForClustering,
            final NodeProtocolSender protocolSender,
            final BulletinRepository bulletinRepo,
            final ClusterCoordinator clusterCoordinator,
            final HeartbeatMonitor heartbeatMonitor,
            final LeaderElectionManager leaderElectionManager,
            final VariableRegistry variableRegistry,
            final FlowRegistryClient flowRegistryClient); static FlowController createStandaloneInstance(
            final FlowFileEventRepository flowFileEventRepo,
            final NiFiProperties properties,
            final Authorizer authorizer,
            final AuditService auditService,
            final StringEncryptor encryptor,
            final BulletinRepository bulletinRepo,
            final VariableRegistry variableRegistry,
            final FlowRegistryClient flowRegistryClient); static FlowController createClusteredInstance(
            final FlowFileEventRepository flowFileEventRepo,
            final NiFiProperties properties,
            final Authorizer authorizer,
            final AuditService auditService,
            final StringEncryptor encryptor,
            final NodeProtocolSender protocolSender,
            final BulletinRepository bulletinRepo,
            final ClusterCoordinator clusterCoordinator,
            final HeartbeatMonitor heartbeatMonitor,
            final LeaderElectionManager leaderElectionManager,
            final VariableRegistry variableRegistry,
            final FlowRegistryClient flowRegistryClient); @Override Authorizable getParentAuthorizable(); @Override Resource getResource(); void initializeFlow(); void onFlowInitialized(final boolean startDelayedComponents); Connection createConnection(final String id, final String name, final Connectable source, final Connectable destination, final Collection<String> relationshipNames); Label createLabel(final String id, final String text); Funnel createFunnel(final String id); Port createLocalInputPort(String id, String name); Port createLocalOutputPort(String id, String name); ProcessGroup createProcessGroup(final String id); ProcessorNode createProcessor(final String type, final String id, final BundleCoordinate coordinate); ProcessorNode createProcessor(final String type, String id, final BundleCoordinate coordinate, final boolean firstTimeAdded); ProcessorNode createProcessor(final String type, String id, final BundleCoordinate coordinate, final Set<URL> additionalUrls,
                                         final boolean firstTimeAdded, final boolean registerLogObserver); @Override void reload(final ProcessorNode existingNode, final String newType, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls); ExtensionManager getExtensionManager(); String getInstanceId(); Heartbeater getHeartbeater(); BulletinRepository getBulletinRepository(); SnippetManager getSnippetManager(); StateManagerProvider getStateManagerProvider(); Authorizer getAuthorizer(); Port createRemoteInputPort(String id, String name); Port createRemoteOutputPort(String id, String name); RemoteProcessGroup createRemoteProcessGroup(final String id, final String uris); ProcessGroup getRootGroup(); String getName(); void setName(final String name); String getComments(); void setComments(final String comments); boolean isTerminated(); void shutdown(final boolean kill); synchronized void serialize(final FlowSerializer<T> serializer, final OutputStream os); void synchronize(final FlowSynchronizer synchronizer, final DataFlow dataFlow); int getMaxTimerDrivenThreadCount(); int getMaxEventDrivenThreadCount(); int getActiveEventDrivenThreadCount(); int getActiveTimerDrivenThreadCount(); void setMaxTimerDrivenThreadCount(final int maxThreadCount); void setMaxEventDrivenThreadCount(final int maxThreadCount); String getRootGroupId(); SystemDiagnostics getSystemDiagnostics(); String getContentRepoFileStoreName(final String containerName); String getFlowRepoFileStoreName(); String getProvenanceRepoFileStoreName(final String containerName); void updateProcessGroup(final ProcessGroupDTO dto); void instantiateSnippet(final ProcessGroup group, final FlowSnippetDTO dto); void verifyComponentTypesInSnippet(final FlowSnippetDTO templateContents); void verifyComponentTypesInSnippet(final VersionedProcessGroup versionedFlow); boolean areGroupsSame(final String id1, final String id2); FlowFilePrioritizer createPrioritizer(final String type); PortDTO updateInputPort(final String parentGroupId, final PortDTO dto); PortDTO updateOutputPort(final String parentGroupId, final PortDTO dto); @SuppressWarnings("rawtypes") Set<Class> getFlowFileProcessorClasses(); @SuppressWarnings("rawtypes") Set<Class> getFlowFileComparatorClasses(); ProcessGroup getGroup(final String id); void onProcessGroupAdded(final ProcessGroup group); void onProcessGroupRemoved(final ProcessGroup group); void onProcessorAdded(final ProcessorNode procNode); void onProcessorRemoved(final ProcessorNode procNode); ProcessorNode getProcessorNode(final String id); void onConnectionAdded(final Connection connection); void onConnectionRemoved(final Connection connection); Connection getConnection(final String id); void onInputPortAdded(final Port inputPort); void onInputPortRemoved(final Port inputPort); Port getInputPort(final String id); void onOutputPortAdded(final Port outputPort); void onOutputPortRemoved(final Port outputPort); Port getOutputPort(final String id); void onFunnelAdded(final Funnel funnel); void onFunnelRemoved(final Funnel funnel); Funnel getFunnel(final String id); List<GarbageCollectionStatus> getGarbageCollectionStatus(); GarbageCollectionHistory getGarbageCollectionHistory(); @Override ProcessGroupStatus getControllerStatus(); @Override ProcessGroupStatus getGroupStatus(final String groupId); ProcessGroupStatus getGroupStatus(final String groupId, final NiFiUser user); ProcessGroupStatus getGroupStatus(final String groupId, final NiFiUser user, final int recursiveStatusDepth); ProcessGroupStatus getGroupStatus(final String groupId, final RepositoryStatusReport statusReport); ProcessGroupStatus getGroupStatus(final String groupId, final RepositoryStatusReport statusReport, final NiFiUser user); ProcessGroupStatus getGroupStatus(final String groupId, final RepositoryStatusReport statusReport, final NiFiUser user, final int recursiveStatusDepth); void startProcessor(final String parentGroupId, final String processorId); void startProcessor(final String parentGroupId, final String processorId, final boolean failIfStopping); boolean isInitialized(); boolean isFlowSynchronized(); void startConnectable(final Connectable connectable); void stopConnectable(final Connectable connectable); void startTransmitting(final RemoteGroupPort remoteGroupPort); void stopProcessor(final String parentGroupId, final String processorId); void stopAllProcessors(); void startProcessGroup(final String groupId); void stopProcessGroup(final String groupId); ReportingTaskNode createReportingTask(final String type, final BundleCoordinate bundleCoordinate); ReportingTaskNode createReportingTask(final String type, final BundleCoordinate bundleCoordinate, final boolean firstTimeAdded); @Override ReportingTaskNode createReportingTask(final String type, final String id, final BundleCoordinate bundleCoordinate,final boolean firstTimeAdded); ReportingTaskNode createReportingTask(final String type, final String id, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls,
                                                 final boolean firstTimeAdded, final boolean register); @Override void reload(final ReportingTaskNode existingNode, final String newType, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls); @Override ReportingTaskNode getReportingTaskNode(final String taskId); @Override void startReportingTask(final ReportingTaskNode reportingTaskNode); @Override void stopReportingTask(final ReportingTaskNode reportingTaskNode); @Override void removeReportingTask(final ReportingTaskNode reportingTaskNode); @Override Set<ReportingTaskNode> getAllReportingTasks(); FlowRegistryClient getFlowRegistryClient(); @Override ControllerServiceNode createControllerService(final String type, final String id, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls, final boolean firstTimeAdded); @Override void reload(final ControllerServiceNode existingNode, final String newType, final BundleCoordinate bundleCoordinate, final Set<URL> additionalUrls); @Override void enableReportingTask(final ReportingTaskNode reportingTaskNode); @Override void disableReportingTask(final ReportingTaskNode reportingTaskNode); @Override Set<ComponentNode> disableReferencingServices(final ControllerServiceNode serviceNode); @Override Set<ComponentNode> enableReferencingServices(final ControllerServiceNode serviceNode); @Override Set<ComponentNode> scheduleReferencingComponents(final ControllerServiceNode serviceNode); @Override Set<ComponentNode> unscheduleReferencingComponents(final ControllerServiceNode serviceNode); @Override CompletableFuture<Void> enableControllerService(final ControllerServiceNode serviceNode); @Override void enableControllerServices(final Collection<ControllerServiceNode> serviceNodes); @Override Future<Void> enableControllerServicesAsync(final Collection<ControllerServiceNode> serviceNodes); @Override CompletableFuture<Void> disableControllerService(final ControllerServiceNode serviceNode); @Override Future<Void> disableControllerServicesAsync(final Collection<ControllerServiceNode> serviceNodes); @Override void verifyCanEnableReferencingServices(final ControllerServiceNode serviceNode); @Override void verifyCanScheduleReferencingComponents(final ControllerServiceNode serviceNode); @Override void verifyCanDisableReferencingServices(final ControllerServiceNode serviceNode); @Override void verifyCanStopReferencingComponents(final ControllerServiceNode serviceNode); @Override ControllerService getControllerService(final String serviceIdentifier); @Override ControllerService getControllerServiceForComponent(final String serviceIdentifier, final String componentId); @Override Set<String> getControllerServiceIdentifiers(final Class<? extends ControllerService> serviceType); @Override ControllerServiceNode getControllerServiceNode(final String serviceIdentifier); Set<ControllerServiceNode> getRootControllerServices(); void addRootControllerService(final ControllerServiceNode serviceNode); ControllerServiceNode getRootControllerService(final String serviceIdentifier); void removeRootControllerService(final ControllerServiceNode service); @Override boolean isControllerServiceEnabled(final ControllerService service); @Override boolean isControllerServiceEnabled(final String serviceIdentifier); @Override boolean isControllerServiceEnabling(final String serviceIdentifier); @Override String getControllerServiceName(final String serviceIdentifier); @Override void removeControllerService(final ControllerServiceNode serviceNode); @Override Set<ControllerServiceNode> getAllControllerServices(); List<Counter> getCounters(); Counter resetCounter(final String identifier); QueueSize getTotalFlowFileCount(final ProcessGroup group); GroupStatusCounts getGroupStatusCounts(final ProcessGroup group); int getActiveThreadCount(); void startHeartbeating(); void suspendHeartbeats(); void resumeHeartbeats(); void stopHeartbeating(); boolean isHeartbeating(); int getHeartbeatDelaySeconds(); NodeIdentifier getNodeId(); void setNodeId(final NodeIdentifier nodeId); @Override boolean isClustered(); boolean isConfiguredForClustering(); void setClustered(final boolean clustered, final String clusterInstanceId); @Override boolean isPrimary(); boolean isClusterCoordinator(); void setPrimary(final boolean primary); ContentAvailability getContentAvailability(final ProvenanceEventRecord event); InputStream getContent(final ProvenanceEventRecord provEvent, final ContentDirection direction, final String requestor, final String requestUri); InputStream getContent(final FlowFileRecord flowFile, final String requestor, final String requestUri); ProvenanceEventRecord replayFlowFile(final long provenanceEventRecordId, final NiFiUser user); ProvenanceEventRecord replayFlowFile(final ProvenanceEventRecord event, final NiFiUser user); @Override List<String> getComponentIdentifiers(); @Override @SuppressWarnings("rawtypes") List<String> getComponentTypes(); @Override List<String> getQueueIdentifiers(); boolean isConnected(); void setConnectionStatus(final NodeConnectionStatus connectionStatus); void heartbeat(); @Override List<ProvenanceEventRecord> getProvenanceEvents(final long firstEventId, final int maxRecords); @Override Authorizable createLocalDataAuthorizable(final String componentId); @Override Authorizable createRemoteDataAuthorizable(String remoteGroupPortId); @Override Authorizable createProvenanceDataAuthorizable(String componentId); @Override List<Action> getFlowChanges(final int firstActionId, final int maxActions); Integer getRemoteSiteListeningPort(); Integer getRemoteSiteListeningHttpPort(); Boolean isRemoteSiteCommsSecure(); ProcessScheduler getProcessScheduler(); @Override Set<String> getControllerServiceIdentifiers(final Class<? extends ControllerService> serviceType, final String groupId); @Override ProvenanceRepository getProvenanceRepository(); StatusHistoryDTO getConnectionStatusHistory(final String connectionId); StatusHistoryDTO getConnectionStatusHistory(final String connectionId, final Date startTime, final Date endTime, final int preferredDataPoints); StatusHistoryDTO getProcessorStatusHistory(final String processorId, final boolean includeCounters); StatusHistoryDTO getProcessorStatusHistory(final String processorId, final Date startTime, final Date endTime, final int preferredDataPoints, final boolean includeCounters); StatusHistoryDTO getProcessGroupStatusHistory(final String processGroupId); StatusHistoryDTO getProcessGroupStatusHistory(final String processGroupId, final Date startTime, final Date endTime, final int preferredDataPoints); StatusHistoryDTO getRemoteProcessGroupStatusHistory(final String remoteGroupId); StatusHistoryDTO getRemoteProcessGroupStatusHistory(final String remoteGroupId, final Date startTime, final Date endTime, final int preferredDataPoints); @Override Collection<FlowFileQueue> getAllQueues(); static final String DEFAULT_FLOWFILE_REPO_IMPLEMENTATION; static final String DEFAULT_CONTENT_REPO_IMPLEMENTATION; static final String DEFAULT_PROVENANCE_REPO_IMPLEMENTATION; static final String DEFAULT_SWAP_MANAGER_IMPLEMENTATION; static final String DEFAULT_COMPONENT_STATUS_REPO_IMPLEMENTATION; static final String SCHEDULE_MINIMUM_NANOSECONDS; static final String GRACEFUL_SHUTDOWN_PERIOD; static final long DEFAULT_GRACEFUL_SHUTDOWN_SECONDS; static final int METRICS_RESERVOIR_SIZE; static final String ROOT_GROUP_ID_ALIAS; static final double DEFAULT_POSITION_SCALE_FACTOR_X; static final double DEFAULT_POSITION_SCALE_FACTOR_Y; }