Matt Burgess created NIFI-7342:
----------------------------------
Summary: Refactor NiFi "queryable table models" to remove
dependencies on internal components
Key: NIFI-7342
URL: https://issues.apache.org/jira/browse/NIFI-7342
Project: Apache NiFi
Issue Type: Improvement
Components: Extensions
Reporter: Matt Burgess
Via the nifi-sql-reporting-bundle, NiFi status information is modeled as SQL
tables and can be queried by components such as QueryNiFiReportingTask.
Currently the table models are dependent on a ReportingContext instance to
provide current information such as the root process group status object for
example.
The ReportingContext is just a conduit in order to get to some of the actual
dependencies, and as such, the table models should not need a ReportingContext
per se; rather their constructors should take the actual objects they depend
on, or Suppliers to provide them at the proper time. In the current situation
this just means when a Reporting Task has a ReportingContext available, it
should use the methods to extract references to the actual dependencies and
pass those along when the table models are created (see MetricsSqlQueryService).
The table model objects could be separated out into an "API" or "Utils" JAR,
where their only object dependencies would still be required to be in nifi-api,
but no wrapper objects/contexts need be supplied. This leads to better
decoupling, as the ReportingContext is not really a dependency of the table
models, only a supplier of the actual dependencies.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)