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)

Reply via email to