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

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information