You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Matt Burgess (Jira)" <ji...@apache.org> on 2020/04/08 17:42:00 UTC

[jira] [Created] (NIFI-7342) Refactor NiFi "queryable table models" to remove dependencies on internal components

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)