FIT-Connect Client SDK enthält Abhängigkeit auf logback
Die pom.xml für das FIT-Connect Client SDK enthält in der Version 2.9.0 in der pom.xml eine Abhängigkeit auf die Bibliothek ch.qos.logback:logback-classic. Logback-classic ist ein Logging Framework.
Wird das FIT-Connect Client SDK in ein Projekt eingebunden, so wird dem Projekt automatisch Logback-classic hinzugefügt. Wird in dem Projekt schon ein anderes Logging Framework verwendet (z.B. Log4j), so kann es zu nicht erwarteten oder unvorhersehbarem Logging-Verhalten kommen. Da Logging manchmal nicht explizit getestet wird, kann diese Fehlkonfiguration evtl nicht bemerkt werden.
Good Practice ist es, in einer Bibliothek keine Logging Frameworks als runtime-Abhängigkeiten aufzunehmen, sondern nur eine Abhängigkeit auf eine Logging API als runtime-Abhängigkeit zu definieren. Dann können Anwender:innen bei Verwendung der Bibliothek selber entscheiden, ob und wie diese API in das Logging Framework des Projekts eingebunden wird. Das wäre in diesem Fall eine Abhängigkeit auf slf4j-api. Die Abhängigkeit auf Logback-classic würde dann typischerweise in den test scope wandern.
Workaround für Anwender: Die transitive Abhängigkeit auf Logback-classic kann exkludiert werden, z.B. in Maven:
<dependency>
<groupId>dev.fitko.fitconnect.sdk</groupId>
<artifactId>client</artifactId>
<version>2.9.0</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
Ein ähnliches Thema ist in #85 aufgenommen