Refaktorisierung für Tests - KafkaConsumer als eigenständige Bean
authorKai Moritz <kai@juplo.de>
Sat, 9 Apr 2022 09:21:43 +0000 (11:21 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 10 Apr 2022 20:26:35 +0000 (22:26 +0200)
commit5a2c467b5b299f975f22d6c0e761686067634adc
treec8a3551754318726985814e9d94875296a070a2d
parentd1ce252495c63a971d1734a35b10cf26313d95fb
Refaktorisierung für Tests - KafkaConsumer als eigenständige Bean

* Der KafakConsumer wird als eigenständige Bean erzeugt
* Die Bean wird dem EndlessConsumer im Konstruktor übergeben
* Dafür muss der Lebenszyklus der KafkaConsumer-Bean von dem der
  EndlessConsumer-Bean getrennt werden:
** close() darf nicht mehr im finally-Block im EndlessConsumer aufgerufen
   werden
** Stattdessen muss close() als Destry-Methode der Bean definiert werden
** Für start/stop muss stattdessen unsubscribe() im finally-Block aufgerufen
   werden
** Da unsubscribe() die Offset-Position nicht commited, muss explizit
   ein Offsset-Commit beauftragt werden, wenn der Consumer regulär
   gestoppt wird (WakeupException)
src/main/java/de/juplo/kafka/Application.java
src/main/java/de/juplo/kafka/EndlessConsumer.java