You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Bryan Bende (Jira)" <ji...@apache.org> on 2022/03/17 13:36:00 UTC

[jira] [Created] (NIFI-9806) Introduce base classes in c2/versioned that combine extension & configurable component types

Bryan Bende created NIFI-9806:
---------------------------------

             Summary: Introduce base classes in c2/versioned that combine extension & configurable component types
                 Key: NIFI-9806
                 URL: https://issues.apache.org/jira/browse/NIFI-9806
             Project: Apache NiFi
          Issue Type: Improvement
            Reporter: Bryan Bende
            Assignee: Bryan Bende


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.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)