Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-9806

Introduce base classes in c2/versioned that combine extension & configurable component types

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.16.0
    • None
    • None

    Description

      Currently we have the following setup in c2 component manifest model:

      ExtensionComponent - base class where type and bundle info exist

      ConfigurableComponentDefinition - interface for property related methods

      ProcessorDefinition extends ExtensionComponent implements ConfigurableComponentDefinition

      This makes it hard to write generic code for a configurable extension, meaning a component that has type/bundle info AND configurable properties.

      If you want to declare a generic type you have to do something like:

      T extends ExtensionComponent & ConfigurableComponentDefinition

      We can improve this by introducing an abstract class that extends ExtensionComponent and implements ConfigurableComponentDefintiion, then make the definitions for processor, controller service, and reporting task extend this new class.

      A similar scenario exists in the Versioned component model.

      Attachments

        Issue Links

          Activity

            People

              bbende Bryan Bende
              bbende Bryan Bende
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 50m
                  1h 50m