Project: mule
Issue MULE-7635: Add capabilities concept into extension API
Add the concept of capabilities and Capable objects into the extensions api. An object is capable if it provides optional support for additional capabilities. A capability is identified by a class type. Implementations are not required to implement any capability at all, even if they support this interface. Capabilities are used to provide a future-proof path to incorporate changes that may otherwise break backwards compatibility.
Story points: 1