У меня следующая структура проекта:
project
- serviceA
- serviceB
- serviceC
- serviceD
И я хотел бы иметь общий коннектор kafka во всех сервисах проекта. Примерно так:
public class CommonProcessor {
private final CommonService commonService;
public CommonProcessor(final CommonService commonService) {
this.commonService= commonService;
}
@Incoming("channel-name")
public CompletionStage<Void> process(final Message<CommonMessage> message) {
final CommonMessage commonMessage = message.getPayload();
commonService.commonMethod(commonMessage.getAttribute());
return message.ack();
}
}
С соответствующей конфигурацией:
mp.messaging.incoming.channel-name.connector=smallrye-kafka
mp.messaging.incoming.channel-name.topic=channel-name
mp.messaging.incoming.channel-name.value.deserializer=foo.bar.CommonDeserializer
Как я могу использовать этот CommonProcessor (и его конфигурацию) между всеми службами?
Можно ли поместить его в общую банку и добавить как зависимость во все службы? Я пробовал этот вариант, но он не работает из-за конфигурации. При запуске службы с зависимостью он говорит: Impossible to bind mediators, some media
tors are not connected: [foo.bar.CommonProcessor#process]
Можно ли это сделать через расширение? В этом случае у меня такой же вопрос, как я могу поделиться конфигурацией в application.properties
?