sources needs to be available for all the interfaces which components depends on
it means we need to extract sources before CDK generation
@JsfComponent(interfaces) attribute was used to define interfaces
we can simply add also the list of implemented interfaces
inheritance did not work properly, since interfaces were scanned after the abstract class
therefore values like @Attribute(defaultValue, passThrough) which could be rewritten was effectively taken from interfaces rather than from abstract class
There were several issues: