Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
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
- links to