Description
I KafkaSystemFactory, the return types of each method are narrowed from the SystemFactory interface:
SystemProducer -> KafkaSystemProducer
SystemConsumer -> KafkaSystemConsumer
SystemAdmin -> KafkaSystemAdmin
This makes it unnecessarily difficult to sub-class KafkaSystemFactory.
The fix: specify return types when defining these methods, e.g.
def getProducer(systemName: String, config: Config, registry: MetricsRegistry) = ...
should be:
def getProducer(systemName: String, config: Config, registry: MetricsRegistry): SystemProducer = ...